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
			| 
								 
											3 years ago
										 
									 | 
							
								#!/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
							 |