require "aws-sdk"
require "dotenv"
require "mysql2"
require "byebug"
require "../helpers/upc_helper.rb"
ENV_FILE = "../.env".freeze
Dotenv.load(ENV_FILE)

test_upcs = Upc.new

@sqs_client = Aws::SQS::Client.new(
  region: ENV["AWS_REGION"],
  access_key_id: ENV["AWS_ACCESS_KEY_ID"],
  secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"]
)

def populate_queue(queue_name, list)
  list.each do |upc|
    queue_url = @sqs_client.get_queue_url(queue_name: queue_name).queue_url
    resp = @sqs_client.send_message(queue_url: queue_url, message_body: upc)
    puts upc
    puts resp
  end
end

automated_encoding_order_url = "#{ENV['ENV']}-automated_encoding_order_upcs"
populate_queue(automated_encoding_order_url, test_upcs.automated_encoding_order_upcs)

error_correction_url = "#{ENV['ENV']}-error_correction_upcs"
populate_queue(error_correction_url, test_upcs.error_correction_upcs)

carveout_changed_url = "#{ENV['ENV']}-carveout_changed_upcs"
populate_queue(carveout_changed_url, test_upcs.carveout_changed_upcs)

FEEDER_START_TIME = Time.now.strftime("%Y-%m-%d %H:%M:%S")
puts "Writing start time: #{FEEDER_START_TIME} to AR"
# rubocop:disable LineLength
@client = Mysql2::Client.new(host: ENV["ART_RELATIONS_DB"], username: ENV["AR_USERNAME"], password: ENV["AR_PASSWORD"], database: ENV["AR_DATABASE"])
# rubocop:enable LineLength
update_feed_start = "UPDATE script_status SET last_run = '#{FEEDER_START_TIME}' WHERE id = 1"
@client.query(update_feed_start)
puts "Write Complete"
