BREAKING CHANGES: - Renomeia rota /caixa-de-entrada para /pre-lancamentos - Remove colunas device_id, parsed_date e discard_reason da tabela inbox_items Mudanças: - Move componentes de caixa-de-entrada para pre-lancamentos - Atualiza sidebar e navegação para nova rota - Remove campos não utilizados do schema, types e APIs - Adiciona migration 0011 para remover colunas do banco - Simplifica lógica de data padrão usando notificationTimestamp
25 lines
862 B
TypeScript
25 lines
862 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(),
|
|
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(),
|
|
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>;
|