role_model.py 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. from datetime import datetime
  2. from typing import Optional
  3. from sqlalchemy import Column, Integer, String, DateTime, Boolean, Text
  4. from sqlalchemy.orm import relationship
  5. from .base_model import BaseModel, CreateModel, UpdateModel, DeleteModel
  6. class RoleModel(BaseModel, CreateModel, UpdateModel, DeleteModel):
  7. """
  8. 角色模型
  9. 对应数据库表: sys_roles
  10. """
  11. __tablename__ = 'sys_roles'
  12. name = Column(String(50), unique=True, nullable=False, comment='角色名称')
  13. code = Column(String(50), unique=True, nullable=False, comment='角色代码')
  14. description = Column(Text, comment='角色描述')
  15. status = Column(Boolean, default=True, comment='状态')
  16. # 与用户的多对多关系
  17. users = relationship('UserModel',
  18. secondary='sys_user_roles',
  19. back_populates='roles')
  20. # 与权限的多对多关系
  21. permissions = relationship('PermissionModel',
  22. secondary='sys_role_permissions',
  23. back_populates='roles')
  24. def __repr__(self):
  25. return f"<Role(id={self.id}, name={self.name})>"