From 97626ec2c4b16eb87b595b847a019a928d89cf2f Mon Sep 17 00:00:00 2001 From: qzl Date: Mon, 2 Mar 2026 15:31:20 +0800 Subject: [PATCH] feat(models): add UserAgentCatalog model --- backend/src/models/__init__.py | 2 ++ backend/src/models/user_agent_catalog.py | 30 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 backend/src/models/user_agent_catalog.py diff --git a/backend/src/models/__init__.py b/backend/src/models/__init__.py index e6f6bbc..ef32387 100644 --- a/backend/src/models/__init__.py +++ b/backend/src/models/__init__.py @@ -16,6 +16,7 @@ from models.schedule_subscriptions import ScheduleSubscription from models.todos import Todo from models.todo_sources import TodoSource from models.user_agents import UserAgent +from models.user_agent_catalog import UserAgentCatalog __all__ = [ "AgentChatMessage", @@ -35,4 +36,5 @@ __all__ = [ "Todo", "TodoSource", "UserAgent", + "UserAgentCatalog", ] diff --git a/backend/src/models/user_agent_catalog.py b/backend/src/models/user_agent_catalog.py new file mode 100644 index 0000000..0791e87 --- /dev/null +++ b/backend/src/models/user_agent_catalog.py @@ -0,0 +1,30 @@ +from __future__ import annotations + +from sqlalchemy import ForeignKey, String +from sqlalchemy.dialects.postgresql import JSONB, UUID +from sqlalchemy.orm import Mapped, mapped_column + +from core.db.base import Base, TimestampMixin + + +class UserAgentCatalog(TimestampMixin, Base): + __tablename__: str = "user_agent_catalog" + + agent_type: Mapped[str] = mapped_column( + String(20), + primary_key=True, + ) + llm_id: Mapped[str] = mapped_column( + UUID(as_uuid=True), + ForeignKey("llms.id", ondelete="RESTRICT"), + nullable=False, + ) + status: Mapped[str] = mapped_column( + String(20), + nullable=False, + ) + config: Mapped[dict] = mapped_column( + JSONB, + nullable=False, + server_default="{}", + )