from pydantic import BaseModel
from typing import List, Dict, Optional


class LoginRequest(BaseModel):
    account: str
    password: str


class RegisterRequest(BaseModel):
    account: str
    password: str


class ChatQaRequest(BaseModel):
    chat_id: str = None
    question: str


class ChatDetailRequest(BaseModel):
    chat_id: str


class ChatDeleteRequest(BaseModel):
    chat_id: str


class ChatReQA(BaseModel):
    chat_id: str
    query: str


class PhoneLoginRequest(BaseModel):
    phone: str


class ChatRequest(BaseModel):
    sessionID: str = ""
    question: str


class ReGenerateRequest(BaseModel):
    sessionID: str
    question: str


class GeoAgentRateRequest(BaseModel):
    query: str
    history: Optional[List[Dict]] = None