Files
Раис Юсупалиев 6a2bf05ba5
Deploy / deploy (push) Successful in 59s
Перевел /suggest-address на id города и убрал country_code
2026-05-29 04:01:09 +03:00

48 lines
1.2 KiB
Python

"""Input schemas for delivery-related API requests."""
from enum import StrEnum
from pydantic import BaseModel, Field, StrictInt
class DeliveryEntity(StrEnum):
INDIVIDUAL = "individual"
LEGAL = "legal"
class ParcelType(StrEnum):
DOC = "doc"
PARCEL = "parcel"
class DeliveryCalculationRequest(BaseModel):
entity: DeliveryEntity
from_city: StrictInt
to_city: StrictInt
weight_kg: float = Field(gt=0)
length_cm: float = Field(gt=0)
width_cm: float = Field(gt=0)
height_cm: float = Field(gt=0)
parcel_type: ParcelType | None = None
class SuggestAddressRequest(BaseModel):
"""API request for the /suggest-address endpoint.
``city`` is a city identifier (key in ``cities_map``); the city name and
country code are resolved from it by the service layer.
"""
city: str = Field(min_length=1)
query: str = Field(min_length=1)
limit: int | None = Field(default=None, gt=0)
class AddressSuggestRequest(BaseModel):
"""Provider-facing address suggestion request."""
country_code: str = Field(min_length=2, max_length=2)
city: str = Field(min_length=1)
query: str = Field(min_length=1)
limit: int | None = Field(default=None, gt=0)