from pydantic import BaseModel, Field class TextItem(BaseModel): type: str text: str href: str | None = None collapsed: bool | None = None language: str | None = None class TextEntity(BaseModel): type: str text: str href: str | None = None collapsed: bool | None = None language: str | None = None class Message(BaseModel): id: int type: str date: str date_unixtime: str from_: str = Field(..., alias="from") from_id: str file: str | None = None file_name: str | None = None file_size: int | None = None thumbnail: str | None = None thumbnail_file_size: int | None = None media_type: str | None = None sticker_emoji: str | None = None mime_type: str | None = None width: int | None = None height: int | None = None text: str | list[str | TextItem] text_entities: list[TextEntity] duration_seconds: int | None = None edited: str | None = None edited_unixtime: str | None = None photo: str | None = None photo_file_size: int | None = None forwarded_from: str | None = None class Model(BaseModel): name: str type: str id: int messages: list[Message]