mirror of
https://github.com/felipegcoutinho/openmonetis.git
synced 2026-03-10 04:51:47 +00:00
- Remove process-dialog.tsx (componente não mais utilizado) - Simplifica inbox-page.tsx removendo estados e lógica do process dialog - Atualiza inbox-details-dialog para usar lancamento-dialog diretamente - Adiciona suporte a dados iniciais do inbox no lancamento-dialog - Move campos de metadata da inbox para o form de lançamento - Remove campo currency não utilizado do schema - Atualiza actions e data com melhor tratamento de erros
27 lines
988 B
TypeScript
27 lines
988 B
TypeScript
/**
|
|
* Zod schemas for inbox items (OpenSheets Companion)
|
|
*/
|
|
|
|
import { z } from "zod";
|
|
|
|
export const inboxItemSchema = z.object({
|
|
sourceApp: z.string().min(1, "sourceApp é obrigatório"),
|
|
sourceAppName: z.string().optional(),
|
|
deviceId: z.string().optional(),
|
|
originalTitle: z.string().optional(),
|
|
originalText: z.string().min(1, "originalText é obrigatório"),
|
|
notificationTimestamp: z.string().transform((val) => new Date(val)),
|
|
parsedName: z.string().optional(),
|
|
parsedAmount: z.coerce.number().optional(),
|
|
parsedDate: z.string().optional().transform((val) => (val ? new Date(val) : undefined)),
|
|
parsedTransactionType: z.enum(["Despesa", "Receita"]).optional(),
|
|
clientId: z.string().optional(), // ID local do app para rastreamento
|
|
});
|
|
|
|
export const inboxBatchSchema = z.object({
|
|
items: z.array(inboxItemSchema).min(1).max(50),
|
|
});
|
|
|
|
export type InboxItemInput = z.infer<typeof inboxItemSchema>;
|
|
export type InboxBatchInput = z.infer<typeof inboxBatchSchema>;
|