import { z } from "zod"; export const CreateReceivedInvoiceSchema = z.object({ supplier_name: z.string().min(1, "Název dodavatele je povinný"), month: z.union([z.number(), z.string()]).transform((v) => Number(v)), year: z.union([z.number(), z.string()]).transform((v) => Number(v)), invoice_number: z.string().nullish(), description: z.string().nullish(), amount: z .union([z.number(), z.string()]) .transform((v) => Number(v)) .optional() .default(0), currency: z.string().optional().default("CZK"), vat_rate: z .union([z.number(), z.string()]) .transform((v) => Number(v)) .optional() .default(21), vat_amount: z .union([z.number(), z.string()]) .transform((v) => Number(v)) .optional() .default(0), issue_date: z.string().nullish(), due_date: z.string().nullish(), status: z.enum(["unpaid", "paid"]).optional().default("unpaid"), notes: z.string().nullish(), }); export const UpdateReceivedInvoiceSchema = z.object({ supplier_name: z.string().optional(), invoice_number: z.string().nullish(), description: z.string().nullish(), amount: z .union([z.number(), z.string()]) .transform((v) => Number(v)) .optional(), currency: z.string().optional(), vat_rate: z .union([z.number(), z.string()]) .transform((v) => Number(v)) .optional(), vat_amount: z .union([z.number(), z.string()]) .transform((v) => Number(v)) .optional(), issue_date: z.union([z.string(), z.null()]).optional(), due_date: z.union([z.string(), z.null()]).optional(), paid_date: z.union([z.string(), z.null()]).optional(), status: z.enum(["unpaid", "paid"]).optional(), notes: z.string().nullish(), month: z .union([z.number(), z.string()]) .transform((v) => Number(v)) .optional(), year: z .union([z.number(), z.string()]) .transform((v) => Number(v)) .optional(), }); export type CreateReceivedInvoiceInput = z.infer< typeof CreateReceivedInvoiceSchema >; export type UpdateReceivedInvoiceInput = z.infer< typeof UpdateReceivedInvoiceSchema >;