85 lines
2.6 KiB
Python
85 lines
2.6 KiB
Python
from typing import Any, Dict, List, Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class RecipeIngredient(BaseModel):
|
|
quantity: Optional[float] = None
|
|
unit: Optional[str] = None
|
|
food: Optional[str] = None
|
|
note: str
|
|
isFood: Optional[bool] = True
|
|
disableAmount: Optional[bool] = False
|
|
display: Optional[str] = None
|
|
title: Optional[str] = None
|
|
originalText: Optional[str] = None
|
|
referenceId: Optional[str] = None
|
|
|
|
|
|
class RecipeInstruction(BaseModel):
|
|
id: Optional[str] = None
|
|
title: Optional[str] = None
|
|
summary: Optional[str] = None
|
|
text: str
|
|
ingredientReferences: List[str] = Field(default_factory=list)
|
|
|
|
|
|
class RecipeNutrition(BaseModel):
|
|
calories: Optional[str] = None
|
|
carbohydrateContent: Optional[str] = None
|
|
cholesterolContent: Optional[str] = None
|
|
fatContent: Optional[str] = None
|
|
fiberContent: Optional[str] = None
|
|
proteinContent: Optional[str] = None
|
|
saturatedFatContent: Optional[str] = None
|
|
sodiumContent: Optional[str] = None
|
|
sugarContent: Optional[str] = None
|
|
transFatContent: Optional[str] = None
|
|
unsaturatedFatContent: Optional[str] = None
|
|
|
|
|
|
class RecipeSettings(BaseModel):
|
|
public: bool = False
|
|
showNutrition: bool = False
|
|
showAssets: bool = False
|
|
landscapeView: bool = False
|
|
disableComments: bool = False
|
|
disableAmount: bool = False
|
|
locked: bool = False
|
|
|
|
|
|
class Recipe(BaseModel):
|
|
id: str
|
|
userId: str
|
|
householdId: str
|
|
groupId: str
|
|
name: str
|
|
slug: str
|
|
image: Optional[str] = None
|
|
recipeServings: Optional[int] = None
|
|
recipeYieldQuantity: Optional[int] = 0
|
|
recipeYield: Optional[str] = None
|
|
totalTime: Optional[int] = None
|
|
prepTime: Optional[int] = None
|
|
cookTime: Optional[int] = None
|
|
performTime: Optional[int] = None
|
|
description: Optional[str] = None
|
|
recipeCategory: List[str] = Field(default_factory=list)
|
|
tags: List[str] = Field(default_factory=list)
|
|
tools: List[str] = Field(default_factory=list)
|
|
rating: Optional[float] = None
|
|
orgURL: Optional[str] = None
|
|
dateAdded: str
|
|
dateUpdated: str
|
|
createdAt: str
|
|
updatedAt: str
|
|
lastMade: Optional[str] = None
|
|
recipeIngredient: List[RecipeIngredient] = Field(default_factory=list)
|
|
recipeInstructions: List[RecipeInstruction] = Field(default_factory=list)
|
|
nutrition: RecipeNutrition = Field(default_factory=RecipeNutrition)
|
|
settings: RecipeSettings = Field(default_factory=RecipeSettings)
|
|
assets: List[Any] = Field(default_factory=list)
|
|
notes: List[Any] = Field(default_factory=list)
|
|
extras: Dict[str, Any] = Field(default_factory=dict)
|
|
comments: List[Any] = Field(default_factory=list)
|