1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
|
"""Cookidoo API raw json types."""
from typing import Literal, TypedDict
class AuthResponseJSON(TypedDict):
"""An auth response class."""
sub: str
access_token: str
refresh_token: str
token_type: str
expires_in: int
class UserInfoJSON(TypedDict):
"""The json for a user info in the API."""
username: str
description: str | None
picture: str | None
class SubscriptionJSON(TypedDict):
"""The json for a subscription in the API."""
active: bool
expires: str
startDate: str
status: str
subscriptionLevel: str
subscriptionSource: str
type: str
extendedType: str
# class QuantityJSON(TypedDict):
# """The json for an quantity in the API."""
# value: int | None
# from: int | None
# to: int | None
# Need to use alternative syntax as "from" is a protected keyword
QuantityJSON = TypedDict(
"QuantityJSON", {"value": int | None, "from": int | None, "to": int | None}
)
class AdditionalItemJSON(TypedDict):
"""The json for an additional item in the API."""
id: str
name: str
isOwned: bool
class ItemJSON(TypedDict):
"""The json for an item in the API."""
id: str
ingredientNotation: str
isOwned: bool
quantity: QuantityJSON | None
unitNotation: str | None
class IngredientJSON(TypedDict):
"""The json for an ingredient in the API."""
localId: str
ingredientNotation: str
quantity: QuantityJSON | None
unitNotation: str | None
class RecipeJSON(TypedDict):
"""The json for a recipe in the API."""
id: str
title: str
recipeIngredientGroups: list[ItemJSON]
class RecipeDetailsAdditionalInformationJSON(TypedDict):
"""The json for a recipe details additional information in the API."""
content: str
class RecipeDetailsCategoryJSON(TypedDict):
"""The json for a recipe details category in the API."""
id: str
title: str
subtitle: str
class RecipeDetailsCollectionCountJSON(TypedDict):
"""The json for a recipe details collection count in the API."""
value: int
class RecipeDetailsCollectionJSON(TypedDict):
"""The json for a recipe details collection in the API."""
id: str
title: str
recipesCount: RecipeDetailsCollectionCountJSON
class RecipeDetailsIngredientGroupJSON(TypedDict):
"""The json for a recipe details ingredient group in the API."""
recipeIngredients: list[IngredientJSON]
class RecipeDetailsStepJSON(TypedDict):
"""The json for a recipe step in the API."""
formattedText: str
title: str
class RecipeDetailsStepGroupJSON(TypedDict):
"""The json for a recipe step group in the API."""
title: str
recipeSteps: list[RecipeDetailsStepJSON]
class RecipeDetailsUtensilsJSON(TypedDict):
"""The json for a recipe utensils in the API."""
utensilNotation: str
class RecipeDetailsServingSizeJSON(TypedDict):
"""The json for a recipe serving size in the API."""
quantity: QuantityJSON
unitNotation: str
class RecipeDetailsTimeJSON(TypedDict):
"""The json for a recipe time in the API."""
quantity: QuantityJSON
type: str
comment: str
class RecipeDetailsJSON(TypedDict):
"""The json for a recipe details in the API."""
id: str
title: str
difficulty: str
additionalInformation: list[RecipeDetailsAdditionalInformationJSON]
categories: list[RecipeDetailsCategoryJSON]
inCollections: list[RecipeDetailsCollectionJSON]
recipeIngredientGroups: list[RecipeDetailsIngredientGroupJSON]
recipeStepGroups: list[RecipeDetailsStepGroupJSON]
recipeUtensils: list[RecipeDetailsUtensilsJSON]
servingSize: RecipeDetailsServingSizeJSON
times: list[RecipeDetailsTimeJSON]
class CustomRecipeYieldJSON(TypedDict):
"""The json for a custom recipe yield in the API."""
value: int
unitText: str
class CustomRecipeContentJSON(TypedDict):
"""The json for a custom recipe content in the API."""
name: str
totalTime: str
prepTime: str
tool: list[str]
recipeYield: CustomRecipeYieldJSON
recipeIngredient: list[str]
recipeInstructions: list[str]
class CustomRecipeJSON(TypedDict):
"""The json for a custom recipe in the API."""
recipeId: str
title: str
recipeContent: CustomRecipeContentJSON
class ChapterRecipeJSON(TypedDict):
"""The json for a chapter recipe in the API."""
id: str
title: str
type: Literal["VORWERK"] | Literal["CUSTOM"]
totalTime: int
class ChapterJSON(TypedDict):
"""The json for a chapter in the API."""
title: str
recipes: list[ChapterRecipeJSON]
class CustomCollectionJSON(TypedDict):
"""The json for a custom collection in the API."""
id: str
title: str
chapters: list[ChapterJSON]
listType: Literal["CUSTOMLIST"]
author: str
class ManagedCollectionJSON(TypedDict):
"""The json for a managed collection in the API."""
id: str
title: str
description: str
chapters: list[ChapterJSON]
listType: Literal["MANAGEDLIST"]
author: Literal["Vorwerk"]
class CalenderDayRecipeJSON(TypedDict):
"""The json for a calender day recipe in the API."""
id: str
title: str
totalTime: int
class CalendarDayJSON(TypedDict):
"""The json for a calendar day in the API."""
id: str
title: str
dayKey: str
recipes: list[CalenderDayRecipeJSON]
customerRecipes: list[CalenderDayRecipeJSON]
__all__ = ["QuantityJSON"]
|