Исходный код tbank.mails.models
from __future__ import annotations
from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel, ConfigDict, Field
from pydantic.alias_generators import to_camel
[документация]
class MailModel(BaseModel):
"""Базовая модель домена: snake_case в Python, camelCase на проводе."""
model_config = ConfigDict(
alias_generator=to_camel,
populate_by_name=True,
extra="ignore",
)
[документация]
class IncomingMailRequest(MailModel):
"""Входящее письмо (H2H). Требуется `text` либо `files`."""
external_id: str
theme_code: str
theme: str
created_at: datetime
text: Optional[str] = None
files: Optional[List[str]] = None
[документация]
class MarkReadRequest(MailModel):
messages_ids: List[str]
[документация]
class MailMessage(MailModel):
id: str
mail_id: str
is_from_bank: bool
is_unread: bool
created_at: datetime
text: Optional[str] = None
files: Optional[List[str]] = None
[документация]
class Mail(MailModel):
"""Письмо со списком сообщений."""
id: str
number: int
company_id: str
is_from_bank: bool
theme: str
theme_code: str
status: str
updated_at: datetime
messages: List[MailMessage] = Field(default_factory=list)
external_id: Optional[str] = None