import { z } from 'zod' export const codeEntrySchema = z.object({ code: z.string() .length(5, 'Kód musí mít přesně 5 znaků') .regex(/^[A-Z0-9]{5}$/, 'Kód může obsahovat pouze písmena A-Z a číslice 0-9') }) export const pinEntrySchema = z.object({ pin: z.string() .length(5, 'PIN musí mít přesně 5 číslic') .regex(/^[0-9]{5}$/, 'PIN může obsahovat pouze číslice 0-9') }) export const codeWithPinSchema = z.object({ code: z.string().length(5).regex(/^[A-Z0-9]{5}$/), // Allow empty string (treat as no PIN) by preprocessing empty strings to undefined, // otherwise validate exactly 5 digits when provided. pin: z.preprocess( (val) => (typeof val === 'string' && val.trim() === '') ? undefined : val, z.string().length(5, 'PIN musí mít přesně 5 číslic').regex(/^[0-9]{5}$/, 'PIN může obsahovat pouze číslice 0-9').optional() ) }) export type CodeEntryForm = z.infer export type PinEntryForm = z.infer export type CodeWithPinForm = z.infer