from sqlalchemy import String, Integer, SmallInteger, 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) display_name: Mapped[str | None] = mapped_column(String(100)) 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) # Changed Boolean to SmallInteger is_default: Mapped[int] = mapped_column(SmallInteger, default=0) status: Mapped[int] = mapped_column(Integer, default=1)