from sqlalchemy import String, Integer, Boolean, JSON from sqlalchemy.orm import Mapped, mapped_column from .base import Base, TimestampMixin, MYSQL_TABLE_ARGS class AIModel(Base, TimestampMixin): __tablename__ = "biz_ai_model" __table_args__ = MYSQL_TABLE_ARGS model_id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) model_type: Mapped[str] = mapped_column(String(20), nullable=False) # asr / llm provider: Mapped[str] = mapped_column(String(50), nullable=False) model_name: Mapped[str] = mapped_column(String(100), nullable=False) api_key: Mapped[str | None] = mapped_column(String(255)) base_url: Mapped[str | None] = mapped_column(String(255)) api_path: Mapped[str | None] = mapped_column(String(100)) config: Mapped[dict | None] = mapped_column(JSON) is_default: Mapped[bool] = mapped_column(Boolean, default=False) status: Mapped[int] = mapped_column(Integer, default=1)