Files
F-r-ldraledigplannerare/backend/app/repositories/planned_leave_repository.py
T
2026-06-01 16:48:21 +02:00

36 lines
1.1 KiB
Python

"""Abstract repository for PlannedLeaveDay calendar events."""
from abc import abstractmethod
from datetime import date
from uuid import UUID
from app.entities.planned_leave import PlannedLeaveDay
from app.repositories.base import Repository
class PlannedLeaveRepository(Repository[PlannedLeaveDay]):
@abstractmethod
async def list_by_workspace_child(
self,
workspace_id: UUID,
child_id: UUID,
from_date: date | None = None,
to_date: date | None = None,
) -> list[PlannedLeaveDay]:
"""Return planned days for a workspace+child, optionally within a date range."""
@abstractmethod
async def count_by_parent_type(
self,
personal_data_uuid: UUID,
child_id: UUID,
day_type: str,
from_date: date | None = None,
to_date: date | None = None,
) -> int:
"""Count planned days of a given type for a parent+child pair."""
@abstractmethod
async def count_dubbeldagar(self, child_id: UUID, from_date: date | None = None) -> int:
"""Count dubbeldagar already planned for a child (after from_date)."""