models.py•11.7 kB
# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-06-29T08:30:02+00:00
from __future__ import annotations
from datetime import date as date_aliased
from enum import Enum
from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field, RootModel, constr
class Attributes(BaseModel):
entitlement: Optional[float] = None
id: Optional[int] = None
name: Optional[str] = None
class Type(Enum):
TimeOffType = 'TimeOffType'
class ValueItem(BaseModel):
attributes: Optional[Attributes] = None
type: Optional[Type] = None
class AbsenceEntitlement(BaseModel):
label: str
value: List[ValueItem]
class AbsencePeriodResponse(BaseModel):
pass
class Certificate(BaseModel):
status: Optional[str] = None
class Attribute1(BaseModel):
email: Optional[str] = None
first_name: Optional[str] = None
id: Optional[int] = None
last_name: Optional[str] = None
class Employee(BaseModel):
attributes: Optional[List[Attribute1]] = None
type: Optional[str] = None
class Attribute2(BaseModel):
id: Optional[int] = None
name: Optional[str] = None
class TimeOffType(BaseModel):
attributes: Optional[List[Attribute2]] = None
type: Optional[str] = None
class Attribute(BaseModel):
certificate: Optional[Certificate] = None
created_at: Optional[str] = None
days_count: Optional[float] = None
employee: Optional[Employee] = None
end_date: Optional[str] = None
half_day_end: Optional[float] = None
half_day_start: Optional[float] = None
id: Optional[int] = None
start_date: Optional[str] = None
status: Optional[str] = None
time_off_type: Optional[TimeOffType] = None
class Data(BaseModel):
attributes: List[Attribute]
type: str
class Attribute3(BaseModel):
break_: int = Field(..., alias='break')
comment: str
date: date_aliased
employee: int
end_time: constr(pattern=r'^\d\d:\d\d$')
is_holiday: bool
is_on_time_off: bool
start_time: constr(pattern=r'^\d\d:\d\d$')
class Datum(BaseModel):
attributes: List[Attribute3]
id: int
type: str
class Attribute4(BaseModel):
label: str
value: Dict[str, Any]
class Attribute5(BaseModel):
id: Optional[float] = None
name: Optional[str] = None
percentage: Optional[float] = None
class ValueItem1(BaseModel):
attributes: Optional[List[Attribute5]] = None
type: Optional[str] = None
class CostCenters(Attribute4):
value: Optional[List[ValueItem1]] = None
class CreateTimeOffPeriodRequest(BaseModel):
comment: Optional[str] = Field(None, description='Optional comment')
employee_id: int = Field(..., description='Employee identifier')
end_date: date_aliased = Field(..., description='Absence end date as YYYY-MM-DD')
half_day_end: bool = Field(
..., description='Weather the end date is a half-day off'
)
half_day_start: bool = Field(
..., description='Weather the start date is a half-day off'
)
start_date: date_aliased = Field(
..., description='Absence start date as YYYY-MM-DD'
)
time_off_type_id: int = Field(..., description='Time-off type identifier')
class Attribute6(BaseModel):
email: Optional[str] = None
first_name: Optional[str] = None
id: Optional[int] = None
last_name: Optional[str] = None
class Employee1(BaseModel):
attributes: Optional[List[Attribute6]] = None
type: Optional[str] = None
class Attribute7(BaseModel):
id: Optional[int] = None
name: Optional[str] = None
class TimeOffType1(BaseModel):
attributes: Optional[List[Attribute7]] = None
type: Optional[str] = None
class Attributes1(BaseModel):
certificate: Optional[Certificate] = None
created_at: Optional[str] = None
days_count: Optional[float] = None
employee: Optional[Employee1] = None
end_date: Optional[str] = None
half_day_end: Optional[float] = None
half_day_start: Optional[float] = None
id: Optional[int] = None
start_date: Optional[str] = None
status: Optional[str] = None
time_off_type: Optional[TimeOffType1] = None
class Type1(Enum):
TimeOffPeriod = 'TimeOffPeriod'
class Data1(BaseModel):
attributes: Optional[Attributes1] = None
type: Optional[Type1] = Field(None, description='Time-off period resource name')
class Attributes2(BaseModel):
name: Optional[str] = None
class Value(BaseModel):
attributes: Optional[Attributes2] = None
type: Optional[str] = None
class Department(Attribute4):
value: Optional[Value] = None
class DetailedMessageItem(BaseModel):
break_: Optional[int] = Field(None, alias='break')
comment: Optional[str] = None
date: Optional[str] = None
employee: Optional[int] = None
end_time: Optional[str] = None
error_msg: Optional[str] = None
id: Optional[int] = None
start_time: Optional[str] = None
success: Optional[bool] = None
class Error(BaseModel):
code: Optional[int] = None
detailed_message: Optional[List[DetailedMessageItem]] = None
message: Optional[str] = None
class DetailedErrorResponse(BaseModel):
error: Error
success: bool
class Error1(BaseModel):
code: Optional[int] = None
message: Optional[str] = None
class ErrorResponse(BaseModel):
error: Error1
success: bool
class Attributes3(BaseModel):
country: Optional[str] = None
id: Optional[float] = None
name: Optional[str] = None
state: Optional[str] = None
class Value1(BaseModel):
attributes: Optional[Attributes3] = None
type: Optional[str] = None
class HolidayCalendar(Attribute4):
value: Optional[Value1] = None
class Attendance(BaseModel):
break_: int = Field(..., alias='break', description='Break in minutes')
comment: str = Field(..., description='Optional comment')
date: date_aliased = Field(..., description='Attendance date as YYYY-MM-DD')
employee: int = Field(..., description='Employee identifier')
end_time: constr(pattern=r'^\d\d:\d\d$') = Field(
..., description='End time as HH:MM'
)
start_time: constr(pattern=r'^\d\d:\d\d$') = Field(
..., description='Start time as HH:MM'
)
class NewAttendancePeriodRequest(BaseModel):
attendances: Optional[List[Attendance]] = None
class Data2(BaseModel):
id: Optional[List[int]] = None
message: Optional[str] = None
class Attributes4(BaseModel):
name: Optional[str] = None
class Value2(BaseModel):
attributes: Optional[Attributes4] = None
type: Optional[str] = None
class Office(Attribute4):
value: Optional[Value2] = None
class Response(BaseModel):
data: Dict[str, Any]
success: bool
class Type2(Enum):
TimeOffType = 'TimeOffType'
class TimeOffTypeResource(BaseModel):
attributes: Optional[Attributes4] = None
id: Optional[int] = Field(None, description='identifier')
type: Optional[Type2] = Field(None, description='Time-off type resource name')
class UpdateAttendancePeriodRequest(BaseModel):
break_: Optional[int] = Field(None, alias='break', description='Break in minutes')
comment: Optional[str] = Field(None, description='Optional comment')
date: Optional[date_aliased] = Field(
None, description='Attendance date as YYYY-MM-DD'
)
end_time: Optional[constr(pattern=r'^\d\d:\d\d$')] = Field(
None, description='End time as HH:MM'
)
start_time: Optional[constr(pattern=r'^\d\d:\d\d$')] = Field(
None, description='Start time as HH:MM'
)
class Attributes6(BaseModel):
friday: Optional[constr(pattern=r'^\d\d:\d\d$')] = None
id: Optional[float] = None
monday: Optional[constr(pattern=r'^\d\d:\d\d$')] = None
name: Optional[str] = None
saturday: Optional[constr(pattern=r'^\d\d:\d\d$')] = None
sunday: Optional[constr(pattern=r'^\d\d:\d\d$')] = None
thursday: Optional[constr(pattern=r'^\d\d:\d\d$')] = None
tuesday: Optional[constr(pattern=r'^\d\d:\d\d$')] = None
wednesday: Optional[constr(pattern=r'^\d\d:\d\d$')] = None
class Value3(BaseModel):
attributes: Optional[Attributes6] = None
type: Optional[str] = None
class WorkSchedule(Attribute4):
value: Optional[Value3] = None
class Employees(RootModel[List[int]]):
root: List[int]
class EmployeeGender(Enum):
male = 'male'
female = 'female'
diverse = 'diverse'
class CompanyEmployeesPostRequest(BaseModel):
employee_department_: Optional[str] = Field(
None, alias='employee[department]', description='Employee department'
)
employee_email_: str = Field(
..., alias='employee[email]', description='Employee email'
)
employee_first_name_: str = Field(
..., alias='employee[first_name]', description='Employee first name'
)
employee_gender_: Optional[EmployeeGender] = Field(
None, alias='employee[gender]', description='Employee gender'
)
employee_hire_date_: Optional[date_aliased] = Field(
None, alias='employee[hire_date]', description='Employee hire date'
)
employee_last_name_: str = Field(
..., alias='employee[last_name]', description='Employee last name'
)
employee_position_: Optional[str] = Field(
None, alias='employee[position]', description='Employee position'
)
employee_weekly_hours_: Optional[float] = Field(
None,
alias='employee[weekly_hours]',
description='Employee weekly working hours',
)
CompanyEmployeesPostResponse = Response
class CompanyTimeOffTypesGetResponse(BaseModel):
data: Optional[List[TimeOffTypeResource]] = None
success: Optional[bool] = None
class AbsencePeriodsResponse(Response):
data: Optional[Data] = None
class AttendancePeriodsResponse(Response):
data: Optional[List[Datum]] = None
limit: Optional[int] = None
offset: Optional[int] = None
class CreateTimeOffPeriodResponse(Response):
data: Optional[Data1] = None
class NewAttendancePeriodResponse(Response):
data: Optional[Data2] = None
class CompanyTimeOffsPostResponse(BaseModel):
data: Optional[CreateTimeOffPeriodResponse] = None
class Attribute8(BaseModel):
absence_entitlement: Optional[AbsenceEntitlement] = None
contract_end_date: Optional[Attribute4] = None
cost_centers: Optional[CostCenters] = None
created_at: Optional[Attribute4] = None
department: Optional[Department] = None
email: Optional[Attribute4] = None
employment_type: Optional[Attribute4] = None
first_name: Optional[Attribute4] = None
fix_salary: Optional[Attribute4] = None
gender: Optional[Attribute4] = None
hire_date: Optional[Attribute4] = None
holiday_calendar: Optional[HolidayCalendar] = None
hourly_salary: Optional[Attribute4] = None
id: Optional[Attribute4] = None
last_name: Optional[Attribute4] = None
office: Optional[Office] = None
position: Optional[Attribute4] = None
probation_period_end: Optional[Attribute4] = None
status: Optional[Attribute4] = None
supervisor: Optional[Supervisor] = None
termination_date: Optional[Attribute4] = None
termination_reason: Optional[Attribute4] = None
termination_type: Optional[Attribute4] = None
vacation_day_balance: Optional[Attribute4] = None
weekly_working_hours: Optional[Attribute4] = None
work_schedule: Optional[WorkSchedule] = None
class Employee2(BaseModel):
attributes: List[Attribute8]
type: str
class EmployeeResponse(Response):
data: Optional[Employee2] = None
class EmployeesResponse(Response):
data: Optional[List[Employee2]] = None
class Supervisor(Attribute4):
value: Optional[Employee2] = None
Attribute8.model_rebuild()