<PhoenixKitWeb.Components.LayoutWrapper.app_layout
  flash={@flash}
  page_title={@page_title}
  current_path={@current_path}
  project_title={@project_title}
  phoenix_kit_current_scope={@phoenix_kit_current_scope}
  current_locale={assigns[:current_locale]}
>
  <div class="max-w-4xl mx-auto p-6">
    <%!-- Header --%>
    <div class="mb-6">
      <.link navigate={Routes.path("/admin/ai")} class="btn btn-ghost btn-sm gap-2 mb-4">
        <.icon name="hero-arrow-left" class="w-4 h-4" /> Back to AI
      </.link>

      <div class="flex justify-between items-center">
        <div>
          <h1 class="text-2xl font-bold">{@page_title}</h1>
          <p class="text-base-content/70 mt-1">
            Manage your AI provider accounts.
          </p>
        </div>
        <.link navigate={Routes.path("/admin/ai/accounts/new")} class="btn btn-primary btn-sm">
          <.icon name="hero-plus" class="w-4 h-4 mr-1" /> Add Account
        </.link>
      </div>
    </div>

    <%!-- Accounts List --%>
    <%= if length(@accounts) > 0 do %>
      <div class="space-y-4">
        <%= for account <- @accounts do %>
          <div class="card bg-base-100 shadow-lg">
            <div class="card-body p-4">
              <div class="flex items-center justify-between">
                <div>
                  <h3 class="font-semibold text-lg">{account.name}</h3>
                  <div class="text-sm text-base-content/70 space-y-1">
                    <p>
                      <span class="badge badge-outline badge-sm mr-2">
                        {PhoenixKit.AI.Account.provider_label(account.provider)}
                      </span>
                      <span class="font-mono text-xs">
                        {PhoenixKit.AI.Account.masked_api_key(account.api_key)}
                      </span>
                    </p>
                    <%= if account.last_validated_at do %>
                      <p class="text-xs">
                        Last validated: {Calendar.strftime(
                          account.last_validated_at,
                          "%Y-%m-%d %H:%M"
                        )}
                      </p>
                    <% end %>
                  </div>
                </div>

                <div class="flex items-center gap-2">
                  <span class={"badge #{if account.enabled, do: "badge-success", else: "badge-neutral"}"}>
                    {if account.enabled, do: "Active", else: "Disabled"}
                  </span>

                  <div class="dropdown dropdown-end">
                    <label tabindex="0" class="btn btn-ghost btn-sm">
                      <.icon name="hero-ellipsis-vertical" class="w-5 h-5" />
                    </label>
                    <ul
                      tabindex="0"
                      class="dropdown-content z-[1] menu p-2 shadow bg-base-100 rounded-box w-52"
                    >
                      <li>
                        <.link navigate={Routes.path("/admin/ai/accounts/#{account.id}/edit")}>
                          <.icon name="hero-pencil" class="w-4 h-4" /> Edit
                        </.link>
                      </li>
                      <li>
                        <button phx-click="toggle_account" phx-value-id={account.id}>
                          <.icon name="hero-power" class="w-4 h-4" />
                          {if account.enabled, do: "Disable", else: "Enable"}
                        </button>
                      </li>
                      <li>
                        <button
                          phx-click="delete_account"
                          phx-value-id={account.id}
                          data-confirm="Are you sure you want to delete this account?"
                          class="text-error"
                        >
                          <.icon name="hero-trash" class="w-4 h-4" /> Delete
                        </button>
                      </li>
                    </ul>
                  </div>
                </div>
              </div>
            </div>
          </div>
        <% end %>
      </div>
    <% else %>
      <div class="card bg-base-100 shadow-lg">
        <div class="card-body text-center py-12">
          <.icon name="hero-key" class="w-12 h-12 mx-auto text-base-content/30 mb-4" />
          <h3 class="text-lg font-medium mb-2">No accounts yet</h3>
          <p class="text-base-content/70 mb-4">
            Add your first AI provider account to get started.
          </p>
          <.link navigate={Routes.path("/admin/ai/accounts/new")} class="btn btn-primary">
            <.icon name="hero-plus" class="w-4 h-4 mr-1" /> Add Account
          </.link>
        </div>
      </div>
    <% end %>
  </div>
</PhoenixKitWeb.Components.LayoutWrapper.app_layout>
