Исходный код cdek.apps.intake.filters
from __future__ import annotations
from datetime import date as Date
from uuid import UUID
from pydantic import BaseModel, Field, field_serializer
from ..models.location import Coordinates, Region, Zip
[документация]
class IntakeStatus(BaseModel):
code: str = Field(..., description="Код статуса")
add_status: str = Field(..., description="Дополнительный код статуса")
[документация]
class IntakeFilter(BaseModel):
"""Фильтр для заявок на вызов курьера"""
uuid: UUID = Field(..., description="Идентификатор заявки в ИС СДЭК")
status: IntakeStatus = Field(..., description="Статус заявки")
[документация]
class IntakeLocation(Region, Coordinates, Zip):
code: int | None = Field(default=None, description="Код населенного пункта СДЭК")
city: str | None = Field(default=None, description="Название населенного пункта")
fias_guid: UUID | None = Field(
None, description="Уникальный идентификатор ФИАС населенного пункта"
)
address: str | None = Field(default=None, description="Строка адреса")
region: str | None = Field(default=None, description="Название региона") # type: ignore
city_uuid: str | None = Field(
default=None, description="Уникальный идентификатор населенного пункта"
)
[документация]
class IntakeDateFilter(BaseModel):
from_location: IntakeLocation = Field(..., description="Адрес отправления")
date: Date = Field(
..., description="До какого числа включительно получить доступные дни"
)
[документация]
@field_serializer("date")
def serialize_date(self, date: Date) -> str:
"""Представить дату фильтра в формате YYYY-MM-DD"""
return date.strftime("%Y-%m-%d")