import LoginClient from "@/app/login/login-client";
import { ambientePadrao, painelFiscal, type PainelFiscal } from "@/lib/fiscal-owner";
import { isOwnerUser } from "@/lib/owner-auth";
import { createClient } from "@/lib/supabase-server";

import PainelDasNotas from "./painel-client";

export const dynamic = "force-dynamic";

export default async function NotasFiscaisDoOwner() {
  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 ambiente = ambientePadrao();
  let inicial: PainelFiscal | null = null;
  let erro: string | null = null;
  try {
    inicial = await painelFiscal(ambiente);
  } catch (falha) {
    console.error("[owner/notas-fiscais]", falha instanceof Error ? falha.message : falha);
    erro = "Não foi possível carregar os dados das notas fiscais agora.";
  }

  return <PainelDasNotas inicial={inicial} ambienteInicial={ambiente} erroInicial={erro} />;
}
