"""Base interface for delivery providers.""" from abc import ABC, abstractmethod from app.schemas.request import DeliveryRequest from app.schemas.response import DeliveryPrice class DeliveryProvider(ABC): name: str @abstractmethod async def get_prices(self, request: DeliveryRequest) -> list[DeliveryPrice]: """Fetch provider tariffs for a delivery request.""" raise NotImplementedError class ProviderRequestError(RuntimeError): """Raised when a provider rejects input request data."""