# This file was generated by liblab | https://liblab.com/

from __future__ import annotations
from typing import List
from .utils.json_map import JsonMap
from .base import BaseModel
from .eor_client_timeoff_requests import EorClientTimeoffRequests


@JsonMap({"id_": "id"})
class EorTimeoffsEmployeeItem(BaseModel):
    """EorTimeoffsEmployeeItem

    :param id_: Unique identifier of this resource.
    :type id_: str
    :param name: name
    :type name: str
    :param eor_contract_id: eor_contract_id
    :type eor_contract_id: float
    :param contract_id: contract_id
    :type contract_id: str
    :param vacations: List of employee vacation time offs.
    :type vacations: List[EorClientTimeoffRequests]
    :param sick_leaves: List of employee sick leave time offs.
    :type sick_leaves: List[EorClientTimeoffRequests]
    :param others: List of all other employee time offs.
    :type others: List[EorClientTimeoffRequests]
    :param time_zones: time_zones
    :type time_zones: str
    """

    def __init__(
        self,
        id_: str,
        name: str,
        eor_contract_id: float,
        contract_id: str,
        vacations: List[EorClientTimeoffRequests],
        sick_leaves: List[EorClientTimeoffRequests],
        others: List[EorClientTimeoffRequests],
        time_zones: str,
    ):
        self.id_ = id_
        self.name = name
        self.eor_contract_id = eor_contract_id
        self.contract_id = contract_id
        self.vacations = self._define_list(vacations, EorClientTimeoffRequests)
        self.sick_leaves = self._define_list(sick_leaves, EorClientTimeoffRequests)
        self.others = self._define_list(others, EorClientTimeoffRequests)
        self.time_zones = time_zones
