feat: Recipe Finder (aka Cocktail Builder) (#4542)

This commit is contained in:
Michael Genson
2024-12-03 07:27:41 -06:00
committed by GitHub
parent d26e29d1c5
commit 4e0cf985bc
28 changed files with 1959 additions and 151 deletions

View File

@@ -75,6 +75,7 @@ from .recipe_scraper import ScrapeRecipe, ScrapeRecipeBase, ScrapeRecipeData, Sc
from .recipe_settings import RecipeSettings
from .recipe_share_token import RecipeShareToken, RecipeShareTokenCreate, RecipeShareTokenSave, RecipeShareTokenSummary
from .recipe_step import IngredientReferences, RecipeStep
from .recipe_suggestion import RecipeSuggestionQuery, RecipeSuggestionResponse, RecipeSuggestionResponseItem
from .recipe_timeline_events import (
RecipeTimelineEventCreate,
RecipeTimelineEventIn,
@@ -109,6 +110,9 @@ __all__ = [
"RecipeTimelineEventUpdate",
"TimelineEventImage",
"TimelineEventType",
"RecipeSuggestionQuery",
"RecipeSuggestionResponse",
"RecipeSuggestionResponseItem",
"Nutrition",
"RecipeShareToken",
"RecipeShareTokenCreate",

View File

@@ -0,0 +1,24 @@
from mealie.schema._mealie.mealie_model import MealieModel
from mealie.schema.recipe.recipe import RecipeSummary, RecipeTool
from mealie.schema.recipe.recipe_ingredient import IngredientFood
from mealie.schema.response.pagination import RequestQuery
class RecipeSuggestionQuery(RequestQuery):
limit: int = 10
max_missing_foods: int = 5
max_missing_tools: int = 5
include_foods_on_hand: bool = True
include_tools_on_hand: bool = True
class RecipeSuggestionResponseItem(MealieModel):
recipe: RecipeSummary
missing_foods: list[IngredientFood]
missing_tools: list[RecipeTool]
class RecipeSuggestionResponse(MealieModel):
items: list[RecipeSuggestionResponseItem]

View File

@@ -1,5 +1,12 @@
# This file is auto-generated by gen_schema_exports.py
from .pagination import OrderByNullPosition, OrderDirection, PaginationBase, PaginationQuery, RecipeSearchQuery
from .pagination import (
OrderByNullPosition,
OrderDirection,
PaginationBase,
PaginationQuery,
RecipeSearchQuery,
RequestQuery,
)
from .query_filter import (
LogicalOperator,
QueryFilterBuilder,
@@ -27,6 +34,7 @@ __all__ = [
"PaginationBase",
"PaginationQuery",
"RecipeSearchQuery",
"RequestQuery",
"SearchFilter",
"ErrorResponse",
"FileTokenResponse",

View File

@@ -31,9 +31,7 @@ class RecipeSearchQuery(MealieModel):
_search_seed: str | None = None
class PaginationQuery(MealieModel):
page: int = 1
per_page: int = 50
class RequestQuery(MealieModel):
order_by: str | None = None
order_by_null_position: OrderByNullPosition | None = None
order_direction: OrderDirection = OrderDirection.desc
@@ -47,6 +45,11 @@ class PaginationQuery(MealieModel):
return pagination_seed
class PaginationQuery(RequestQuery):
page: int = 1
per_page: int = 50
class PaginationBase(BaseModel, Generic[DataT]):
page: int = 1
per_page: int = 10