feat: 初始化仓库
This commit is contained in:
119
models/role.py
Normal file
119
models/role.py
Normal file
@@ -0,0 +1,119 @@
|
||||
# _*_ coding : UTF-8 _*_
|
||||
# @Time : 2025/01/18 23:00
|
||||
# @UpdateTime : 2025/01/18 23:00
|
||||
# @Author : sonder
|
||||
# @File : role.py
|
||||
# @Software : PyCharm
|
||||
# @Comment : 本程序
|
||||
from tortoise import fields
|
||||
|
||||
from models.common import BaseModel
|
||||
|
||||
|
||||
class Role(BaseModel):
|
||||
"""
|
||||
角色表模型。
|
||||
"""
|
||||
|
||||
name = fields.CharField(
|
||||
max_length=255,
|
||||
description="角色名称",
|
||||
source_field="role_name" # 映射到数据库字段 role_name
|
||||
)
|
||||
"""
|
||||
角色名称。
|
||||
- 允许重复,因为不同部门可能有相同的角色名称。
|
||||
- 最大长度为 255 个字符。
|
||||
- 映射到数据库字段 role_name。
|
||||
"""
|
||||
|
||||
code = fields.CharField(
|
||||
max_length=255,
|
||||
unique=True,
|
||||
description="角色编码",
|
||||
source_field="role_code" # 映射到数据库字段 role_code
|
||||
)
|
||||
"""
|
||||
角色编码。
|
||||
- 用于系统内部识别角色。
|
||||
- 必须唯一。
|
||||
- 最大长度为 255 个字符。
|
||||
- 映射到数据库字段 role_code。
|
||||
"""
|
||||
|
||||
description = fields.CharField(
|
||||
max_length=255,
|
||||
null=True,
|
||||
description="角色描述",
|
||||
source_field="role_description" # 映射到数据库字段 role_description
|
||||
)
|
||||
"""
|
||||
角色描述。
|
||||
- 最大长度为 255 个字符。
|
||||
- 允许为空。
|
||||
- 映射到数据库字段 role_description。
|
||||
"""
|
||||
|
||||
status=fields.SmallIntField(
|
||||
default=1,
|
||||
description="角色状态",
|
||||
source_field="status"
|
||||
)
|
||||
"""
|
||||
角色状态。
|
||||
- 1: 正常
|
||||
- 0: 禁用
|
||||
- 映射到数据库字段 status。
|
||||
"""
|
||||
|
||||
permissions = fields.ManyToManyField(
|
||||
"models.Permission",
|
||||
related_name="roles",
|
||||
through="role_permission",
|
||||
description="角色权限"
|
||||
)
|
||||
"""
|
||||
角色权限。
|
||||
- 多对多关系,表示角色拥有的权限。
|
||||
- 通过中间表 `role_permission` 关联权限表。
|
||||
"""
|
||||
|
||||
department = fields.ForeignKeyField(
|
||||
"models.Department",
|
||||
related_name="roles",
|
||||
null=True,
|
||||
description="所属部门",
|
||||
source_field="department_id" # 映射到数据库字段 department_id
|
||||
)
|
||||
"""
|
||||
所属部门。
|
||||
- 表示角色所属的部门。
|
||||
- 如果为 null,则表示角色是全局角色。
|
||||
- 映射到数据库字段 department_id。
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
table = "role" # 数据库表名
|
||||
table_description = "角色表" # 表描述
|
||||
ordering = ["-create_time"] # 默认按创建时间倒序排序
|
||||
|
||||
|
||||
class RolePermission(BaseModel):
|
||||
"""
|
||||
角色权限中间表。
|
||||
"""
|
||||
|
||||
role = fields.ForeignKeyField(
|
||||
"models.Role",
|
||||
related_name="role_permissions",
|
||||
source_field="role_id" # 映射到数据库字段 role_id
|
||||
)
|
||||
permission = fields.ForeignKeyField(
|
||||
"models.Permission",
|
||||
related_name="role_permissions",
|
||||
source_field="permission_id" # 映射到数据库字段 permission_id
|
||||
)
|
||||
|
||||
class Meta:
|
||||
table = "role_permission" # 数据库表名
|
||||
table_description = "角色权限中间表" # 表描述
|
||||
Reference in New Issue
Block a user