Files
finance-app/src/lib/validations/transaction.ts
2026-04-19 00:44:43 -04:00

22 lines
744 B
TypeScript

import { z } from 'zod'
export const transactionQuerySchema = z.object({
accountId: z.string().optional(),
dateFrom: z.string().optional(),
dateTo: z.string().optional(),
type: z.enum(['DEBIT', 'CREDIT']).optional(),
search: z.string().optional(),
budgetId: z.string().optional(),
page: z.coerce.number().min(1).default(1),
limit: z.coerce.number().min(1).max(100).default(50),
})
export const updateTransactionSchema = z.object({
notes: z.string().nullable().optional(),
category: z.string().max(100).nullable().optional(),
budgetId: z.string().nullable().optional(),
})
export type TransactionQuery = z.infer<typeof transactionQuerySchema>
export type UpdateTransactionInput = z.infer<typeof updateTransactionSchema>