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

from __future__ import annotations
from .utils.json_map import JsonMap
from .base import BaseModel
from .gp_contract_salary_status_enum import GpContractSalaryStatusEnum
from .gp_contract_salary_scale_enum import GpContractSalaryScaleEnum


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

    :param status: The status of a salary amendment., defaults to None
    :type status: GpContractSalaryStatusEnum, optional
    :param scale: The scale to which a given salary applies., defaults to None
    :type scale: GpContractSalaryScaleEnum, optional
    :param salary: Compensation salary., defaults to None
    :type salary: float, optional
    :param effective_date: Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31., defaults to None
    :type effective_date: str, optional
    """

    def __init__(
        self,
        status: GpContractSalaryStatusEnum = None,
        scale: GpContractSalaryScaleEnum = None,
        salary: float = None,
        effective_date: str = None,
    ):
        if status is not None:
            self.status = self._enum_matching(
                status, GpContractSalaryStatusEnum.list(), "status"
            )
        if scale is not None:
            self.scale = self._enum_matching(
                scale, GpContractSalaryScaleEnum.list(), "scale"
            )
        if salary is not None:
            self.salary = salary
        if effective_date is not None:
            self.effective_date = effective_date
