Исходный код cdek.apps.models.location

from __future__ import annotations

from uuid import UUID

from pydantic import BaseModel, Field


[документация] class City(BaseModel): code: int = Field(..., description="Код населенного пункта СДЭК") city_uuid: UUID = Field( ..., description="Идентификатор населенного пункта в ИС СДЭК" ) city: str = Field(..., description="Название населенного пункта") fias_guid: UUID | None = Field( None, description="Уникальный идентификатор ФИАС населенного пункта" )
[документация] class Region(BaseModel): region: str = Field(..., max_length=255, description="Название региона") region_code: int | None = Field(None, description="Код региона СДЭК") kladr_region_code: str | None = Field( None, description="Код КЛАДР региона населенного пункта" ) sub_region: str | None = Field( None, description="Название района региона населенного пункта" )
[документация] class Zip(BaseModel): postal_code: str | None = Field(None, description="Почтовые индексы города")
[документация] class Country(BaseModel): country_code: str | None = Field( None, max_length=2, description="Код страны в формате ISO_3166-1_alpha-2" ) country: str | None = Field( None, max_length=255, description="Название страны региона" )
[документация] class Coordinates(BaseModel): longitude: float | None = Field(None, description="Долгота населенного пункта") latitude: float | None = Field(None, description="Широта населенного пункта")
[документация] class Address(BaseModel): address: str | None = Field(None, description="Адрес населенного пункта") address_full: str | None = Field( None, description="Полный адрес с указанием страны, региона, города, и т.д." )
[документация] class FullLocation(City, Country, Region, Coordinates, Address, Zip): pass
[документация] class BaseOrderLocation(City, Country, Region, Coordinates, Zip): code: int | None = Field(default=None) # type: ignore city_uuid: UUID | None = Field(default=None) # type: ignore region: str | None = Field(default=None) # type: ignore city: str | None = Field(default=None) # type: ignore time_zone: str | None = Field(None, description="Часовой пояс населенного пункта")
[документация] class OrderLocation(BaseOrderLocation): address: str = Field(..., description="Строка адреса")