import LoginClient from "@/app/login/login-client";
import SponsoredSuppliersListClient from "@/app/fornecedores-patrocinados/list-client";
import { createAdminClient } from "@/lib/supabase-admin";
import { createClient } from "@/lib/supabase-server";
import { isOwnerUser } from "@/lib/owner-auth";

type SponsoredSupplierRow = {
  id: string;
  name: string;
  legal_name: string | null;
  cnpj: string;
  category: string | null;
  city: string | null;
  email: string;
  phone: string;
  payment_terms_primary: string;
  payment_terms_secondary: string;
  subscriber_discount: string | null;
  image_url: string | null;
  description: string | null;
  website_url: string | null;
  notes: string | null;
  active: boolean;
  position: number;
  created_at: string | null;
  updated_at: string | null;
};

export default async function OwnerSponsoredSuppliersPage() {
  const supabase = await createClient();
  const {
    data: { user },
  } = await supabase.auth.getUser();

  if (!user) {
    return <LoginClient />;
  }

  if (!isOwnerUser({ id: user.id, email: user.email })) {
    return (
      <div className="min-h-screen flex items-center justify-center p-6 bg-slate-50">
        <div className="w-full max-w-lg rounded-2xl bg-white p-8 shadow-sm border border-slate-200 text-center">
          <h1 className="text-xl font-semibold text-slate-900">Acesso negado</h1>
          <p className="text-sm text-slate-500 mt-2">Seu usuário não tem permissão para acessar este painel.</p>
        </div>
      </div>
    );
  }

  const admin = createAdminClient();
  const { data } = await admin
    .from("sponsored_suppliers")
    .select("id,name,legal_name,cnpj,category,city,email,phone,payment_terms_primary,payment_terms_secondary,subscriber_discount,image_url,description,website_url,notes,active,position,created_at,updated_at")
    .order("position", { ascending: true })
    .order("created_at", { ascending: false })
    .limit(500);

  return <SponsoredSuppliersListClient initialRows={(data || []) as SponsoredSupplierRow[]} />;
}
