import time from datetime import datetime from typing import List, Union, Dict from fastapi.param_functions import Form from fastapi.security import OAuth2PasswordRequestForm from pydantic import BaseModel from typing import Optional from utils import get_uid class Interview(BaseModel): date: dict # 要查询的条件 pages: int = 1 # 分页的当前页 time_type: str # 要查询的时间范围类型 # date包含如下参数,如选择全部的则传空字符串 # job_name: str # 应聘职位 # hr_name: str # 面试负责人 # interview_name: str # 面试官 # interview_type: int # 面试类型 # interview_sign: int # 面试签到 # feedback: int # 面试反馈 # interview_round: int # 面试轮次 class Timesinter(BaseModel): start_time: str # 开始时间 end_time: str # 结束时间 class Post_uid(BaseModel): uid: str # 面试者简历在CK中的唯一标识 class get_uids(BaseModel): uid: str # 面试者简历在CK中的唯一标识 class Entry(BaseModel): uid: str # 面试者简历在CK中的唯一标识 interview_stage: int # 修改入职状态 job_id: str # 招聘职位的id class Email_str(BaseModel): name: str # 求职者名字 job: str # 应聘的职位 times: str # 入职时间 money: str # 薪资 hr_name: str # hr联系人 phone: str # hr联系电话 email: str # hr邮箱 class send_str_mail(BaseModel): user_id: str # 接收者的唯一id name: str # 接收者的名字 email: str # 接收者的邮箱 email_str: str # 需要发送的文本内容 file: str # 华为云的邮箱附件地址 class user_id(BaseModel): user_id: List[str] # 钉钉接收者的唯一id name: str # 求职者姓名 class Stage(BaseModel): stage: int # 面试阶段 uid: str # 面试者简历在CK中的唯一标识 data: Dict # 更新的数据 class Notarize(BaseModel): uid: str # 面试者简历在CK中的唯一标识 hr_name: str hr_id: str hr_phone: str hr_email: str interview_name: str interview_id: str class Post_head(BaseModel): uid: str # 面试者简历在CK中的唯一标识 head_id: str # 头像链接 class Up_hint(BaseModel): hint_id: List[str] # 要修改已读的数据id type: str class Get_hr(BaseModel): hr_name: str class Login(BaseModel): unionid: str # 通过钉钉扫码获取的unionid class Createuser(BaseModel): unionid: str # 通过钉钉扫码获取的unionid rank: int # 判断是hr还是面试官 email: str # 邮箱 tel: str # 手机号 name: str # 名字 class Get_userid(BaseModel): user_id: str # 钉钉的唯一标识 type: int # 0为解禁1为禁止 class position(BaseModel): job_id: str = str(get_uid()) # 职位的唯一id # 职位id job_name: str # 职位名 class Ins_section(BaseModel): name: str # 部门名 position: List[position] # 职位名及职位id class Filenames(BaseModel): filenames: str class ExtendendOAuth(OAuth2PasswordRequestForm): def __init__(self, grant_type: str = Form(None, regex="password"), username: str = Form(...), password: str = Form(...), scope: str = Form(""), client_id: Optional[str] = Form(None), client_secret: Optional[str] = Form(None), unionid: str = Form(None)): super().__init__(grant_type, username, password, scope, client_id, client_secret) self.unionid = unionid # 通过钉钉扫码获取的unionid # unionid :str # 通过钉钉扫码获取的unionid class send_in(BaseModel): uid: str # 求职者uid class add_inter(BaseModel): uid: str # 求职者uid user_id: List[str] # 面试官的钉钉id star_time: str # 面试开始时间 end_time: str # 面试结束时间 hr_user: List[str] # HR的钉钉id class find_like(BaseModel): interview_stage: str # 简历阶段 date: dict # 查询条件 class nterview(BaseModel): date: dict # 要查询的条件 # date包含如下参数,如选择全部的则传空字符串 # job_name: str # 应聘职位 # hr_name: str # 面试负责人 # interview_name: str # 面试官 # interview_type: int # 面试类型 # interview_sign: int # 面试签到 # feedback: int # 面试反馈 # interview_round: int # 面试轮次 class interviews(BaseModel): date: dict # 要查询的条件 class get_teacher(BaseModel): uid: str # 求职者唯一id class record(BaseModel): uid: str # 求职者唯一id class find(BaseModel): date: dict={} # 查询条件 pages: int = 1 # 分页的当前页