"""项目域模型""" from .base import Base from .types import JSONB from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy import BigInteger, VARCHAR, Text, Boolean, Integer from typing import Optional class ProjectDomain(Base): __tablename__ = "project_domains" id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) name: Mapped[str] = mapped_column(VARCHAR(100), nullable=False) slug: Mapped[str] = mapped_column(VARCHAR(50), nullable=False) description: Mapped[Optional[str]] = mapped_column(Text, nullable=True) config: Mapped[Optional[object]] = mapped_column(JSONB, nullable=True) is_active: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True) is_default: Mapped[bool] = mapped_column(Boolean, nullable=False, default=False) signal_count: Mapped[int] = mapped_column(Integer, nullable=False, default=0) context_node_count: Mapped[int] = mapped_column(Integer, nullable=False, default=0) experiment_count: Mapped[int] = mapped_column(Integer, nullable=False, default=0) owner_id: Mapped[Optional[str]] = mapped_column(VARCHAR(100), nullable=True)