"""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)