"""Abstract repository interface for DayOverride. Adds entity-specific queries on top of the generic CRUD contract. Concrete implementations live in app/repositories_impl//. """ from abc import abstractmethod from datetime import date from uuid import UUID from app.entities.day_override import DayOverride from app.repositories.base import Repository class DayOverrideRepository(Repository[DayOverride]): @abstractmethod async def get_by_workspace_date(self, workspace_id: UUID, day: date) -> DayOverride | None: """Return the entry for a given workspace + date (UNIQUE), or None.""" @abstractmethod async def list_by_workspace(self, workspace_id: UUID) -> list[DayOverride]: """Return all overrides for a workspace, ordered by date."""