55from typing import TYPE_CHECKING
66
77from sqlalchemy import ForeignKey , String
8- from sqlalchemy .dialects .mysql import LONGTEXT
9- from sqlalchemy .dialects .postgresql import TEXT
108from sqlalchemy .orm import Mapped , mapped_column , relationship
119
1210from backend .common .model import Base , id_key
@@ -21,17 +19,17 @@ class DataRule(Base):
2119 __tablename__ = 'sys_data_rule'
2220
2321 id : Mapped [id_key ] = mapped_column (init = False )
24- model : Mapped [str ] = mapped_column (String (50 ), comment = 'SQLA 模型类名' )
22+ name : Mapped [str ] = mapped_column (String (500 ), unique = True , comment = '名称' )
23+ model : Mapped [str ] = mapped_column (String (50 ), comment = 'SQLA 模型名,对应 DATA_PERMISSION_MODELS 键名' )
2524 column : Mapped [str ] = mapped_column (String (20 ), comment = '模型字段名' )
2625 operator : Mapped [int ] = mapped_column (comment = '运算符(0:and、1:or)' )
2726 expression : Mapped [int ] = mapped_column (
2827 comment = '表达式(0:==、1:!=、2:>、3:>=、4:<、5:<=、6:in、7:not_in)'
2928 )
3029 value : Mapped [str ] = mapped_column (String (255 ), comment = '规则值' )
31- remark : Mapped [str ] = mapped_column (LONGTEXT ().with_variant (TEXT , 'postgresql' ), comment = '备注' )
3230
3331 # 数据范围规则一对多
34- rule_id : Mapped [int | None ] = mapped_column (
32+ scope_id : Mapped [int | None ] = mapped_column (
3533 ForeignKey ('sys_data_scope.id' , ondelete = 'SET NULL' ), default = None , comment = '数据范围关联 ID'
3634 )
37- rule : Mapped [DataScope ] = relationship (init = False , back_populates = 'rules' )
35+ scope : Mapped [DataScope ] = relationship (init = False , back_populates = 'rules' )
0 commit comments