import { requireEvent } from '@/lib/auth'
import { eventClosingReport } from '@/lib/certificate'
import ClosingCertificate from '@/components/ClosingCertificate'
import { getPublicBrand } from '@/lib/org-brand'
import CopyButton from '@/components/CopyButton'
import PrintButton from '@/components/PrintButton'

export const dynamic = 'force-dynamic'

export default async function ClosingPage({ params }: { params: Promise<{ id: string }> }) {
  const { id } = await params
  await requireEvent(id)
  const r = (await eventClosingReport(id))!
  const publicUrl = `${process.env.APP_URL ?? ''}${r.publicPath}`

  return (
    <div className="space-y-6">
      {r.minors.enabled ? (
        <section className="card space-y-3 p-5 print:hidden">
          <p className="font-semibold">Link para el colegio y las familias</p>
          <p className="text-sm text-gray-500">Muestra el certificado sin importes de dinero. Cualquiera puede verificarlo, pero nadie puede adivinar el link de otro evento.</p>
          <div className="flex flex-col gap-2 sm:flex-row">
            <p className="input flex-1 truncate bg-gray-50 font-mono text-xs">{publicUrl}</p>
            <CopyButton text={publicUrl} />
          </div>
        </section>
      ) : (
        <p className="rounded-control bg-gray-100 px-4 py-3 text-sm text-gray-600 print:hidden">
          Este evento vende alcohol: el cierre es un reporte interno. Para emitir certificado de evento sin alcohol, activá el modo menores antes del primer pedido.
        </p>
      )}
      <div className="flex justify-end print:hidden"><PrintButton /></div>
      <ClosingCertificate r={r} audience="organizer" brand={(await getPublicBrand(r.event.orgId))!} />
    </div>
  )
}
