45 lines
1.1 KiB
Python

from typing import Any
from typing import List
from typing import Optional
from typing import Union
from pydantic import BaseModel
from pydantic import Field
class Message(BaseModel):
id: int
sender_id: int
content: str
recipient_id: int
timestamp: int
client: str
is_me_message: bool
sender_full_name: str
sender_email: str
sender_realm_str: str
subject: str
topic_links: Optional[List[Any]] = None
last_edit_timestamp: Optional[int] = None
edit_history: Any = None
reactions: List[Any]
submessages: List[Any]
flags: List[str] = Field(default_factory=list)
display_recipient: Optional[str] = None
type: Optional[str] = None
stream_id: int
avatar_url: Optional[str]
content_type: Optional[str]
rendered_content: Optional[str] = None
class GetMessagesResponse(BaseModel):
result: str
msg: str
found_anchor: Optional[bool] = None
found_oldest: Optional[bool] = None
found_newest: Optional[bool] = None
history_limited: Optional[bool] = None
anchor: Optional[Union[str, int]] = None
messages: List[Message] = Field(default_factory=list)