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

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


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

    :param currency_code: currency_code
    :type currency_code: str
    :param amount: amount
    :type amount: str
    :param scale: scale
    :type scale: str
    :param frequency: frequency
    :type frequency: str
    :param first_payment: first_payment
    :type first_payment: str
    :param first_payment_date: Long date-time format following ISO-8601
    :type first_payment_date: str
    :param gross_annual_salary: gross_annual_salary
    :type gross_annual_salary: str
    :param gross_signing_bonus: gross_signing_bonus
    :type gross_signing_bonus: str
    :param gross_variable_bonus: gross_variable_bonus
    :type gross_variable_bonus: str
    """

    def __init__(
        self,
        currency_code: str,
        amount: str,
        scale: str,
        frequency: str,
        first_payment: str,
        first_payment_date: str,
        gross_annual_salary: str,
        gross_signing_bonus: str,
        gross_variable_bonus: str,
    ):
        self.currency_code = self._pattern_matching(
            currency_code, "^[A-Z]{3}$", "currency_code"
        )
        self.amount = amount
        self.scale = scale
        self.frequency = frequency
        self.first_payment = first_payment
        self.first_payment_date = first_payment_date
        self.gross_annual_salary = gross_annual_salary
        self.gross_signing_bonus = gross_signing_bonus
        self.gross_variable_bonus = gross_variable_bonus
