from pydantic import BaseModel, Field class ChatLead(BaseModel): name: str = "" email: str = "" company: str = "" class ChatRequest(BaseModel): session_id: str = Field(..., min_length=1, max_length=64) message: str = Field(..., min_length=1, max_length=500) page_context: str = Field(default="/", max_length=200) language: str = Field(default="en", max_length=5) lead: ChatLead | None = None class ChatResponse(BaseModel): reply: str sender: str = "bot" # "bot" | "human" session_id: str message_count: int rate_limited: bool = False class LeadData(BaseModel): name: str = "" email: str = "" company: str = "" need: str = "" class RocketChatWebhook(BaseModel): token: str = "" channel_id: str = "" user_name: str = "" text: str = ""