from sqlalchemy.ext.asyncio import AsyncSession from src.db.models.role import UserRoleEnum from src.db.models.app_user import AppUser from src.db.models.expense_item import ExpenseItem from src.repository.expense_item_repository import ExpenseItemRepository class ExpenseItemService: def __init__(self, db: AsyncSession): self.repo = ExpenseItemRepository(db) async def get( self, item_id: int, user: AppUser | None = None, ) -> ExpenseItem | None: if not user or user.role_id == UserRoleEnum.ADMIN: return await self.repo.get(item_id=item_id) return None async def get_list( self, r_start: bool | None = None, ) -> list[ExpenseItem]: return await self.repo.get_list(r_start=r_start)