119 lines
3.2 KiB
JavaScript

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] || [];
};