36 lines
970 B
Python
36 lines
970 B
Python
from enum import Enum
|
|
from pydantic import BaseModel
|
|
from typing import Optional
|
|
from datetime import date
|
|
import uuid
|
|
|
|
class EmploymentType(str,Enum):
|
|
PERMANENT = "permanent"
|
|
CONTRACT = "contract"
|
|
TEMPORARY = "temporary"
|
|
INTERNEE="internee"
|
|
|
|
class Position(BaseModel):
|
|
department_id:Optional[uuid.UUID]=None
|
|
title:Optional[str]
|
|
date:Optional[date]
|
|
date_needed:Optional[date]
|
|
type:Optional[EmploymentType]
|
|
job_description:Optional[str]
|
|
period_from:Optional[date]=None
|
|
period_to:Optional[date]=None
|
|
jd_available:Optional[bool]=None
|
|
|
|
class InternalRecommendate(BaseModel):
|
|
employee_name:Optional[str]=None
|
|
employee_department:Optional[str]=None
|
|
entity:Optional[str]=None
|
|
|
|
class ReplacementFor(BaseModel):
|
|
to_replace:Optional[str]
|
|
grade:Optional[str]
|
|
title:Optional[str]
|
|
date_separated:Optional[date]
|
|
justification:Optional[str]
|
|
budget:Optional[str]
|
|
recommended_grade:Optional[str] |