from typing import List, Optional, TypedDict from models.member import ChatMember from models.message import Message class Chat(TypedDict): id: str members: List[int] admins: List[int] title: str updated_at: Optional[int] created_at: int created_by: int description: Optional[str] class ChatPayload(TypedDict): id: str members: List[int | ChatMember] admins: List[int] title: str updated_at: Optional[int] created_at: int created_by: int description: Optional[str] messages: Optional[List[Message]] unread: Optional[int] # counter class ChatUpdate(TypedDict): id: str members: List[int] admins: List[int] title: str description: Optional[str]