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

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


@JsonMap({"date_": "date"})
class PaymentBreakDown(BaseModel):
    """PaymentBreakDown

    :param date_: date_, defaults to None
    :type date_: str, optional
    :param general_ledger_account: general_ledger_account, defaults to None
    :type general_ledger_account: str, optional
    :param team: team, defaults to None
    :type team: str, optional
    :param contractor_unique_identifier: Worker's unique identifier., defaults to None
    :type contractor_unique_identifier: str, optional
    :param contractor_employee_name: Worker's name., defaults to None
    :type contractor_employee_name: str, optional
    :param contractor_email: Worker's email., defaults to None
    :type contractor_email: str, optional
    :param invoice_number: Invoice number., defaults to None
    :type invoice_number: str, optional
    :param currency: Currency code., defaults to None
    :type currency: str, optional
    :param payment_currency: payment_currency, defaults to None
    :type payment_currency: str, optional
    :param receipt_number: receipt_number, defaults to None
    :type receipt_number: str, optional
    :param work: work, defaults to None
    :type work: str, optional
    :param bonus: bonus, defaults to None
    :type bonus: str, optional
    :param expenses: expenses, defaults to None
    :type expenses: str, optional
    :param commissions: commissions, defaults to None
    :type commissions: str, optional
    :param deductions: deductions, defaults to None
    :type deductions: str, optional
    :param overtime: overtime, defaults to None
    :type overtime: str, optional
    :param pro_rata: pro_rata, defaults to None
    :type pro_rata: str, optional
    :param others: others, defaults to None
    :type others: str, optional
    :param processing_fee: processing_fee, defaults to None
    :type processing_fee: str, optional
    :param adjustment: adjustment, defaults to None
    :type adjustment: str, optional
    :param total: Total due., defaults to None
    :type total: str, optional
    :param total_payment_currency: Total in payment currency., defaults to None
    :type total_payment_currency: str, optional
    :param payment_date: Date of payment., defaults to None
    :type payment_date: str, optional
    :param frequency: frequency, defaults to None
    :type frequency: str, optional
    :param contract_country: Country of the contract., defaults to None
    :type contract_country: str, optional
    :param contract_start_date: Contract start date., defaults to None
    :type contract_start_date: str, optional
    :param approvers: approvers, defaults to None
    :type approvers: str, optional
    :param approve_date: approve_date, defaults to None
    :type approve_date: str, optional
    """

    def __init__(
        self,
        date_: str = None,
        general_ledger_account: str = None,
        team: str = None,
        contractor_unique_identifier: str = None,
        contractor_employee_name: str = None,
        contractor_email: str = None,
        invoice_number: str = None,
        currency: str = None,
        payment_currency: str = None,
        receipt_number: str = None,
        work: str = None,
        bonus: str = None,
        expenses: str = None,
        commissions: str = None,
        deductions: str = None,
        overtime: str = None,
        pro_rata: str = None,
        others: str = None,
        processing_fee: str = None,
        adjustment: str = None,
        total: str = None,
        total_payment_currency: str = None,
        payment_date: str = None,
        frequency: str = None,
        contract_country: str = None,
        contract_start_date: str = None,
        approvers: str = None,
        approve_date: str = None,
    ):
        if date_ is not None:
            self.date_ = date_
        if general_ledger_account is not None:
            self.general_ledger_account = general_ledger_account
        if team is not None:
            self.team = team
        if contractor_unique_identifier is not None:
            self.contractor_unique_identifier = contractor_unique_identifier
        if contractor_employee_name is not None:
            self.contractor_employee_name = contractor_employee_name
        if contractor_email is not None:
            self.contractor_email = contractor_email
        if invoice_number is not None:
            self.invoice_number = invoice_number
        if currency is not None:
            self.currency = currency
        if payment_currency is not None:
            self.payment_currency = payment_currency
        if receipt_number is not None:
            self.receipt_number = receipt_number
        if work is not None:
            self.work = work
        if bonus is not None:
            self.bonus = bonus
        if expenses is not None:
            self.expenses = expenses
        if commissions is not None:
            self.commissions = commissions
        if deductions is not None:
            self.deductions = deductions
        if overtime is not None:
            self.overtime = overtime
        if pro_rata is not None:
            self.pro_rata = pro_rata
        if others is not None:
            self.others = others
        if processing_fee is not None:
            self.processing_fee = processing_fee
        if adjustment is not None:
            self.adjustment = adjustment
        if total is not None:
            self.total = total
        if total_payment_currency is not None:
            self.total_payment_currency = total_payment_currency
        if payment_date is not None:
            self.payment_date = payment_date
        if frequency is not None:
            self.frequency = frequency
        if contract_country is not None:
            self.contract_country = contract_country
        if contract_start_date is not None:
            self.contract_start_date = contract_start_date
        if approvers is not None:
            self.approvers = approvers
        if approve_date is not None:
            self.approve_date = approve_date
