17 lines
410 B
Python
17 lines
410 B
Python
"""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_price(self, request: DeliveryRequest) -> DeliveryPrice:
|
|
"""Fetch one quote from an external provider."""
|
|
|
|
raise NotImplementedError
|