Files
clearity/src/lib/schemas/clients.schema.ts
T

28 lines
1.1 KiB
TypeScript

import { z } from 'zod';
import { idSchema, optionalEmail, optionalText, optionalUrl, requiredText } from './shared.schema';
export const clientCreateSchema = z.object({
name: requiredText('Client name'),
type: z.enum(['business', 'sport', 'individual']).default('business'),
status: z.enum(['active', 'prospect', 'paused']).default('active'),
website: optionalUrl,
notes: optionalText(1000)
});
export const clientEditSchema = clientCreateSchema.extend(idSchema.shape);
export const clientOnboardingCreateSchema = clientCreateSchema.extend({
primaryContactName: requiredText('Primary contact name'),
primaryContactRole: optionalText(120),
primaryContactEmail: optionalEmail,
primaryContactPhone: optionalText(80),
primaryContactNotes: optionalText(1000),
primaryAddressLabel: requiredText('Address label', 80).default('Primary'),
primaryAddressLine1: requiredText('Address line 1'),
primaryAddressLine2: optionalText(160),
primaryAddressCity: requiredText('City', 100),
primaryAddressRegion: optionalText(100),
primaryAddressPostcode: requiredText('Postcode', 24),
primaryAddressCountry: requiredText('Country', 80).default('United Kingdom')
});