from __future__ import annotations from typing import Protocol, runtime_checkable from src.application.abstractions.repositories import IUserRepository, ISessionRepository, ILegalEntityRepository @runtime_checkable class IUnitOfWork(Protocol): async def __aenter__(self) -> "IUnitOfWork": ... async def __aexit__(self, exc_type, exc_val, exc_tb) -> None: ... async def commit(self) -> None: ... async def rollback(self) -> None: ... @property def user_repository(self) -> IUserRepository: ... @property def session_repository(self) -> ISessionRepository: ... @property def legal_entity_repository(self) -> ILegalEntityRepository: ...