feat: add client workspace management

This commit is contained in:
2026-06-05 23:25:36 +01:00
parent 930e83344c
commit 631a5112f4
72 changed files with 6423 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
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')
});