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