import { z } from "zod"; // See schemas/auth.ts for the shared client/server validation rationale. /** Payload accepted by `PATCH /profile/diet`. `null` clears the profile's regime — this step of the profile journey is skippable. */ export const updateDietSchema = z.object({ dietId: z.number().int().positive().nullable(), }); /** Inferred TS type for {@link updateDietSchema}'s validated output. */ export type UpdateDietInput = z.infer; /** Payload accepted by `PATCH /profile/allergies`. Replaces the profile's full allergy set — an empty array clears it (also skippable). */ export const updateAllergiesSchema = z.object({ allergyIds: z.array(z.number().int().positive()), }); /** Inferred TS type for {@link updateAllergiesSchema}'s validated output. */ export type UpdateAllergiesInput = z.infer; /** * Payload accepted by `PATCH /profile/disliked-ingredients`. Replaces the * profile's full "disliked" set — a personal taste preference, not a * medical restriction (see `updateAllergiesSchema` above for that distinct * list) — an empty array clears it. */ export const updateDislikedIngredientsSchema = z.object({ dislikedIngredientIds: z.array(z.number().int().positive()), }); /** Inferred TS type for {@link updateDislikedIngredientsSchema}'s validated output. */ export type UpdateDislikedIngredientsInput = z.infer;