41 lines
1.3 KiB
TypeScript
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[]
|
|
}
|
|
|