feat(meals): suggest complementary sides
CI / backend (pytest + alembic) (push) Has been cancelled
CI / frontend (build) (push) Has been cancelled

This commit is contained in:
2026-06-29 14:59:30 -07:00
parent 18d7300b57
commit 7f5757094e
12 changed files with 294 additions and 9 deletions
+8 -1
View File
@@ -29,6 +29,7 @@ from app.services.planner.filter import filter_recipes
from app.services.planner.score import score_recipes
from app.services.planner.select import select_set
from app.services.planner.types import GenerationResult
from app.services.meal_pairings import components_with_suggested_sides
def _load_match_index(db: Session) -> Dict[UUID, List[dict]]:
@@ -234,9 +235,11 @@ def generate_meal_plan(
db.flush()
_dinner_days = [1, 3, 5] # Mon, Wed, Fri — spread across the week
recipe_by_id = {recipe.id: recipe for recipe in recipes}
for index, scored_recipe in enumerate(chosen):
day = _dinner_days[index] if index < len(_dinner_days) else index + 1
meal_type = MealType.DINNER
recipe = recipe_by_id.get(scored_recipe.recipe_id)
item = MealPlanItem(
meal_plan_id=plan.id,
recipe_id=scored_recipe.recipe_id,
@@ -245,7 +248,11 @@ def generate_meal_plan(
approval_status=MealPlanItemStatus.pending,
estimated_cost=scored_recipe.cost.total_cost,
score=scored_recipe.score,
components=scored_recipe.components,
components=components_with_suggested_sides(
recipe,
meal_type,
scored_recipe.components,
),
)
db.add(item)