25 lines
856 B
Python
25 lines
856 B
Python
"""Output schemas for delivery-related API responses."""
|
|
|
|
from decimal import Decimal
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class DeliveryPrice(BaseModel):
|
|
provider: str = Field(min_length=1)
|
|
service_name: str = Field(min_length=1)
|
|
price: Decimal = Field(gt=0)
|
|
currency: str = Field(min_length=3, max_length=3)
|
|
delivery_days_min: int = Field(ge=0)
|
|
delivery_days_max: int = Field(ge=0)
|
|
tariff_code: int | None = Field(default=None, ge=0)
|
|
bypass_parcel_type_filter: bool = Field(default=False, exclude=True)
|
|
|
|
|
|
class AddressSuggestion(BaseModel):
|
|
address: str = Field(min_length=1)
|
|
street: str | None = Field(default=None, min_length=1)
|
|
house: str | None = Field(default=None, min_length=1)
|
|
flat: str | None = Field(default=None, min_length=1)
|
|
postal_code: str | None = Field(default=None, min_length=1)
|