mini-rbac/backend/schemas/common.py
2022-09-12 15:22:08 +08:00

53 lines
1.2 KiB
Python

"""公共模型"""
from datetime import datetime
from typing import Generic, Optional, TypeVar
from pydantic import BaseModel, Field
from pydantic.generics import GenericModel
T = TypeVar("T")
class Response(GenericModel, Generic[T]):
code: int = 200
data: Optional[T]
msg: str = "请求成功"
class ReadBase(BaseModel):
"""数据读取的基类"""
id: int
status: int = Field(default=1, description="数据状态 1正常默认值 9 删除 5使用中 ")
created: datetime
modified: datetime
class LoginForm(BaseModel):
"""用户登录参数"""
username: str = Field(..., description="账号", max_length=12, min_length=3)
password: str = Field(..., description="密码", min_length=6, max_length=16)
class LoginResult(BaseModel):
"""登录响应模型"""
id: int = Field(..., description="用户ID")
token: str = Field(..., description="token 串")
token_type: str = Field("Bearer", description="token 类型")
class QueryData(BaseModel):
"""分页查询基础数据"""
offset: int = 1
size: int = 10
class ListAll(GenericModel, Generic[T]):
"""查列表时的模型"""
total: int = Field(..., description="总数")
items: T = Field(..., description="数据列表")