Coverage for opt/mealie/lib/python3.12/site-packages/mealie/repos/repository_meals.py: 61%

19 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-11-25 15:32 +0000

1from datetime import UTC, datetime 1a

2 

3from sqlalchemy import select 1a

4 

5from mealie.db.models.household import GroupMealPlan 1a

6from mealie.schema.meal_plan.new_meal import ReadPlanEntry 1a

7 

8from .repository_generic import HouseholdRepositoryGeneric 1a

9 

10 

11class RepositoryMeals(HouseholdRepositoryGeneric[ReadPlanEntry, GroupMealPlan]): 1a

12 def get_today(self, tz=UTC) -> list[ReadPlanEntry]: 1a

13 if not self.household_id: 13 ↛ 14line 13 didn't jump to line 14 because the condition on line 13 was never true1b

14 raise Exception("household_id not set") 

15 

16 today = datetime.now(tz=tz).date() 1b

17 stmt = select(GroupMealPlan).filter( 1b

18 GroupMealPlan.date == today, GroupMealPlan.household_id == self.household_id 

19 ) 

20 plans = self.session.execute(stmt).scalars().all() 1b

21 return [self.schema.model_validate(x) for x in plans] 1b

22 

23 def get_meals_by_date_range(self, start_date: datetime, end_date: datetime) -> list[ReadPlanEntry]: 1a

24 if not self.household_id: 

25 raise Exception("household_id not set") 

26 

27 stmt = select(GroupMealPlan).filter( 

28 GroupMealPlan.date >= start_date.date(), 

29 GroupMealPlan.date <= end_date.date(), 

30 GroupMealPlan.household_id == self.household_id, 

31 ) 

32 plans = self.session.execute(stmt).scalars().all() 

33 return [self.schema.model_validate(x) for x in plans]