mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-21 04:46:26 +00:00
- 修改alembic配置以使用异步数据库URI和更新Base类引用 - 新增数据库Schema优化脚本,统一字段长度,添加索引,规范外键策略 - 重构API路由管理,按模块类型分组并统一前缀 - 删除示例、监控及系统各子模块的模型定义,减少冗余代码 - 将mcp_server相关代码迁移到module_ai模块下,规范模块目录结构 - 迁移example控制器至module_application.application模块,并重命名相关服务和参数名 - 优化示例控制器中的依赖和响应结构,统一命名规范
56 lines
2.3 KiB
Python
56 lines
2.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from typing import List, Optional
|
|
from pydantic import BaseModel, ConfigDict, Field, model_validator
|
|
|
|
from app.core.base_schema import BaseSchema
|
|
from app.core.validator import role_permission_request_validator
|
|
from app.core.validator import DateTimeStr
|
|
from ..dept.schema import DeptOutSchema
|
|
from ..menu.schema import MenuOutSchema
|
|
|
|
|
|
class RoleCreateSchema(BaseModel):
|
|
"""角色创建模型"""
|
|
name: str = Field(..., max_length=40, description="角色名称")
|
|
order: Optional[int] = Field(default=1, ge=1, description='显示排序')
|
|
data_scope: Optional[int] = Field(default=1, ge=1, le=5, description='数据权限范围')
|
|
status: bool = Field(default=True, description="是否启用")
|
|
description: Optional[str] = Field(None, max_length=255, description="角色描述")
|
|
|
|
|
|
class RolePermissionSettingSchema(BaseModel):
|
|
"""角色权限配置模型"""
|
|
data_scope: int = Field(default=1, ge=1, le=5, description='数据权限范围')
|
|
role_ids: List[int] = Field(default_factory=list, description='角色ID列表')
|
|
menu_ids: List[int] = Field(default_factory=list, description='菜单ID列表')
|
|
dept_ids: List[int] = Field(default_factory=list, description='部门ID列表')
|
|
|
|
@classmethod
|
|
@model_validator(mode='after')
|
|
def validate_fields(cls, data):
|
|
"""验证权限配置字段"""
|
|
return role_permission_request_validator(data)
|
|
|
|
|
|
class RoleUpdateSchema(RoleCreateSchema):
|
|
"""角色更新模型"""
|
|
id: int = Field(..., ge=1, description="角色ID")
|
|
|
|
|
|
class RoleOutSchema(RoleCreateSchema, BaseSchema):
|
|
"""角色信息响应模型"""
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
menus: List[MenuOutSchema] = Field(default_factory=list, description='角色菜单列表')
|
|
depts: List[DeptOutSchema] = Field(default_factory=list, description='角色部门列表')
|
|
|
|
|
|
class RoleOptionsOut(RoleCreateSchema):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
id: int = Field(..., description="主键ID")
|
|
created_at: DateTimeStr = Field(..., description="创建时间")
|
|
updated_at: DateTimeStr = Field(..., description="更新时间")
|
|
menus: List[MenuOutSchema] = Field(default_factory=list, description='角色菜单列表')
|
|
depts: List[DeptOutSchema] = Field(default_factory=list, description='角色部门列表') |