PMFlow/backend/app/models/project_domain.py

23 lines
1.1 KiB
Python

"""项目域模型"""
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)