from __future__ import annotations from typing import Protocol, runtime_checkable from src.application.abstractions.repositories import IOrderRepository,IPaymentRepository @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 order_repository(self) -> IOrderRepository: ... @property def payment_repository(self) -> IPaymentRepository: ...