<PhoenixKitWeb.Components.LayoutWrapper.app_layout
  flash={@flash}
  phoenix_kit_current_scope={assigns[:phoenix_kit_current_scope]}
  page_title="{@project_title} Emails"
  current_path={@current_path}
  project_title={@project_title}
>
  <div class="container flex flex-col mx-auto px-4 py-6">
    <.admin_page_header
      back={PhoenixKit.Utils.Routes.path("/admin/settings")}
      title={gettext("Emails Settings")}
      subtitle={gettext("Configure emails behavior and data retention")}
    />

    <%!-- Main Content --%>
    <div class="max-w-4xl mx-auto space-y-8">
      <%!-- Status Card --%>
      <div class="card bg-base-100 shadow-xl">
        <div class="card-body">
          <h2 class="card-title text-2xl mb-4">
            <.icon name="hero-cog-6-tooth" class="w-6 h-6" /> {gettext("Status")}
          </h2>

          <div class="form-control">
            <label class="label cursor-pointer">
              <span class="label-text text-lg">
                <span class="font-semibold">{gettext("Enable Emails")}</span>
                <div class="text-sm text-base-content/70 mt-1">
                  {gettext("Track email delivery, opens, clicks, and other events")}
                </div>
              </span>
              <input
                type="checkbox"
                class="toggle toggle-primary"
                checked={@email_enabled}
                phx-click="toggle_emails"
              />
            </label>
          </div>
        </div>
      </div>

      <%= if @email_enabled do %>
        <%!-- Sender Configuration Card --%>
        <div class="card bg-base-100 shadow-xl">
          <div class="card-body">
            <h2 class="card-title text-2xl mb-4">
              <.icon name="hero-envelope" class="w-6 h-6" /> {gettext("Sender Configuration")}
            </h2>

            <form phx-submit="save_sender_settings">
              <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-6">
                <%!-- From Email --%>
                <div class="form-control">
                  <label class="label">
                    <span class="label-text font-medium">{gettext("From Email")}</span>
                  </label>
                  <input
                    name="sender[from_email]"
                    type="email"
                    placeholder="noreply@example.com"
                    value={@sender_settings.from_email}
                    class="input input-bordered focus:input-primary"
                    required
                  />
                  <label class="label">
                    <span class="label-text-alt">
                      {gettext("Email address used as sender for all outgoing emails")}
                    </span>
                  </label>
                </div>

                <%!-- From Name --%>
                <div class="form-control">
                  <label class="label">
                    <span class="label-text font-medium">{gettext("From Name")}</span>
                  </label>
                  <input
                    name="sender[from_name]"
                    type="text"
                    placeholder="My Application"
                    value={@sender_settings.from_name}
                    class="input input-bordered focus:input-primary"
                    required
                  />
                  <label class="label">
                    <span class="label-text-alt">
                      {gettext("Sender name displayed to recipients")}
                    </span>
                  </label>
                </div>
              </div>

              <%!-- Save Button --%>
              <div class="card-actions justify-end">
                <button
                  type="submit"
                  class={[
                    "btn btn-primary",
                    if(@saving_sender, do: "loading", else: "")
                  ]}
                  disabled={@saving_sender}
                >
                  <%= if @saving_sender do %>
                    {gettext("Saving...")}
                  <% else %>
                    <.icon name="hero-check" class="w-4 h-4 mr-2" /> {gettext(
                      "Save Sender Settings"
                    )}
                  <% end %>
                </button>
              </div>
            </form>
          </div>
        </div>

        <%!-- Options Card --%>
        <div class="card bg-base-100 shadow-xl">
          <div class="card-body">
            <h2 class="card-title text-2xl mb-4">
              <.icon name="hero-adjustments-horizontal" class="w-6 h-6" /> {gettext("Options")}
            </h2>

            <%!-- Save Email Bodies --%>
            <div class="form-control mb-4">
              <label class="label cursor-pointer">
                <span class="label-text text-lg">
                  <span class="font-semibold">{gettext("Save Email Bodies")}</span>
                  <div class="text-sm text-base-content/70 mt-1">
                    {gettext("Store the full content of sent emails for debugging and analysis")}
                  </div>
                </span>
                <input
                  type="checkbox"
                  class="toggle toggle-secondary"
                  checked={@email_save_body}
                  phx-click="toggle_email_save_body"
                />
              </label>
            </div>

            <div class="divider"></div>

            <%!-- Save Email Headers --%>
            <div class="form-control mb-4">
              <label class="label cursor-pointer">
                <span class="label-text text-lg">
                  <span class="font-semibold">{gettext("Save Email Headers")}</span>
                  <div class="text-sm text-base-content/70 mt-1">
                    {gettext(
                      "Store email headers for debugging and analysis (increases storage usage)"
                    )}
                  </div>
                </span>
                <input
                  type="checkbox"
                  class="toggle toggle-secondary"
                  checked={@email_save_headers}
                  phx-click="toggle_email_save_headers"
                />
              </label>
            </div>

            <div class="divider"></div>

            <%!-- AWS SES Events --%>
            <div class="form-control mb-4">
              <label class="label cursor-pointer">
                <span class="label-text text-lg">
                  <span class="font-semibold">{gettext("AWS SES Events Options")}</span>
                  <div class="text-sm text-base-content/70 mt-1">
                    {gettext("Track delivery, bounce, and complaint events from Amazon SES")}
                  </div>
                </span>
                <input
                  type="checkbox"
                  class="toggle toggle-accent"
                  checked={@email_ses_events}
                  phx-click="toggle_email_ses_events"
                />
              </label>
            </div>

            <div class="divider"></div>

            <%!-- Sampling Rate --%>
            <div class="form-control">
              <label class="label">
                <span class="label-text text-lg font-semibold">
                  {gettext("Emails Sampling Rate")}
                </span>
              </label>
              <div class="input-group">
                <input
                  name="sampling_rate"
                  type="number"
                  placeholder={gettext("Enter sampling rate")}
                  class="input input-bordered w-full max-w-xs"
                  value={@email_sampling_rate}
                  min="0"
                  max="100"
                  phx-blur="update_email_sampling_rate"
                />
                <span class="bg-base-200 px-4 py-3 text-sm">%</span>
              </div>
              <label class="label">
                <span class="label-text-alt text-base-content/70">
                  {gettext("Percentage of emails to fully track for analytics (0-100%)")}
                </span>
              </label>
            </div>
          </div>
        </div>

        <%!-- Data Retention Card --%>
        <div class="card bg-base-100 shadow-xl">
          <div class="card-body">
            <h2 class="card-title text-2xl mb-4">
              <.icon name="hero-archive-box" class="w-6 h-6" /> {gettext("Data Retention")}
            </h2>

            <div class="form-control">
              <label class="label">
                <span class="label-text text-lg font-semibold">
                  {gettext("Email Retention Period")}
                </span>
              </label>
              <div class="flex gap-2 items-start">
                <div class="input-group flex-1">
                  <input
                    name="retention_days"
                    type="number"
                    placeholder={gettext("Enter retention days")}
                    class="input input-bordered w-full max-w-xs"
                    value={@email_retention_days}
                    min="1"
                    max="365"
                    phx-blur="update_email_retention"
                  />
                  <span class="bg-base-200 px-4 py-3 text-sm">{gettext("days")}</span>
                </div>
                <button
                  type="button"
                  phx-click="run_cleanup_now"
                  class={[
                    "btn btn-warning btn-sm",
                    if(assigns[:running_cleanup], do: "loading", else: "")
                  ]}
                  disabled={assigns[:running_cleanup]}
                >
                  <%= if assigns[:running_cleanup] do %>
                    {gettext("Running...")}
                  <% else %>
                    <.icon name="hero-trash" class="w-4 h-4 mr-1" /> {gettext("Run Cleanup Now")}
                  <% end %>
                </button>
              </div>
              <label class="label">
                <span class="label-text-alt text-base-content/70">
                  {gettext("How long to keep emails data before automatic cleanup (1-365 days)")}
                </span>
              </label>
            </div>

            <div class="divider"></div>

            <%= if @email_save_body do %>
              <%!-- Compress Body After Days --%>
              <div class="form-control">
                <label class="label">
                  <span class="label-text text-lg font-semibold">
                    {gettext("Compress Email Bodies After")}
                  </span>
                  <span class="label-text-alt text-base-content/70">
                    {gettext("Auto-saves when you click outside the input field")}
                  </span>
                </label>
                <div class="flex gap-2 items-start">
                  <div class="input-group flex-1">
                    <input
                      name="compress_days"
                      type="number"
                      placeholder={gettext("Enter compression days")}
                      class={[
                        "input input-bordered w-full max-w-xs",
                        "transition-colors duration-200",
                        "focus:input-primary",
                        if(assigns[:updating_compress_days],
                          do: "input-warning loading",
                          else: ""
                        )
                      ]}
                      value={@email_compress_body}
                      min="7"
                      max="365"
                      phx-blur="update_compress_days"
                      phx-focus="set_compress_days_focused"
                      phx-keydown="set_compress_days_changed"
                    />
                    <span class="bg-base-200 px-4 py-3 text-sm">{gettext("days")}</span>
                  </div>
                  <button
                    type="button"
                    phx-click="run_compression_now"
                    class={[
                      "btn btn-info btn-sm",
                      if(assigns[:running_compression], do: "loading", else: "")
                    ]}
                    disabled={assigns[:running_compression]}
                  >
                    <%= if assigns[:running_compression] do %>
                      {gettext("Compressing...")}
                    <% else %>
                      <.icon name="hero-archive-box-arrow-down" class="w-4 h-4 mr-1" />
                      {gettext("Compress Now")}
                    <% end %>
                  </button>
                </div>
                <label class="label">
                  <span class="label-text-alt text-base-content/70">
                    <span class="flex items-center gap-1">
                      <.icon name="hero-information-circle" class="w-3 h-3" />
                      {gettext(
                        "Compress old email bodies to save storage space (7-365 days). Changes are saved automatically."
                      )}
                    </span>
                  </span>
                </label>
              </div>

              <div class="divider"></div>
            <% end %>

            <%!-- S3 Archival Toggle --%>
            <div class="form-control mb-4">
              <label class="label cursor-pointer">
                <span class="label-text text-lg">
                  <span class="font-semibold">{gettext("Enable S3 Archival")}</span>
                  <div class="text-sm text-base-content/70 mt-1">
                    {gettext("Move old email data to AWS S3 for long-term cold storage")}
                  </div>
                </span>
                <input
                  type="checkbox"
                  class="toggle toggle-warning"
                  checked={@email_archive_to_s3}
                  phx-click="toggle_s3_archival"
                />
              </label>
            </div>

            <%= if @email_archive_to_s3 do %>
              <%!-- S3 Archival Action Button --%>
              <div class="form-control mt-2">
                <div class="flex gap-2 items-start">
                  <div class="flex-1">
                    <span class="text-sm text-base-content/70">
                      {gettext(
                        "Manually trigger S3 archival for emails older than retention period"
                      )}
                    </span>
                  </div>
                  <button
                    type="button"
                    phx-click="run_s3_archival_now"
                    class={[
                      "btn btn-warning btn-sm",
                      if(assigns[:running_archival], do: "loading", else: "")
                    ]}
                    disabled={assigns[:running_archival]}
                  >
                    <%= if assigns[:running_archival] do %>
                      {gettext("Archiving...")}
                    <% else %>
                      <.icon name="hero-cloud-arrow-up" class="w-4 h-4 mr-1" />
                      {gettext("Archive to S3 Now")}
                    <% end %>
                  </button>
                </div>
              </div>
            <% end %>

            <div class="alert alert-warning mt-4">
              <.icon name="hero-exclamation-triangle" class="w-5 h-5" />
              <div>
                <h3 class="font-bold">{gettext("Data Privacy Notice")}</h3>
                <p class="text-sm mt-1">
                  {gettext(
                    "Email data will be automatically deleted after the retention period expires. This helps maintain privacy compliance and reduces storage requirements."
                  )}
                </p>
              </div>
            </div>
          </div>
        </div>

        <%!-- AWS Configuration Card --%>
        <div class="card bg-base-100 shadow-xl">
          <div class="card-body">
            <h2 class="card-title text-2xl mb-4">
              <.icon name="hero-cog-6-tooth" class="w-6 h-6" /> {gettext("AWS Configuration")}
            </h2>

            <%!-- AWS Setup Guide (daisyUI collapse) --%>
            <div class="collapse collapse-arrow bg-base-200 mb-6">
              <input type="checkbox" class="peer" />
              <div class="collapse-title text-sm font-medium">
                <span class="flex items-center gap-2">
                  <.icon name="hero-book-open" class="w-5 h-5" /> {gettext("AWS Setup Guide")}
                </span>
              </div>
              <div class="collapse-content text-sm space-y-4">
                <%!-- Step 1: Create IAM User --%>
                <div class="bg-base-100 border border-base-300 rounded-lg p-4">
                  <h4 class="font-semibold mb-2 text-base-content">1. Create IAM User</h4>
                  <ol class="list-decimal list-inside space-y-2 text-base-content/80">
                    <li>
                      Visit
                      <a
                        href="https://console.aws.amazon.com/iam/"
                        target="_blank"
                        class="link link-primary"
                      >
                        AWS IAM Console
                      </a>
                    </li>
                    <li>Create new user with programmatic access</li>
                    <li>
                      Attach policies: <strong>SES</strong>, <strong>SQS</strong>, <strong>SNS</strong>,
                      <strong>STS:GetCallerIdentity</strong>
                    </li>
                    <li>Save Access Key ID and Secret Access Key</li>
                  </ol>
                </div>

                <%!-- Step 2: Configure Credentials --%>
                <div class="bg-base-100 border border-base-300 rounded-lg p-4">
                  <h4 class="font-semibold mb-2 text-base-content">2. Configure Credentials</h4>
                  <ol class="list-decimal list-inside space-y-2 text-base-content/80">
                    <li>
                      Enter Access Key ID (20 characters, e.g., <code>AKIAIOSFODNN7EXAMPLE</code>)
                    </li>
                    <li>Enter Secret Access Key</li>
                    <li>Enter AWS Region manually (e.g., eu-north-1)</li>
                    <li>Click <strong>"Verify Credentials"</strong> to test connectivity</li>
                    <li>
                      <em>Optional:</em>
                      Click <strong>"Load regions"</strong>
                      to see all available regions
                    </li>
                  </ol>
                </div>

                <%!-- Step 3: Setup Infrastructure --%>
                <div class="bg-base-100 border border-base-300 rounded-lg p-4">
                  <h4 class="font-semibold mb-2 text-base-content">
                    3. Setup Infrastructure
                  </h4>
                  <ol class="list-decimal list-inside space-y-2 text-base-content/80">
                    <li>
                      Click <strong>"Setup AWS Infrastructure"</strong>
                      to create SNS/SQS resources
                    </li>
                    <li>Wait for setup completion (typically 30-60 seconds)</li>
                    <li>
                      All created resources will be automatically filled in the form below
                    </li>
                    <li>
                      Click <strong>"Save AWS Settings"</strong>
                      one more time to persist everything
                    </li>
                  </ol>
                </div>

                <%!-- Step 4: Verify Email --%>
                <div class="bg-base-100 border border-base-300 rounded-lg p-4">
                  <h4 class="font-semibold mb-2 text-base-content">
                    4. Verify Email/Domain in SES
                  </h4>
                  <ol class="list-decimal list-inside space-y-2 text-base-content/80">
                    <li>
                      Go to
                      <a
                        href="https://console.aws.amazon.com/ses/"
                        target="_blank"
                        class="link link-primary"
                      >
                        AWS SES Console
                      </a>
                    </li>
                    <li>Verify your sender email address or domain</li>
                    <li>Request production access (if needed to exit sandbox mode)</li>
                  </ol>
                </div>

                <%!-- Required Permissions --%>
                <div class="bg-base-200 border border-base-300 rounded-lg p-3 text-xs">
                  <div class="flex items-start gap-2">
                    <.icon
                      name="hero-information-circle"
                      class="h-4 w-4 text-info shrink-0 mt-0.5"
                    />
                    <div class="text-base-content/80">
                      <strong class="text-base-content">Required IAM Permissions:</strong>
                      <ul class="list-disc list-inside mt-1 space-y-1">
                        <li><code>sqs:*</code> - Simple Queue Service</li>
                        <li><code>sns:*</code> - Simple Notification Service</li>
                        <li><code>ses:*</code> - Simple Email Service</li>
                        <li><code>sts:GetCallerIdentity</code> - Credential verification</li>
                      </ul>
                    </div>
                  </div>
                </div>

                <%!-- Full Documentation Link --%>
                <div class="bg-base-200 border border-base-300 rounded-lg p-3 text-xs">
                  <div class="flex items-start gap-2">
                    <.icon
                      name="hero-book-open"
                      class="h-4 w-4 text-success shrink-0 mt-0.5"
                    />
                    <div class="text-base-content/80">
                      <strong class="text-base-content">Need more help?</strong>
                      <p class="mt-1">
                        See <code>guides/aws_email_setup.md</code>
                        for comprehensive documentation including security best practices, cost optimization, and troubleshooting.
                      </p>
                    </div>
                  </div>
                </div>
              </div>
            </div>

            <%!-- Credentials Verification Section --%>
            <.aws_credentials_verify
              access_key_id={@aws_settings.access_key_id}
              secret_access_key={@aws_settings.secret_access_key}
              region={@aws_settings.region}
              verifying={@verifying_credentials}
              verified={@credential_verification_status}
              message={@credential_verification_message}
              permissions={@aws_permissions}
              phx_click="verify_aws_credentials"
              disabled={@saving or @setting_up_aws}
            />

            <form phx-submit="save_aws_settings">
              <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-6">
                <%!-- AWS Access Key ID --%>
                <div class="form-control">
                  <label class="label">
                    <span class="label-text font-medium">{gettext("AWS Access Key ID")}</span>
                  </label>
                  <input
                    name="aws_settings[access_key_id]"
                    type="text"
                    placeholder="AKIAIOSFODNN7EXAMPLE"
                    value={@aws_settings.access_key_id}
                    class="input input-bordered focus:input-primary"
                  />
                  <label class="label">
                    <span class="label-text-alt text-sm text-base-content/70">
                      Example: AKIAIOSFODNN7EXAMPLE (20 characters)
                    </span>
                  </label>
                </div>

                <%!-- AWS Secret Access Key --%>
                <div class="form-control">
                  <label class="label">
                    <span class="label-text font-medium">{gettext("AWS Secret Access Key")}</span>
                  </label>
                  <input
                    name="aws_settings[secret_access_key]"
                    type="password"
                    placeholder="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
                    value={@aws_settings.secret_access_key}
                    class="input input-bordered focus:input-primary"
                  />
                  <label class="label">
                    <span class="label-text-alt text-sm text-base-content/70">
                      Example: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
                    </span>
                  </label>
                </div>

                <%!-- AWS Region --%>
                <div class="form-control md:col-span-2">
                  <div class="flex gap-2">
                    <.aws_region_select
                      id="aws-region-select"
                      name="aws_settings[region]"
                      value={@aws_settings.region}
                      regions={@available_regions}
                      regions_loaded={@regions_loaded}
                      selected_region={@selected_region}
                      verifying={@verifying_credentials}
                      verified={@credential_verification_status}
                      phx_change="select_region"
                      class="flex-1"
                    />

                    <%!-- Button to load/refresh regions --%>
                    <button
                      type="button"
                      phx-click="fetch_available_regions"
                      disabled={
                        @verifying_credentials or String.trim(@aws_settings.access_key_id) == "" or
                          String.trim(@aws_settings.secret_access_key) == ""
                      }
                      class="btn btn-outline btn-sm h-fit"
                      title={
                        if @regions_loaded,
                          do: gettext("Refresh regions list"),
                          else: gettext("Load available regions")
                      }
                    >
                      <%= if @verifying_credentials do %>
                        <span class="loading loading-spinner loading-xs"></span>
                      <% else %>
                        <.icon name="hero-arrow-path" class="w-4 h-4" />
                      <% end %>
                    </button>
                  </div>

                  <%!-- Helper text is now in the component itself --%>
                </div>
              </div>

              <%= if @email_ses_events do %>
                <%!-- Advanced AWS Settings (collapse) --%>
                <div class="collapse collapse-arrow bg-base-200 mt-4">
                  <input type="checkbox" />
                  <div class="collapse-title text-sm font-medium">
                    <span class="flex items-center gap-2">
                      <.icon name="hero-cog-6-tooth" class="w-5 h-5" /> {gettext(
                        "Advanced AWS Settings"
                      )}
                    </span>
                  </div>
                  <div class="collapse-content text-sm space-y-4">
                    <p class="text-base-content/70 mb-4">
                      {gettext(
                        "These settings are automatically configured when you run \"Setup AWS Infrastructure\". Manual changes may break the integration."
                      )}
                    </p>

                    <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
                      <%!-- SES Configuration Set --%>
                      <div class="form-control">
                        <label class="label">
                          <span class="label-text font-medium">
                            {gettext("SES Configuration Set")}
                          </span>
                        </label>
                        <input
                          name="aws_settings[ses_configuration_set]"
                          type="text"
                          placeholder="phoenixkit-emails"
                          value={@aws_settings.ses_configuration_set}
                          class="input input-bordered focus:input-primary"
                        />
                        <label class="label">
                          <span class="label-text-alt">
                            {gettext("SES configuration set name")}
                          </span>
                        </label>
                      </div>

                      <%!-- SNS Topic ARN --%>
                      <div class="form-control md:col-span-2">
                        <label class="label">
                          <span class="label-text font-medium">{gettext("SNS Topic ARN")}</span>
                        </label>
                        <input
                          name="aws_settings[sns_topic_arn]"
                          type="text"
                          placeholder="arn:aws:sns:eu-north-1:123456789012:email-events"
                          value={@aws_settings.sns_topic_arn}
                          class="input input-bordered focus:input-primary"
                        />
                        <label class="label">
                          <span class="label-text-alt">
                            {gettext("SNS topic for email events")}
                          </span>
                        </label>
                      </div>

                      <%!-- SQS Queue URL --%>
                      <div class="form-control md:col-span-2">
                        <label class="label">
                          <span class="label-text font-medium">{gettext("SQS Queue URL")}</span>
                        </label>
                        <input
                          name="aws_settings[sqs_queue_url]"
                          type="url"
                          placeholder="https://sqs.eu-north-1.amazonaws.com/123456789012/email-events"
                          value={@aws_settings.sqs_queue_url}
                          class="input input-bordered focus:input-primary"
                        />
                        <label class="label">
                          <span class="label-text-alt">
                            {gettext("Main queue for email events")}
                          </span>
                        </label>
                      </div>

                      <%!-- SQS Queue ARN --%>
                      <div class="form-control md:col-span-1">
                        <label class="label">
                          <span class="label-text font-medium">{gettext("SQS Queue ARN")}</span>
                        </label>
                        <input
                          name="aws_settings[sqs_queue_arn]"
                          type="text"
                          placeholder="arn:aws:sqs:eu-north-1:123456789012:email-events"
                          value={@aws_settings.sqs_queue_arn}
                          class="input input-bordered focus:input-primary"
                        />
                        <label class="label">
                          <span class="label-text-alt">
                            {gettext("SQS queue ARN for permissions")}
                          </span>
                        </label>
                      </div>

                      <%!-- SQS DLQ URL --%>
                      <div class="form-control md:col-span-1">
                        <label class="label">
                          <span class="label-text font-medium">
                            {gettext("SQS Dead Letter Queue URL")}
                          </span>
                        </label>
                        <input
                          name="aws_settings[sqs_dlq_url]"
                          type="url"
                          placeholder="https://sqs.eu-north-1.amazonaws.com/123456789012/email-events-dlq"
                          value={@aws_settings.sqs_dlq_url}
                          class="input input-bordered focus:input-primary"
                        />
                        <label class="label">
                          <span class="label-text-alt">
                            {gettext("Dead letter queue for failed messages")}
                          </span>
                        </label>
                      </div>
                    </div>
                  </div>
                </div>

                <%!-- SQS Worker Settings (collapse) --%>
                <div class="collapse collapse-arrow bg-base-200 mt-4">
                  <input type="checkbox" />
                  <div class="collapse-title text-sm font-medium">
                    <span class="flex items-center gap-2">
                      <.icon name="hero-cog-6-tooth" class="w-5 h-5" /> {gettext(
                        "SQS Worker Settings"
                      )}
                    </span>
                  </div>
                  <div class="collapse-content text-sm space-y-4">
                    <%!-- Enable SQS Polling --%>
                    <div class="form-control">
                      <label class="label cursor-pointer">
                        <span class="label-text text-lg">
                          <span class="font-semibold">{gettext("Enable SQS Polling")}</span>
                          <div class="text-sm text-base-content/70 mt-1">
                            {gettext(
                              "Automatically poll SQS queue for email events in background"
                            )}
                          </div>
                        </span>
                        <input
                          type="checkbox"
                          class="toggle toggle-info"
                          checked={@sqs_polling_enabled}
                          phx-click="toggle_sqs_polling"
                        />
                      </label>
                    </div>

                    <%!-- SQS Polling Interval --%>
                    <div class="form-control">
                      <label class="label">
                        <span class="label-text font-medium">
                          {gettext("SQS Polling Interval")}
                        </span>
                      </label>
                      <div class="input-group">
                        <input
                          name="aws_settings[sqs_polling_interval_ms]"
                          type="number"
                          placeholder="5000"
                          value={@aws_settings.sqs_polling_interval_ms}
                          class="input input-bordered focus:input-primary w-full max-w-xs"
                          min="1000"
                          max="60000"
                        />
                        <span class="bg-base-200 px-4 py-3 text-sm">ms</span>
                      </div>
                      <label class="label">
                        <span class="label-text-alt">
                          {gettext("How often to check for SQS messages (1-60 seconds)")}
                        </span>
                      </label>
                    </div>

                    <%= if @sqs_polling_enabled do %>
                      <%!-- SQS Max Messages Per Poll --%>
                      <div class="form-control">
                        <label class="label">
                          <span class="label-text font-medium">
                            {gettext("Max Messages Per Poll")}
                          </span>
                        </label>
                        <div class="input-group">
                          <input
                            name="max_messages"
                            type="number"
                            placeholder={gettext("Enter max messages")}
                            class="input input-bordered w-full max-w-xs"
                            value={@sqs_max_messages_per_poll}
                            min="1"
                            max="10"
                            phx-blur="update_max_messages"
                          />
                          <span class="bg-base-200 px-4 py-3 text-sm">{gettext("messages")}</span>
                        </div>
                        <label class="label">
                          <span class="label-text-alt text-base-content/70">
                            {gettext(
                              "Maximum number of messages to process in each polling cycle (1-10)"
                            )}
                          </span>
                        </label>
                      </div>

                      <%!-- SQS Visibility Timeout --%>
                      <div class="form-control">
                        <label class="label">
                          <span class="label-text font-medium">
                            {gettext("Visibility Timeout")}
                          </span>
                        </label>
                        <div class="input-group">
                          <input
                            name="timeout"
                            type="number"
                            placeholder={gettext("Enter timeout")}
                            class="input input-bordered w-full max-w-xs"
                            value={@sqs_visibility_timeout}
                            min="30"
                            max="43200"
                            phx-blur="update_visibility_timeout"
                          />
                          <span class="bg-base-200 px-4 py-3 text-sm">{gettext("seconds")}</span>
                        </div>
                        <label class="label">
                          <span class="label-text-alt text-base-content/70">
                            {gettext(
                              "How long messages remain invisible after being received (30-43200 seconds)"
                            )}
                          </span>
                        </label>
                      </div>
                    <% end %>

                    <%!-- Performance Optimization Tips --%>
                    <div class="p-4 bg-blue-50 border border-blue-200 rounded-md">
                      <h4 class="font-semibold text-blue-900 mb-2 flex items-center gap-2">
                        <.icon name="hero-light-bulb" class="w-4 h-4" /> {gettext(
                          "Performance Tips"
                        )}
                      </h4>
                      <ul class="text-sm text-blue-800 space-y-1">
                        <li>
                          • {gettext(
                            "Use longer polling intervals (5-10 seconds) to reduce API calls"
                          )}
                        </li>
                        <li>• {gettext("Set visibility timeout to match processing time")}</li>
                        <li>
                          • {gettext("Monitor queue depth and adjust max messages accordingly")}
                        </li>
                        <li>• {gettext("Enable compression to reduce storage requirements")}</li>
                      </ul>
                    </div>
                  </div>
                </div>
              <% end %>

              <%!-- Warning for credentials changes --%>
              <%= if String.trim(@aws_settings.access_key_id) != "" or String.trim(@aws_settings.secret_access_key) != "" do %>
                <div class="alert alert-warning mb-4">
                  <.icon name="hero-exclamation-triangle" class="w-5 h-5" />
                  <div>
                    <h3 class="font-bold">{gettext("Configuration Changes Detected")}</h3>
                    <p class="text-sm mt-1">
                      {gettext(
                        "You've modified your AWS credentials. Click \"Save AWS Settings\" first, then use \"Setup AWS Infrastructure\" to create the required resources."
                      )}
                    </p>
                  </div>
                </div>
              <% end %>

              <%!-- Action Buttons --%>
              <div class="flex flex-col sm:flex-row gap-4 mt-6">
                <div class="flex-1">
                  <button
                    type="submit"
                    class={[
                      "btn btn-primary w-full sm:w-auto",
                      if(@saving, do: "loading", else: "")
                    ]}
                    disabled={@saving or @verifying_credentials}
                  >
                    <%= if @saving do %>
                      {gettext("Saving...")}
                    <% else %>
                      <.icon name="hero-check" class="w-4 h-4 mr-2" /> {gettext(
                        "Save AWS Settings"
                      )}
                    <% end %>
                  </button>
                </div>

                <div class="flex-1">
                  <button
                    type="button"
                    phx-click="setup_aws_infrastructure"
                    class={[
                      "btn btn-accent w-full sm:w-auto",
                      if(@setting_up_aws, do: "loading", else: "")
                    ]}
                    disabled={
                      @setting_up_aws or @saving or String.trim(@aws_settings.access_key_id) == "" or
                        String.trim(@aws_settings.secret_access_key) == ""
                    }
                  >
                    <%= if @setting_up_aws do %>
                      {gettext("Setting up...")}
                    <% else %>
                      <.icon name="hero-cog-6-tooth" class="w-4 h-4 mr-2" />
                      {gettext("Setup AWS Infrastructure")}
                    <% end %>
                  </button>
                </div>
              </div>
            </form>
          </div>
        </div>

        <%!-- Current Configuration Summary --%>
        <div class="alert alert-info">
          <.icon name="hero-information-circle" class="w-5 h-5" />
          <div>
            <h3 class="font-bold">{gettext("Current Configuration")}</h3>
            <div class="text-sm mt-1">
              <p>{gettext("Status:")} <span class="font-semibold">{gettext("Enabled")}</span></p>
              <p>
                {gettext("Save email bodies:")}
                <span class="font-semibold">
                  {if @email_save_body, do: gettext("Yes"), else: gettext("No")}
                </span>
              </p>
              <p>
                {gettext("AWS SES events:")}
                <span class="font-semibold">
                  {if @email_ses_events, do: gettext("Yes"), else: gettext("No")}
                </span>
              </p>
              <p>
                {gettext("Retention period:")}
                <span class="font-semibold">
                  {gettext("%{days} days", days: @email_retention_days)}
                </span>
              </p>
              <p>
                {gettext("Sampling rate:")}
                <span class="font-semibold">{@email_sampling_rate}%</span>
              </p>
              <p>
                {gettext("SQS polling:")}
                <span class="font-semibold">
                  {if @sqs_polling_enabled, do: gettext("Enabled"), else: gettext("Disabled")}
                </span>
              </p>
            </div>
          </div>
        </div>
      <% else %>
        <%!-- Disabled State Information --%>
        <div class="alert alert-warning">
          <.icon name="hero-exclamation-triangle" class="w-5 h-5" />
          <div>
            <h3 class="font-bold">{gettext("Emails Disabled")}</h3>
            <p class="text-sm mt-1">
              {gettext(
                "Enable the emails above to access configuration options and start managing email delivery events."
              )}
            </p>
          </div>
        </div>

        <%!-- Benefits Card when Disabled --%>
        <div class="card bg-base-100 shadow-xl">
          <div class="card-body">
            <h2 class="card-title text-2xl mb-4">
              <.icon name="hero-light-bulb" class="w-6 h-6" /> {gettext("Emails Benefits")}
            </h2>

            <div class="space-y-3">
              <div class="flex items-start gap-3">
                <.icon name="hero-check-circle" class="w-5 h-5 text-success mt-0.5" />
                <div>
                  <h3 class="font-semibold">{gettext("Delivery Monitoring")}</h3>
                  <p class="text-sm text-base-content/70">
                    {gettext("Track successful email deliveries and identify issues")}
                  </p>
                </div>
              </div>

              <div class="flex items-start gap-3">
                <.icon name="hero-check-circle" class="w-5 h-5 text-success mt-0.5" />
                <div>
                  <h3 class="font-semibold">{gettext("Engagement Analytics")}</h3>
                  <p class="text-sm text-base-content/70">
                    {gettext("Monitor email opens, clicks, and user engagement")}
                  </p>
                </div>
              </div>

              <div class="flex items-start gap-3">
                <.icon name="hero-check-circle" class="w-5 h-5 text-success mt-0.5" />
                <div>
                  <h3 class="font-semibold">{gettext("Debugging Support")}</h3>
                  <p class="text-sm text-base-content/70">
                    {gettext("Store email content for troubleshooting delivery issues")}
                  </p>
                </div>
              </div>

              <div class="flex items-start gap-3">
                <.icon name="hero-check-circle" class="w-5 h-5 text-success mt-0.5" />
                <div>
                  <h3 class="font-semibold">{gettext("AWS SES Integration")}</h3>
                  <p class="text-sm text-base-content/70">
                    {gettext("Automatic webhook handling for bounce and complaint events")}
                  </p>
                </div>
              </div>
            </div>
          </div>
        </div>
      <% end %>
    </div>
  </div>
</PhoenixKitWeb.Components.LayoutWrapper.app_layout>
