146 lines
2.6 KiB
Python
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 |