18 lines
657 B
TypeScript
18 lines
657 B
TypeScript
|
|
import { z } from 'zod';
|
||
|
|
|
||
|
|
/** CM-9: proxy / point-of-contact. */
|
||
|
|
|
||
|
|
export const PROXY_ENTITY_TYPES = ['client', 'interest', 'yacht'] as const;
|
||
|
|
export type ProxyEntityType = (typeof PROXY_ENTITY_TYPES)[number];
|
||
|
|
|
||
|
|
export const setProxySchema = z.object({
|
||
|
|
name: z.string().trim().min(1, 'Name is required').max(200),
|
||
|
|
// Loose contact fields — empty strings are normalised to null in the service.
|
||
|
|
email: z.string().trim().max(320).nullish(),
|
||
|
|
phone: z.string().trim().max(50).nullish(),
|
||
|
|
relationship: z.string().trim().max(100).nullish(),
|
||
|
|
notes: z.string().trim().max(2000).nullish(),
|
||
|
|
});
|
||
|
|
|
||
|
|
export type SetProxyInput = z.infer<typeof setProxySchema>;
|