forked from git.gladyson/openmonetis
- Replace ESLint with Biome for linting and formatting - Configure Biome with tabs, double quotes, and organized imports - Move all SQL/Drizzle queries from page.tsx files to data.ts files - Create new data.ts files for: ajustes, dashboard, relatorios/categorias - Update existing data.ts files: extrato, fatura (add lancamentos queries) - Remove all drizzle-orm imports from page.tsx files - Update README.md with new tooling info Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
25 lines
852 B
TypeScript
25 lines
852 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>;
|