feat: initial commit — asaas-checkout template white-label

Template genérico de checkout com ASAAS, parametrizado via env vars.
Inclui fluxo completo: checkout → pedido → polling → webhook → admin.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-16 06:40:41 +02:00
commit 038ce3f556
103 changed files with 20709 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
"use client"
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
import type { Cliente } from "@/lib/supabase"
interface CustomerTableProps {
customers: Cliente[]
}
export function CustomerTable({ customers }: CustomerTableProps) {
if (customers.length === 0) {
return (
<div className="rounded-md border p-8 text-center text-muted-foreground">
Nenhum cliente cadastrado.
</div>
)
}
return (
<div className="rounded-md border">
<Table>
<TableHeader>
<TableRow>
<TableHead>Nome</TableHead>
<TableHead>E-mail</TableHead>
<TableHead>CPF/CNPJ</TableHead>
<TableHead>Telefone</TableHead>
<TableHead>Cadastro</TableHead>
</TableRow>
</TableHeader>
<TableBody>
{customers.map((c) => (
<TableRow key={c.id}>
<TableCell className="font-medium">{c.nome}</TableCell>
<TableCell>{c.email}</TableCell>
<TableCell>{c.cpf_cnpj ?? "—"}</TableCell>
<TableCell>{c.telefone ?? "—"}</TableCell>
<TableCell className="text-sm text-muted-foreground">
{new Date(c.created_at).toLocaleDateString("pt-BR")}
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
</div>
)
}