<PhoenixKitWeb.Components.LayoutWrapper.app_layout
  flash={@flash}
  phoenix_kit_current_scope={assigns[:phoenix_kit_current_scope]}
  page_title="Post Groups"
  current_path={@url_path}
  project_title={@project_title}
>
  <div class="container flex-col mx-auto px-4 py-6">
    <%!-- Header Section --%>
    <.admin_page_header
      back={Routes.path("/admin/posts")}
      title="Post Groups"
      subtitle="Organize your posts into collections"
    >
      <:actions>
        <.link
          navigate={Routes.path("/admin/posts/groups/new")}
          class="btn btn-primary btn-sm"
        >
          + New Group
        </.link>
      </:actions>
    </.admin_page_header>

    <%!-- Search Bar --%>
    <div class="bg-base-200 rounded-lg p-6 mb-6">
      <.form for={%{}} phx-change="search" class="space-y-4">
        <div class="form-control">
          <label class="label">
            <span class="label-text font-semibold">Search Groups</span>
          </label>
          <div class="input-group">
            <input
              type="text"
              name="search[query]"
              value={@search_query}
              placeholder="Search by name or description..."
              class="input input-bordered w-full"
            />
            <%= if @search_query != "" do %>
              <button
                type="button"
                phx-click="clear_search"
                class="btn btn-square"
              >
                <.icon name="hero-x-mark" class="w-5 h-5" />
              </button>
            <% end %>
          </div>
        </div>

        <div class="flex gap-2">
          <button type="button" phx-click="refresh" class="btn btn-ghost btn-sm">
            <.icon name="hero-arrow-path" class="w-4 h-4 mr-2" /> Refresh
          </button>
        </div>
      </.form>
    </div>

    <%!-- Groups Grid --%>
    <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
      <%= if @loading do %>
        <div class="col-span-full text-center py-12">
          <span class="loading loading-spinner loading-lg"></span>
          <p class="mt-2">Loading groups...</p>
        </div>
      <% else %>
        <%= if length(@groups) == 0 do %>
          <div class="col-span-full text-center py-12">
            <div class="text-base-content/60">
              <.icon name="hero-folder-open" class="w-16 h-16 mx-auto mb-4 opacity-50" />
              <%= if @search_query != "" do %>
                <p class="text-lg mb-2">No groups found</p>
                <p class="text-sm">
                  Try adjusting your search or
                  <button phx-click="clear_search" class="link link-primary">
                    clear search
                  </button>
                </p>
              <% else %>
                <p class="text-lg mb-2">No groups yet</p>
                <p class="text-sm mb-4">Create your first group to start organizing posts</p>
                <.link
                  navigate={Routes.path("/admin/posts/groups/new")}
                  class="btn btn-primary"
                >
                  <.icon name="hero-plus" class="w-5 h-5 mr-2" /> Create First Group
                </.link>
              <% end %>
            </div>
          </div>
        <% else %>
          <%= for group <- @groups do %>
            <div class="card bg-base-100 shadow-xl hover:shadow-2xl transition-shadow">
              <div class="card-body">
                <%!-- Group Header --%>
                <div class="flex items-start justify-between mb-2">
                  <div class="flex-1">
                    <h2 class="card-title text-xl">
                      <.icon name="hero-folder" class="w-5 h-5" />
                      {group.name}
                    </h2>

                    <%!-- Visibility Badge --%>
                    <div class="mt-1">
                      <span class={"badge #{visibility_badge_class(group.visibility)}"}>
                        {format_visibility(group.visibility)}
                      </span>
                    </div>
                  </div>

                  <%!-- Actions --%>
                  <div class="flex gap-1">
                    <button
                      phx-click="view_group"
                      phx-value-id={group.uuid}
                      class="btn btn-xs btn-ghost"
                      title="View group"
                    >
                      <.icon name="hero-eye" class="w-4 h-4" />
                    </button>
                    <button
                      phx-click="edit_group"
                      phx-value-id={group.uuid}
                      class="btn btn-xs btn-ghost"
                      title="Edit group"
                    >
                      <.icon name="hero-pencil" class="w-4 h-4" />
                    </button>
                    <button
                      phx-click="delete_group"
                      phx-value-id={group.uuid}
                      data-confirm="Are you sure you want to delete this group? Posts will not be deleted."
                      class="btn btn-xs btn-ghost text-error"
                      title="Delete group"
                    >
                      <.icon name="hero-trash" class="w-4 h-4" />
                    </button>
                  </div>
                </div>

                <%!-- Description --%>
                <%= if group.description do %>
                  <p class="text-sm text-base-content/70 mb-3">
                    {group.description}
                  </p>
                <% end %>

                <%!-- Stats --%>
                <div class="flex items-center gap-4 text-sm mb-3">
                  <div class="flex items-center gap-1">
                    <.icon name="hero-document-text" class="w-4 h-4 text-base-content/60" />
                    <span class="font-semibold">{length(group.posts || [])}</span>
                    <span class="text-base-content/60">posts</span>
                  </div>

                  <%= if group.slug do %>
                    <div class="flex items-center gap-1 text-base-content/60">
                      <.icon name="hero-link" class="w-4 h-4" />
                      <code class="text-xs">{group.slug}</code>
                    </div>
                  <% end %>
                </div>

                <%!-- Dates --%>
                <div class="text-xs text-base-content/60">
                  Created {Calendar.strftime(group.inserted_at, "%b %d, %Y")}
                </div>

                <%!-- Actions --%>
                <div class="card-actions justify-end mt-4">
                  <.link
                    navigate={Routes.path("/admin/posts/groups/#{group.uuid}")}
                    class="btn btn-primary btn-sm"
                  >
                    <.icon name="hero-eye" class="w-4 h-4 mr-1" /> View Posts
                  </.link>
                </div>
              </div>
            </div>
          <% end %>
        <% end %>
      <% end %>
    </div>
  </div>
</PhoenixKitWeb.Components.LayoutWrapper.app_layout>
