37 lines
1.0 KiB
TypeScript

/**
* ID Mapping Domain - Schemas
*/
import { z } from "zod";
import type {
CreateMappingRequest,
UpdateMappingRequest,
UserIdMapping,
} from "./contract";
export const createMappingRequestSchema: z.ZodType<CreateMappingRequest> = z.object({
userId: z.string().uuid(),
whmcsClientId: z.number().int().positive(),
sfAccountId: z
.string()
.min(1, "Salesforce account ID must be at least 1 character")
.optional(),
});
export const updateMappingRequestSchema: z.ZodType<UpdateMappingRequest> = z.object({
whmcsClientId: z.number().int().positive().optional(),
sfAccountId: z
.string()
.min(1, "Salesforce account ID must be at least 1 character")
.optional(),
});
export const userIdMappingSchema: z.ZodType<UserIdMapping> = z.object({
id: z.string().uuid(),
userId: z.string().uuid(),
whmcsClientId: z.number().int().positive(),
sfAccountId: z.string().nullable().optional(),
createdAt: z.union([z.string(), z.date()]),
updatedAt: z.union([z.string(), z.date()]),
});