recipe-app/frontend/src/models/RecipeModel.ts
2026-02-21 07:44:26 +01:00

41 lines
1.3 KiB
TypeScript

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[]
}