92 lines
2.1 KiB
Python
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
|