Files
g2s-aggregator/app/adapters/delivery_providers/base.py
T
Раис Юсупалиев 163f379a65 020 update city code resolving
2026-03-21 11:55:09 +03:00

23 lines
562 B
Python

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