22 lines
744 B
TypeScript
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>
|