Files
Tg-job/mtucijobsbackend/app/schemas.py

146 lines
2.6 KiB
Python

from pydantic import BaseModel
from datetime import datetime
from typing import List, Optional, Union
class StudentUpdate(BaseModel):
Name: str
Type: str
Faculties: str
Group: str
Course: Optional[int]
Experience_specialty: bool
Time: List[str]
Soft_skills: str
Link: str
Email: str
Phone_number: str
Hardskills: List[str]
class Student(BaseModel):
StudentID: int
Name: str
Type: str
Faculties: str
Group: str
Course: Optional[int]
Experience_specialty: bool
Time: List[str]
Soft_skills: str
Link: str
Email: str
Phone_number: str
class StudentCreate(Student):
Hardskills: List[str]
class MatchJob(Student):
Match: int
class Jobs_search(BaseModel):
JobID: int
Company_name: str
Link_to_job: Optional[str] = None
Job_name: str
Year: str
Qualification: bool
Time: List[str]
Salary_after_interview: bool
Salary: int
Email: str
Responsibilities: str
class MatchStudent(Jobs_search):
Match: int
class JobBase(BaseModel):
Company_name: str
Link_to_job: Optional[str] = None
Job_name: str
Year: str
Qualification: bool
Salary_after_interview: bool
Salary: int
Email: str
Archive: bool
Responsibilities: str
Time: List[str]
Hardskills: List[str]
class JobCreate(JobBase):
pass
class JobUpdate(JobBase):
pass
class Job(BaseModel):
JobID: Optional[int]
UserID: int
Company_name: Optional[str]
Link_to_job: Optional[str] = None
Job_name: str
Year: str
Qualification: bool
Time: List[str]
Salary_after_interview: bool
Salary: int
Email: str
Archive: bool
Responsibilities: str
class JobGet(Job):
Hardskills: List[str]
class ResponseCreate(BaseModel):
StudentID: int
JobID: int
Status: Optional[str] = "Ожидает рассмотрения"
Comment: Optional[str] = None
Link: Optional[str] = None
class ResponseUpdate(BaseModel):
Status: Optional[str] = "Ожидает рассмотрения"
Comment: Optional[str] = None
Link: Optional[str] = None
class Response(ResponseCreate):
ResponseID: int
class Hard_skill(BaseModel):
Hard_skillID: int
Title: str
class StudentsHardskillCreate(BaseModel):
Title: str
class StudentsHardskill(BaseModel):
Hard_skillID: int
Title: str
class JobsHardskillCreate(BaseModel):
Title: str
class JobsHardskill(BaseModel):
Hard_skillID: int
Title: str
class UserBase(BaseModel):
Email: Optional[str]
Hashed_password: Optional[str]
class UserCreate(UserBase):
pass
class UserUpdate(UserBase):
pass
class User(BaseModel):
Email: str
class Token(BaseModel):
access_token: str
refresh_token: Union[str, None] = None
token_type: str = "Bearer"
class TokenData(BaseModel):
UserID: int
Email: str