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

from typing import List
from .utils.json_map import JsonMap
from .base import BaseModel


@JsonMap({})
class Benefits(BaseModel):
    """Benefits

    :param provider_id: The ID of a benefits provider to include in the calculation.
    :type provider_id: str
    :param plan_id: The ID of a benefits plan to include in the calculation., defaults to None
    :type plan_id: str, optional
    """

    def __init__(self, provider_id: str, plan_id: str = None):
        self.provider_id = provider_id
        if plan_id is not None:
            self.plan_id = plan_id


@JsonMap({})
class EorEmployeeCostCalculationRequestBody(BaseModel):
    """EorEmployeeCostCalculationRequestBody

    :param salary: The gross annual salary of the employee.
    :type salary: float
    :param country: The country of employment.
    :type country: str
    :param currency: The currency that the salary is paid in.
    :type currency: str
    :param benefits: Benefits which should be included in the calculation., defaults to None
    :type benefits: List[Benefits], optional
    """

    def __init__(
        self,
        salary: float,
        country: str,
        currency: str,
        benefits: List[Benefits] = None,
    ):
        self.salary = salary
        self.country = country
        self.currency = currency
        if benefits is not None:
            self.benefits = self._define_list(benefits, Benefits)
