"""Схемы Checkbox API для ЕТТН-чеков (`/api/v1/ettn`). Тело запроса собирается как обычный dict в `app/services/receipts.py` — его снимок сохраняется в `receipts.request_body` без преобразований. Здесь — только разбор ответа (`BaseEttnResponse`). """ from __future__ import annotations from pydantic import BaseModel, ConfigDict, Field class EttnStatus: """Статусы ЕТТН-чека в Checkbox (`OrderStatus`).""" CREATED = "CREATED" CANCELLED = "CANCELLED" RECEIPT_ERROR = "RECEIPT_ERROR" DONE = "DONE" DONE_WITHOUT_SMS = "DONE_WITHOUT_SMS" RETURNED = "RETURNED" class EttnOut(BaseModel): model_config = ConfigDict(populate_by_name=True) id: str status: str ettn_number: str = Field(alias="ettnNumber") total_sum: int | None = Field(default=None, alias="totalSum") receipt_id: str | None = Field(default=None, alias="receiptId") raw_error: str | None = Field(default=None, alias="rawError")