from typing import Optional, Any, Dict,Literal
from pydantic import BaseModel, Field


class ChatRequest(BaseModel):
    text: str
    chat_id: Optional[str] = None
    user_name: Optional[str] = None
    user_email: Optional[str] = None
    type: Literal["AIAgent", "HumanAgent"] = "AIAgent"

class ChatResponse(BaseModel):
    data: Any

class FAQIndexRequest(BaseModel):
    agent_id: str

class PersistAI(BaseModel):
    query: Dict = Field(default_factory=lambda: {"text": "data"})
    response: Dict = Field(default_factory=lambda: {"data": "response"})
    chat_id: str