feat(inbox): add Caixa de Entrada page for managing companion notifications

- Create inbox page with pending items management:
  - InboxCard: displays notification summary with parsed data
  - InboxDetailsDialog: view full notification details
  - ProcessDialog: convert notification to transaction (lancamento)

- Add server actions for inbox operations:
  - getInboxItems: fetch pending inbox items
  - processInboxItem: create lancamento from inbox item
  - discardInboxItem: discard unwanted notifications

- Add navigation link to sidebar under 'Gestão Financeira'
- Add revalidation config for inbox-related paths
This commit is contained in:
Felipe Coutinho
2026-01-23 12:12:22 +00:00
parent 48d9eea8a9
commit 9ff42ecbe7
11 changed files with 1177 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
import { InboxPage } from "@/components/caixa-de-entrada/inbox-page";
import { getUserId } from "@/lib/auth/server";
import {
fetchInboxItems,
fetchCategoriasForSelect,
fetchContasForSelect,
fetchCartoesForSelect,
} from "./data";
export default async function Page() {
const userId = await getUserId();
const [items, categorias, contas, cartoes] = await Promise.all([
fetchInboxItems(userId, "pending"),
fetchCategoriasForSelect(userId),
fetchContasForSelect(userId),
fetchCartoesForSelect(userId),
]);
return (
<main className="flex flex-col items-start gap-6">
<InboxPage
items={items}
categorias={categorias}
contas={contas}
cartoes={cartoes}
/>
</main>
);
}