import { array, z } from "zod"; const phoneRegex = /^\+?[1-9]\d{6,14}$/; export const organizationSchema = z.object({ name: z.string().min(1, { message: "Name is required" }), contactNumber: z .string() .trim() .min(7, { message: "Contact number must be at least 7 digits" }) .max(20, { message: "Contact number cannot exceed 12 digits" }) .regex(phoneRegex, { message: "Invalid phone number" }), contactPerson: z.string().min(1, { message: "Person name required" }), address: z.string().min(1, { message: "Address is required!" }), email: z .string() .min(1, { message: "Email is required" }) .email("Invalid email address"), serviceIds: z .array(z.string()) .min(1, { message: "Service isrequired" }), }); export const defaultOrganizationValues = { name: "", contactNumber: "", contactPerson: "", address: "", email: "", serviceIds: [], }; export const assignedOrgToProject = z.object({ // projectId: z.string().uuid({ message: "Invalid projectId format" }), // organizationId: z.string().string({ message: "Invalid organizationId format" }), // parentOrganizationId: z // .string() // .nullable() // .optional(), serviceIds: z.preprocess( (val) => (Array.isArray(val) ? val : []), z .array(z.string().uuid({ message: "Invalid serviceId format" })) .nonempty({ message: "At least one service must be selected" }) ), organizationTypeId: z .string() .min(1, { message: "Organization is required" }), }); export const spridSchema = z.object({ spridSearchText: z .string() .regex(/^\d{4}$/, { message: "SPRID must be exactly 4 digits" }), });