23 lines
1.1 KiB
Python
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)
|