class Makit::Email

def configure_gmail_defaults

def configure_gmail_defaults
  Mail.defaults do
    delivery_method :smtp, {
      address: 'smtp.gmail.com',
      port: 587,
      domain: 'gmail.com',
      user_name: ENV['SMTP_USERNAME'],
      password: ENV['SMTP_PASSWORD'],
      authentication: 'plain',
      enable_starttls_auto: true
    }
  end
end

def send(subject:, body:)

def send(subject:, body:)
  send_to(to: ENV['MAKIT_EMAIL_RECIPIENT'], subject: subject, body: body)
end

def send_test_email(to: ENV['MAKIT_EMAIL_RECIPIENT'], subject:, body:)

def send_test_email(to: ENV['MAKIT_EMAIL_RECIPIENT'], subject:, body:)
  raise ArgumentError, "Recipient email not set. Please set MAKIT_EMAIL_RECIPIENT environment variable" unless to
  mail = Mail.new do
    from    ENV['SMTP_USERNAME']
    to      to
    subject subject
    body    body
  end
  begin
    mail.deliver!
    true
  rescue => e
    puts "Failed to send email: #{e.message}"
    false
  end
end

def send_to(to:, subject:, body:)

def send_to(to:, subject:, body:)
  raise ArgumentError, "Recipient email not set" unless to
  mail = Mail.new do
    from    ENV['SMTP_USERNAME']
    to      to
    subject subject
    body    body
  end
  begin
    mail.deliver!
    true
  rescue => e
    puts "Failed to send email: #{e.message}"
    false
  end
end