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

#!/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