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