prs_server/schemas/interview_plan.py
2022-09-26 16:07:34 +08:00

189 lines
4.8 KiB
Python

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 # 需要发送的文本内容
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 interview_teacher(BaseModel):
date: dict # 存储的面试反馈
teacher_back: int # 面试反馈选择
uid: str # 求职者唯一id
# date数据
# {'voice':1,'thought':1,'diathesis':1,'evaluate':'评价'}
class interviews(BaseModel):
date: dict # 要查询的条件
class get_teacher(BaseModel):
uid: str # 求职者唯一id
class record(BaseModel):
uid: str # 求职者唯一id