Files
server/users/schema.py
T

81 lines
1.3 KiB
Python

# schemas.py
from datetime import datetime
from typing import List, Optional
from ninja import Schema
# ========== 菜单 Schema ==========
class MenuBase(Schema):
name: str
code: str
path: Optional[str] = None
component: Optional[str] = None
icon: Optional[str] = None
parent_id: Optional[int] = None
menu_type: int = 1
order_num: int = 0
permission_code: Optional[str] = None
status: bool = True
class MenuCreate(MenuBase):
pass
class MenuUpdate(MenuBase):
pass
class MenuOut(MenuBase):
id: int
created_at: datetime
# ========== 角色 Schema ==========
class RoleBase(Schema):
name: str
code: str
description: Optional[str] = None
status: bool = True
class RoleCreate(RoleBase):
pass
class RoleUpdate(RoleBase):
pass
class RoleOut(RoleBase):
id: int
created_at: datetime
# ========== 关联 Schema ==========
class RoleMenuAssign(Schema):
menu_ids: List[int]
class UserRoleAssign(Schema):
role_ids: List[int]
class DepartmentBase(Schema):
name: str
parent_id: Optional[int] = None
order: int = 0
class DepartmentCreate(DepartmentBase):
pass
class DepartmentUpdate(DepartmentBase):
pass
class DepartmentOut(DepartmentBase):
id: int