| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- """认证相关 Pydantic schemas(对外 camelCase)"""
- from typing import List, Optional
- from pydantic import BaseModel, ConfigDict, Field
- def _to_camel(name: str) -> str:
- parts = name.split("_")
- return parts[0] + "".join(p.capitalize() for p in parts[1:])
- class CamelModel(BaseModel):
- model_config = ConfigDict(
- alias_generator=_to_camel,
- populate_by_name=True,
- )
- class LoginBody(BaseModel):
- username: str
- password: str
- class TokenData(CamelModel):
- token: str
- token_type: str = Field(default="Bearer", alias="tokenType")
- class CurrentUserData(CamelModel):
- id: str
- username: str
- display_name: str
- role_code: str
- role_name: str
- class MenuNode(CamelModel):
- id: str
- parent_id: str
- menu_code: str
- menu_name: str
- path: Optional[str] = ""
- menu_type: str
- sort: int = 0
- children: List["MenuNode"] = Field(default_factory=list)
- class MenusData(CamelModel):
- tree: List[MenuNode]
- perm_codes: List[str] = Field(default_factory=list)
|