mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-11-01 02:33:22 -04:00
34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
from datetime import UTC, datetime
|
|
|
|
from sqlalchemy import select
|
|
|
|
from mealie.db.models.household import GroupMealPlan
|
|
from mealie.schema.meal_plan.new_meal import ReadPlanEntry
|
|
|
|
from .repository_generic import HouseholdRepositoryGeneric
|
|
|
|
|
|
class RepositoryMeals(HouseholdRepositoryGeneric[ReadPlanEntry, GroupMealPlan]):
|
|
def get_today(self, tz=UTC) -> list[ReadPlanEntry]:
|
|
if not self.household_id:
|
|
raise Exception("household_id not set")
|
|
|
|
today = datetime.now(tz=tz).date()
|
|
stmt = select(GroupMealPlan).filter(
|
|
GroupMealPlan.date == today, GroupMealPlan.household_id == self.household_id
|
|
)
|
|
plans = self.session.execute(stmt).scalars().all()
|
|
return [self.schema.model_validate(x) for x in plans]
|
|
|
|
def get_meals_by_date_range(self, start_date: datetime, end_date: datetime) -> list[ReadPlanEntry]:
|
|
if not self.household_id:
|
|
raise Exception("household_id not set")
|
|
|
|
stmt = select(GroupMealPlan).filter(
|
|
GroupMealPlan.date >= start_date.date(),
|
|
GroupMealPlan.date <= end_date.date(),
|
|
GroupMealPlan.household_id == self.household_id,
|
|
)
|
|
plans = self.session.execute(stmt).scalars().all()
|
|
return [self.schema.model_validate(x) for x in plans]
|