import { z } from "zod"; import { nonNegativeIntFromForm } from "./common"; export const CreateVehicleSchema = z.object({ spz: z.string().min(1, "SPZ je povinná").max(50), name: z.string().min(1, "Název je povinný").max(255), brand: z.string().nullish(), model: z.string().nullish(), // Int columns — decimals would 500 at Prisma or silently truncate. initial_km: nonNegativeIntFromForm.optional().default(0), actual_km: nonNegativeIntFromForm.optional().default(0), is_active: z .preprocess((v) => v === true || v === 1 || v === "1", z.boolean()) .optional() .default(true), }); export const UpdateVehicleSchema = z.object({ spz: z.string().max(50).optional(), name: z.string().max(255).optional(), brand: z.string().nullish(), model: z.string().nullish(), initial_km: nonNegativeIntFromForm.optional(), actual_km: nonNegativeIntFromForm.optional(), is_active: z .preprocess((v) => v === true || v === 1 || v === "1", z.boolean()) .optional(), }); export type CreateVehicleInput = z.infer; export type UpdateVehicleInput = z.infer;