import { z } from "zod"; export const newTenantSchema = z.object({ firstName: z.string().nonempty("First name is required"), lastName: z.string().nonempty("Last name is required"), email: z.string().email("Invalid email address"), description: z.string().optional(), domainName: z.string().nonempty("Domain name is required"), billingAddress: z.string().nonempty("Billing address is required"), taxId: z.string().nonempty("Tax ID is required"), logoImage: z.string().optional(), organizationName: z.string().nonempty("Organization name is required"), officeNumber: z.string().nonempty("Office number is required"), contactNumber: z.string().nonempty("Contact number is required"), onBoardingDate: z.coerce.date({ required_error: "Onboarding date is required", invalid_type_error: "Invalid date format", }), organizationSize: z.string().nonempty("Organization size is required"), industryId: z.string().uuid("Invalid industry ID"), reference: z.string().nonempty("Reference is required"), }); export const tenantDefaultValues = { firstName: "", lastName: "", email: "", description: "", domainName: "", billingAddress: "", taxId: "", logoImage: "", organizationName: "", officeNumber: "", contactNumber: "", onBoardingDate: new Date(), // or `null` if you want it empty organizationSize: "", industryId: "", // should be a valid UUID if pre-filled reference: "", }; export const subscriptionSchema = z.object({ // tenantId: z.string().uuid("Invalid tenant ID"), planId: z.string().min(1,{message:"Please select Plan"}), currencyId: z.string().uuid("Invalid currency"), maxUsers: z .number({ invalid_type_error: " Must be a number" }) .min(1, "Team size is required and must be greater than zero"), frequency: z .number({ invalid_type_error: "Frequency must be a number" }) .min(1, "Frequency must be at least 1"), isTrial: z.boolean(), autoRenew: z.boolean(), }); export const subscriptionDefaultValues = { // tenantId: "", planId: "", currencyId: "", maxUsers: 1, frequency: 1, isTrial: false, autoRenew: false, }; export const filterSchema = z.object({ industryIds: z.array(z.string()).optional(), // createdByIds: z.array(z.string()).optional(), // tenantStatusIds: z.array(z.string()).optional(), references: z.array(z.string()).optional(), startDate: z.string().optional(), endDate: z.string().optional(), }); export const defaultFilterValues = { industryIds: [], // createdByIds: [], // tenantStatusIds: [], references: [], startDate: "YYYY-MM-DDTHH:mm:ssZ", endDate: "YYYY-MM-DDTHH:mm:ssZ", }; export const getStepFields = (stepIndex) => { const stepFieldMap = { 0: [ "firstName", "lastName", "email", "contactNumber", "billingAddress", ], 1: [ "organizationName", "officeNumber", "domainName", "description", "onBoardingDate", "organizationSize", "taxId", "industryId", "reference", "logoImage", ], 2: [ "tenantId", "planId", "currencyId", "maxUsers", "frequency", "isTrial", "autoRenew", ], }; return stepFieldMap[stepIndex] || []; };