import type {IngredientGroupModel} from "./IngredientGroupModel" import type {InstructionStepModel} from "./InstructionStepModel" import type {ServingsModel} from "./ServingsModel" import type {TagModel} from "./TagModel.ts"; /** * 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 /** Tags categorising the recipe, e.g. "dessert", "vegetarian", "christmas" */ tagList: TagModel[] }