import { z } from 'zod';

export const ingredientSchema = z.object({
  amount: z.number().optional(),
  unit: z.string().optional(),
  name: z.string().min(1),
  group_name: z.string().optional(),
  sort_order: z.number().optional(),
});

export const stepSchema = z.object({
  step_number: z.number().int().min(1),
  instruction: z.string().min(1),
  duration_minutes: z.number().int().optional(),
});

export const createRecipeSchema = z.object({
  title: z.string().min(1),
  description: z.string().optional(),
  category_id: z.string().optional(),
  difficulty: z.enum(['easy', 'medium', 'hard']).optional(),
  prep_time: z.number().int().optional(),
  cook_time: z.number().int().optional(),
  servings: z.number().int().optional(),
  image_url: z.string().optional(),
  source_url: z.string().optional(),
  ingredients: z.array(ingredientSchema).optional(),
  steps: z.array(stepSchema).optional(),
  tags: z.array(z.string()).optional(),
});

export const updateRecipeSchema = createRecipeSchema.partial();
