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>;
