finai/backend/app/schemas/role.py

47 lines
1008 B
Python

from pydantic import BaseModel, Field
class RoleCreate(BaseModel):
code: str = Field(min_length=1, max_length=60)
name: str = Field(min_length=1, max_length=80)
description: str | None = None
permission_codes: list[str] = []
class RoleUpdate(BaseModel):
name: str | None = None
description: str | None = None
permission_codes: list[str] | None = None
class RoleResponse(BaseModel):
id: int
code: str
name: str
description: str | None
user_count: int
permission_codes: list[str]
class PermissionCreate(BaseModel):
code: str = Field(min_length=1, max_length=120)
name: str = Field(min_length=1, max_length=120)
module: str = Field(min_length=1, max_length=60)
class PermissionUpdate(BaseModel):
name: str | None = None
module: str | None = None
class PermissionResponse(BaseModel):
id: int
code: str
name: str
module: str
class PermissionGroup(BaseModel):
module: str
items: list[PermissionResponse]