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 = ... class UserRestMyPassword(BaseModel): password: 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 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