22 lines
706 B
TypeScript
22 lines
706 B
TypeScript
import { z } from 'zod';
|
|
|
|
export const accountSettingsSchema = z.object({
|
|
firstName: z
|
|
.string()
|
|
.min(1, { error: 'error:tooShort' })
|
|
.max(200, { error: 'error:tooLong' }),
|
|
lastName: z
|
|
.string()
|
|
.min(1, { error: 'error:tooShort' })
|
|
.max(200, { error: 'error:tooLong' }),
|
|
email: z.email({ error: 'error:invalidEmail' }).nullable(),
|
|
phone: z.e164({ error: 'error:invalidPhone' }),
|
|
accountParams: z.object({
|
|
height: z.coerce.number({ error: 'error:invalidNumber' }).gt(0),
|
|
weight: z.coerce.number({ error: 'error:invalidNumber' }).gt(0),
|
|
isSmoker: z.boolean().optional().nullable(),
|
|
}),
|
|
});
|
|
|
|
export type AccountSettings = z.infer<typeof accountSettingsSchema>;
|