import { z } from "zod"; export const CreateUserSchema = z.object({ username: z.string().min(1, "Uživatelské jméno je povinné"), email: z.string().email("Neplatný formát e-mailu"), password: z.string().min(8, "Heslo musí mít alespoň 8 znaků"), first_name: z.string().min(1, "Jméno je povinné"), last_name: z.string().min(1, "Příjmení je povinné"), role_id: z.union([z.number(), z.string()]).transform((v) => Number(v)), is_active: z .preprocess((v) => v === true || v === 1 || v === "1", z.boolean()) .optional() .default(true), }); export const UpdateUserSchema = z.object({ username: z.string().optional(), email: z.string().email("Neplatný formát e-mailu").optional(), password: z.preprocess( (v) => (v === "" ? undefined : v), z.string().min(8, "Heslo musí mít alespoň 8 znaků").optional(), ), first_name: z.string().optional(), last_name: z.string().optional(), role_id: z.union([z.number(), z.string(), z.null()]).optional(), is_active: z .preprocess((v) => v === true || v === 1 || v === "1", z.boolean()) .optional(), }); export type CreateUserInput = z.infer; export type UpdateUserInput = z.infer;