from sqlalchemy import select from fooder.domain import Entry from fooder.domain.diary import Diary from fooder.domain.meal import Meal from fooder.repository.base import RepositoryBase class EntryRepository(RepositoryBase[Entry]): async def get_by_id_and_user(self, entry_id: int, user_id: int) -> Entry: stmt = ( select(Entry) .join(Meal, Entry.meal_id == Meal.id) .join(Diary, Meal.diary_id == Diary.id) .where(Entry.id == entry_id, Diary.user_id == user_id) ) return await self._get(stmt=stmt)