from pydantic import BaseModel from typing import Optional, List from datetime import datetime class PhoneAuthRequest(BaseModel): phone: str class CodeAuthRequest(BaseModel): phone: str code: str phone_code_hash: str class PasswordAuthRequest(BaseModel): phone: str password: str class SendMessageRequest(BaseModel): text: str class MessageResponse(BaseModel): id: int text: Optional[str] date: datetime is_outgoing: bool sender_name: Optional[str] = None class AuthStatus(BaseModel): authenticated: bool phone: Optional[str] = None user_id: Optional[int] = None username: Optional[str] = None class WebSocketMessage(BaseModel): type: str # "auth_phone", "auth_code", "auth_password", "send_message", "get_history" data: dict