# -*- coding: utf-8 -*- """本体类型模型 本模块定义本体类型的数据模型。 Classes: OntologyClass: 本体类型表模型 """ import datetime import uuid from sqlalchemy import Column, String, DateTime, Text, ForeignKey, Boolean, UniqueConstraint from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import relationship from app.db import Base class OntologyClass(Base): """本体类型表 - 用于存储某个场景提取出来的本体类型信息""" __tablename__ = "ontology_class" __table_args__ = ( UniqueConstraint('scene_id', 'class_name', name='uq_scene_class_name'), ) # 主键 class_id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4, index=True, comment="类型ID") # 类型信息 class_name = Column(String(200), nullable=False, comment="类型名称") class_description = Column(Text, nullable=True, comment="类型描述") # 系统默认标识 is_system_default = Column(Boolean, default=False, nullable=False, comment="是否为系统默认类型") # 外键:关联到本体场景 scene_id = Column(UUID(as_uuid=True), ForeignKey("ontology_scene.scene_id", ondelete="CASCADE"), nullable=False, index=True, comment="所属场景ID") # 时间戳 created_at = Column(DateTime, default=datetime.datetime.now, nullable=False, comment="创建时间") updated_at = Column(DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, nullable=False, comment="更新时间") # 关系:类型属于某个场景 scene = relationship("OntologyScene", back_populates="classes") def __repr__(self): return f""