Исходный код cdek.apps.agreement.responses
from __future__ import annotations
from datetime import date as Date
from uuid import UUID
from pydantic import BaseModel, Field, field_serializer
from ..models.status import Status
from .requests import RegisterDeliveryRequest
[документация]
class AvailableDeliveryInterval(BaseModel):
start_time: str = Field(..., description="Время начала интервала доставки")
end_time: str = Field(..., description="Время окончания интервала доставки")
[документация]
class AvailableDeliveryIntervalsInfo(BaseModel):
date: Date = Field(
..., description="Дата доступного интервала для доставки (формат yyyy-MM-dd)"
)
time_intervals: list[AvailableDeliveryInterval] = Field(
..., description="Временные интервалы для доставки"
)
[документация]
@field_serializer("date")
def serialize_date(self, date: Date) -> str:
"""Представить дату интервала доставки в формате YYYY-MM-DD"""
return date.strftime("%Y-%m-%d")
[документация]
class AvailableDeliveryIntervalsResponse(BaseModel):
date_intervals: list[AvailableDeliveryIntervalsInfo] = Field(
..., description="Доступные интервалы доставки"
)
[документация]
class ScheduleInfoEntity(RegisterDeliveryRequest):
uuid: UUID = Field(..., description="Идентификатор договоренности о доставке")
statuses: list[Status] = Field(..., description="Статусы договоренности о доставке")
source: str | None = Field(
None,
description="Источник согласования",
)
[документация]
class AgreementInfoResponse(BaseModel):
entity: ScheduleInfoEntity | None = Field(
default=None, description="Договорённость о доставке"
)