2024-12-04 22:31:26 -06:00
|
|
|
from datetime import UTC, datetime
|
2021-09-12 11:05:09 -08:00
|
|
|
|
2023-02-06 18:43:12 -09:00
|
|
|
from sqlalchemy import select
|
|
|
|
|
|
2024-08-22 10:14:32 -05:00
|
|
|
from mealie.db.models.household import GroupMealPlan
|
2022-07-26 20:43:25 -05:00
|
|
|
from mealie.schema.meal_plan.new_meal import ReadPlanEntry
|
2021-09-12 11:05:09 -08:00
|
|
|
|
2024-08-22 10:14:32 -05:00
|
|
|
from .repository_generic import HouseholdRepositoryGeneric
|
2021-09-12 11:05:09 -08:00
|
|
|
|
|
|
|
|
|
2024-08-22 10:14:32 -05:00
|
|
|
class RepositoryMeals(HouseholdRepositoryGeneric[ReadPlanEntry, GroupMealPlan]):
|
2024-12-17 14:33:35 -06:00
|
|
|
def get_today(self, tz=UTC) -> list[ReadPlanEntry]:
|
2024-08-22 10:14:32 -05:00
|
|
|
if not self.household_id:
|
|
|
|
|
raise Exception("household_id not set")
|
2022-06-17 13:25:47 -08:00
|
|
|
|
2024-12-17 14:33:35 -06:00
|
|
|
today = datetime.now(tz=tz).date()
|
2024-08-22 10:14:32 -05:00
|
|
|
stmt = select(GroupMealPlan).filter(
|
|
|
|
|
GroupMealPlan.date == today, GroupMealPlan.household_id == self.household_id
|
|
|
|
|
)
|
2023-02-06 18:43:12 -09:00
|
|
|
plans = self.session.execute(stmt).scalars().all()
|
2024-02-11 10:47:37 -06:00
|
|
|
return [self.schema.model_validate(x) for x in plans]
|
2024-09-07 05:37:42 +03:00
|
|
|
|
|
|
|
|
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]
|