Исходный код cdek.apps.office.responses

from __future__ import annotations

from pydantic import BaseModel, Field

from ..models import (
    Dimensions,
    Error,
    FullLocation,
    Image,
    Phone,
    WarningModel,
    WorkTime,
    WorkTimeException,
)


[документация] class OfficeLocation(FullLocation): """Модель ответа локации офиса""" code: int = Field(alias="city_code") region: str | None = Field(default=None) # type: ignore city: str | None = Field(default=None) # type: ignore
[документация] class OfficeResponse(BaseModel): """Модель ответа офиса""" code: str = Field(..., description="Код ПВЗ") uuid: str = Field(..., description="Идентификатор офиса в ИС СДЭК") address_comment: str | None = Field(None, description="Описание местоположения") nearest_station: str | None = Field( None, description="Ближайшая станция/остановка транспорта" ) nearest_metro_station: str | None = Field( None, description="Ближайшая станция метро" ) work_time: str = Field( ..., description="Режим работы, строка вида «пн-пт 9-18, сб 9-16»" ) phones: list[Phone] | None = Field(default=None, description="Телефоны офиса") email: str | None = Field(None, description="Адрес электронной почты") note: str | None = Field(None, description="Примечание по ПВЗ") type: str | None = Field( None, description="Тип ПВЗ. PVZ — склад СДЭК, POSTAMAT — постамат СДЭК" ) owner_code: str = Field(..., description="Принадлежность офиса компании") take_only: bool = Field( ..., description="Является ли офис пунктом выдачи или осуществляет приём грузов" ) is_handout: bool = Field(..., description="Является пунктом выдачи") is_reception: bool = Field(..., description="Является пунктом приёма") is_dressing_room: bool = Field(..., description="Есть ли примерочная") is_marketplace: bool | None = Field( None, description='Офис для доставки заказов "До маркетплейса"' ) is_ltl: bool | None = Field( None, description="Работает ли офис с LTL (сборный груз)" ) have_cashless: bool = Field(..., description="Есть безналичный расчет") have_cash: bool = Field(..., description="Есть приём наличных") have_fast_payment_system: bool = Field( ..., description="Есть безналичный расчёт по СБП" ) allowed_cod: bool = Field(..., description="Разрешен наложенный платеж в ПВЗ") site: str | None = Field(None, description="Ссылка на данный офис на сайте СДЭК") office_image_list: list[Image] | None = Field( None, description="Все фото офиса (кроме фото как доехать)" ) work_time_list: list[WorkTime] = Field(..., description="График работы на неделю") work_time_exception_list: list[WorkTimeException] = Field( ..., description="Исключения из графика работы" ) weight_min: float | None = Field( None, description="Минимальный вес (в кг.), принимаемый в ПВЗ (> WeightMin)" ) weight_max: float | None = Field( None, description="Максимальный вес (в кг.), принимаемый в ПВЗ (<= WeightMax)" ) dimensions: list[Dimensions] | None = Field(None, description="Размеры ПВЗ") errors: list[Error] | None = Field(None, description="Список ошибок") warnings: list[WarningModel] | None = Field( None, description="Список предупреждений" ) location: OfficeLocation = Field(..., description="Информация об офисе") distance: int | None = Field( None, description="Расстояние до точки, поиск ближайшего ПВЗ" ) fulfillment: bool | None = Field( None, description='Работает ли офис с "Фулфилмент. Приход"' )