You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.6 KiB
62 lines
1.6 KiB
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
# @Time : 2020/7/7 16:23
|
|
# @Author : CoderCharm
|
|
# @File : user_schema.py
|
|
# @Software: PyCharm
|
|
# @Desc :
|
|
"""
|
|
|
|
"""
|
|
|
|
from typing import Optional
|
|
from pydantic import BaseModel, EmailStr, AnyHttpUrl
|
|
|
|
class UserBase(BaseModel):
|
|
username: str
|
|
is_active: Optional[bool] = True
|
|
is_delete: Optional[int] = 0
|
|
|
|
class UserAuth(UserBase):
|
|
username: str
|
|
password: str
|
|
|
|
class UserCreate(UserBase):
|
|
password: str
|
|
nickname: Optional[str] = None
|
|
email: Optional[EmailStr] = None
|
|
phone: Optional[str] = None
|
|
# avatar: Optional[AnyHttpUrl] = None
|
|
gender: Optional[int] = 0
|
|
wechat_openid: Optional[str] = None
|
|
country: Optional[str] = None
|
|
province: Optional[str] = None
|
|
city: Optional[str] = None
|
|
q_limit_day: Optional[int] = 0
|
|
tokens_limit: Optional[int] = 0
|
|
roles: Optional[list] = []
|
|
|
|
class UserUpdate(UserBase):
|
|
password: Optional[str] = None
|
|
nickname: Optional[str] = None
|
|
email: Optional[EmailStr] = None
|
|
phone: Optional[str] = None
|
|
avatar: Optional[AnyHttpUrl] = None
|
|
gender: Optional[int] = 0
|
|
wechat_openid: Optional[str] = None
|
|
country: Optional[str] = None
|
|
province: Optional[str] = None
|
|
city: Optional[str] = None
|
|
q_limit_day: Optional[int] = -1
|
|
tokens_limit: Optional[int] = -1
|
|
roles: Optional[list] = []
|
|
|
|
class UserQuery(BaseModel):
|
|
col_val: Optional[str] = ''
|
|
is_delete: Optional[int] = 0
|
|
role: Optional[str] = ''
|
|
page: Optional[int] = 0
|
|
page_size: Optional[int] = 20
|
|
order_by: Optional[str] = 'id'
|
|
is_desc: Optional[bool] = False
|