diff --git a/src/repository/users.py b/src/repository/users.py index 0e0cdc4..fbcca27 100644 --- a/src/repository/users.py +++ b/src/repository/users.py @@ -1,7 +1,7 @@ from datetime import date from typing import Optional -from sqlalchemy import select, update +from sqlalchemy import func, select, update from sqlalchemy.orm import selectinload from src.models import UsersORM @@ -59,6 +59,12 @@ class UsersRepo(BaseRepo): ) return obj + async def get_tasks_count(self, date_from: date | None, date_to: date | None, **filter_by) -> int: + subq = self._tasks_subquary(date_from, date_to, **filter_by).subquery() + stmt = select(func.count()).select_from(subq) + result = await self.session.execute(stmt) + return result.scalar_one() + def _priority(self, priority: str): priority_map = {"low": 1, "medium": 2, "high": 3, "critical": 4} return priority_map.get(priority, 0)