import type { IngredientGroupModel } from "./IngredientGroupModel"
import type { InstructionStepModel } from "./InstructionStepModel"
import type { ServingsModel } from "./ServingsModel"

/**
 * Represents a recipe object in the application.
 */
/*
 * @todo ingredient groups! There may be serveral ingredient lists, each with a title.
 * e.g. for the dough, for the filling, for the icing,...
 * - add type ingredient group with an optional title and a list of ingredients
 * - adapt RecipeDetailView
 * - add an IngredientGroupListEditor for handling IngredientGroups
*/
export interface RecipeModel {
  /** Unique identifier for the recipe */
  id?: string

  /** Title of the recipe */
  title: string

  /** List of ingredients groups containing the ingredients of the recipe */
  ingredientGroupList: IngredientGroupModel[]

  /** Preparation instructions */
  instructionStepList: InstructionStepModel[]

  /** Number of servings, e.g., for 4 person, 12 cupcakes, 2 glasses */
  servings: ServingsModel

  /** Unit for the quantity */

  /** Optional image URL for the recipe */
  imageUrl?: string
}

