from enum import Enum
from pydantic import BaseModel
from typing import List


class Message(BaseModel):
    role: str
    content: str


class ChatRequest(BaseModel):
    model: str
    messages: List[Message]


class ModelType(str, Enum):
    text = "text"  # 文字对话
    image = "image"  # 文生图
    audio = "audio"  # 语音模型
    reasoning = "reasoning"  # 深度思考模型


class ModelInfo(BaseModel):
    model_id: str
    model_name: str
    model_type: ModelType


class VendorModelList(BaseModel):
    vendor: str
    models: List[ModelInfo]


class VendorModelResponse(BaseModel):
    data: List[VendorModelList]


# Speaker相关模型
class Speaker(BaseModel):
    speaker_id: str
    speaker_name: str
    language: str
    platforms: List[str]


class CategorySpeakers(BaseModel):
    category: str
    speakers: List[Speaker]


class SpeakerResponse(BaseModel):
    data: List[CategorySpeakers]
