import * as z from "zod/v4"; const rangePattern = /^\d{1,3}–\d{1,3}$/; const optionField = z.object({ optionId: z.string(), price: z.number().optional(), pricePercent: z.number().optional(), priceRange: z .string() .regex(rangePattern, "Format must be like '10–80'") .optional(), }); const extraField = z.object({ extraId: z.string(), price: z.number().optional(), pricePercent: z.number().optional(), priceRange: z .string() .regex(rangePattern, "Format must be like '10–80'") .optional(), }); const customInputsField = z.object({ customInputId: z.string(), inputType: z.string(), label: z.string(), required: z.boolean(), }); export const commissionTypeSchema = z.object({ name: z.string().min(1, "Name is required. Min 1 character."), description: z.string().optional(), options: z.array(optionField).optional(), extras: z.array(extraField).optional(), customInputs: z.array(customInputsField).optional(), }); export type commissionTypeSchema = z.infer; export const commissionOptionSchema = z.object({ name: z.string().min(1, "Name is required"), description: z.string().optional(), }); export type CommissionOptionValues = z.infer; export const commissionExtraSchema = z.object({ name: z.string().min(1, "Name is required"), description: z.string().optional(), }); export type CommissionExtraValues = z.infer;