export enum MealCategory {
  Breakfast = 0,
  SecondBreakfast = 1,
  Lunch = 2,
  Dinner = 3,
}

export interface RecipeListItem {
  id: number;
  name: string;
  mealCategory: MealCategory;
  calories: number | null;
  prepTimeMinutes: number | null;
}

export interface Ingredient {
  id: number;
  name: string;
  amountGrams: number | null;
  unit: string | null;
  catalogItemId?: number | null;
  sortOrder: number;
}

export interface RecipeStep {
  id: number;
  stepNumber: number;
  description: string;
}

export interface RecipeDetail {
  id: number;
  name: string;
  mealCategory: MealCategory;
  calories: number | null;
  protein: number | null;
  fat: number | null;
  carbs: number | null;
  prepTimeMinutes: number | null;
  ingredients: Ingredient[];
  steps: RecipeStep[];
}

export interface CategoryCount {
  category: MealCategory;
  name: string;
  count: number;
}

export interface CreateRecipeInput {
  name: string;
  mealCategory: MealCategory;
  calories: number | null;
  protein: number | null;
  fat: number | null;
  carbs: number | null;
  prepTimeMinutes: number | null;
  ingredients: Array<{
    name: string;
    amountGrams: number | null;
    unit: string;
    catalogItemId?: number | null;
    sortOrder: number;
  }>;
  steps: Array<{ stepNumber: number; description: string }>;
}
