import uuid from sqlalchemy import Boolean, String, Text from sqlalchemy.dialects.postgresql import UUID, JSONB from sqlalchemy.orm import Mapped, mapped_column from app.core.database import Base from app.models.base import TimestampMixin, UUIDMixin class AIModel(Base, UUIDMixin, TimestampMixin): __tablename__ = "models" name: Mapped[str] = mapped_column(String(100), nullable=False) provider: Mapped[str] = mapped_column(String(50), nullable=False) endpoint: Mapped[str] = mapped_column(String(255), nullable=False) api_key: Mapped[str] = mapped_column(Text, nullable=False) extra_params: Mapped[dict] = mapped_column(JSONB, default=dict, nullable=False) is_enabled: Mapped[bool] = mapped_column(Boolean, default=True, nullable=False) remark: Mapped[str | None] = mapped_column(Text, nullable=True)