feat(v1.5.3): status de pagamento no painel do pagador + SEO landing + WebP

- Card de Status de Pagamento com totais pagos/pendentes e lista de boletos individuais
- Validação obrigatória de categoria/conta/cartão no dialog de lançamento (client + server)
- SEO completo na landing: Open Graph, Twitter Card, JSON-LD, sitemap.xml, robots.txt
- Imagens convertidas de PNG para WebP (performance)
- HTML lang corrigido para pt-BR; template de título dinâmico

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Felipe Coutinho
2026-02-21 17:48:52 +00:00
parent 5638ccc36a
commit 31fe752b7d
32 changed files with 600 additions and 176 deletions

View File

@@ -182,6 +182,30 @@ const refineLancamento = (
data: z.infer<typeof baseFields> & { id?: string },
ctx: z.RefinementCtx,
) => {
if (!data.categoriaId) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
path: ["categoriaId"],
message: "Selecione uma categoria.",
});
}
if (data.paymentMethod === "Cartão de crédito") {
if (!data.cartaoId) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
path: ["cartaoId"],
message: "Selecione o cartão.",
});
}
} else if (!data.contaId) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
path: ["contaId"],
message: "Selecione a conta.",
});
}
if (data.condition === "Parcelado") {
if (!data.installmentCount) {
ctx.addIssue({