prs_server/schemas/user.py
2022-11-02 17:50:07 +08:00

92 lines
2.1 KiB
Python

from datetime import datetime
from typing import Optional, List, Any
from schemas.base import DBBase
from pydantic import BaseModel, EmailStr, Field
class UserBase(BaseModel):
email: Optional[EmailStr] = None
is_superuser: bool = False
name: Optional[str] = None
nickname: str = ''
last_login_ts: str = '尚未登录'
tel: str = ''
class UserProfileEdit(BaseModel):
nickname: str = None
tel: str = None
class User(UserBase):
user_id: str
class Users(BaseModel):
data: List[User] = []
class CreateAccount(BaseModel):
account_list: List[str] = []
class UserLogin(BaseModel):
username: str = ...
password: str = ...
class UserRestPassword(BaseModel):
user_id: str = ...
password: str = ...
nickname:str # 用户名
tel:str # 电话
email: str # 邮箱
class UserRestMyPassword(BaseModel):
password: str = ...
nickname:str # 用户名
tel:str # 电话
email: str # 邮箱
class UserCreate(UserBase):
hashed_password: str
name: str # 名字
unionid: str # 通过钉钉扫码获取的unionid
rank: int # 判断是hr还是面试官
email: str # 邮箱
tel: str # 手机号
user_id: str # 钉钉的用户id
# ****************************************************************************
# mongodb 模型
class UserDB(DBBase):
#email: EmailStr = None # 邮箱
is_superuser: bool = False
name: str # 姓名
nickname: str
tel: Any = ''
last_login_ts: str = '尚未登录'
data_where: dict = dict()
user_id: str # 钉钉id
unionid: str
rank: int # 区分hr和面试官
class UserDBRW(DBBase):
hashed_password: str # 密码
unionid: str # 通过钉钉扫码获取的unionid
rank: int # 判断是hr还是面试官
email: str # 邮箱
tel: str # 手机号
name: str # 账号
nickname: str # 显示名
last_login_ts: str = '尚未登录' # 登录时间
create_date: datetime = datetime.now() # 创建账号的时间
state: int = 0 # 默认刚创账号是不锁定的
user_id:str # 钉钉里面的用户id