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

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


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

    :param full_name: Full name of the user., defaults to None
    :type full_name: str, optional
    :param phone: The user's phone number., defaults to None
    :type phone: str, optional
    :param address_line1: The primary address line., defaults to None
    :type address_line1: str, optional
    :param address_line2: The secondary address line., defaults to None
    :type address_line2: str, optional
    :param city: The city of the user's address., defaults to None
    :type city: str, optional
    :param province_state: The state or province of the user's address., defaults to None
    :type province_state: str, optional
    :param postal: The user's postal or ZIP code., defaults to None
    :type postal: str, optional
    :param bank_name: Name of the user's bank., defaults to None
    :type bank_name: str, optional
    :param country_code: The country code of the user., defaults to None
    :type country_code: str, optional
    :param bank_country_code: The country code where the bank is located., defaults to None
    :type bank_country_code: str, optional
    :param swift_bic: SWIFT/BIC code for the bank., defaults to None
    :type swift_bic: str, optional
    :param account_number: The user's bank account number., defaults to None
    :type account_number: str, optional
    :param bank_code: The bank code., defaults to None
    :type bank_code: str, optional
    :param original_name: The original name of the user., defaults to None
    :type original_name: str, optional
    :param tax_id: The user's tax identification number., defaults to None
    :type tax_id: str, optional
    :param branch_code: The branch code of the user's bank., defaults to None
    :type branch_code: str, optional
    :param currency_code: The currency code for transactions., defaults to None
    :type currency_code: str, optional
    :param bank_branch_name: The name of the user's bank branch., defaults to None
    :type bank_branch_name: str, optional
    :param iban: The International Bank Account Number (IBAN)., defaults to None
    :type iban: str, optional
    :param email: The user's email address., defaults to None
    :type email: str, optional
    :param rib_number: The RIB(Relevé d'Identité Bancaire)., defaults to None
    :type rib_number: str, optional
    :param account_type: Bank account type., defaults to None
    :type account_type: str, optional
    :param ach_routing_number: The ACH (Automated Clearing House) Routing Number., defaults to None
    :type ach_routing_number: str, optional
    :param id_: Unique identifier of this resource.
    :type id_: str
    :param created_at: Long date-time format following ISO-8601
    :type created_at: str
    :param updated_at: Long date-time format following ISO-8601
    :type updated_at: str
    :param status: Current status of bank account, defaults to None
    :type status: str, optional
    """

    def __init__(
        self,
        id_: str,
        created_at: str,
        updated_at: str,
        full_name: str = None,
        phone: str = None,
        address_line1: str = None,
        address_line2: str = None,
        city: str = None,
        province_state: str = None,
        postal: str = None,
        bank_name: str = None,
        country_code: str = None,
        bank_country_code: str = None,
        swift_bic: str = None,
        account_number: str = None,
        bank_code: str = None,
        original_name: str = None,
        tax_id: str = None,
        branch_code: str = None,
        currency_code: str = None,
        bank_branch_name: str = None,
        iban: str = None,
        email: str = None,
        rib_number: str = None,
        account_type: str = None,
        ach_routing_number: str = None,
        status: str = None,
    ):
        if full_name is not None:
            self.full_name = full_name
        if phone is not None:
            self.phone = phone
        if address_line1 is not None:
            self.address_line1 = address_line1
        if address_line2 is not None:
            self.address_line2 = address_line2
        if city is not None:
            self.city = city
        if province_state is not None:
            self.province_state = province_state
        if postal is not None:
            self.postal = postal
        if bank_name is not None:
            self.bank_name = bank_name
        if country_code is not None:
            self.country_code = country_code
        if bank_country_code is not None:
            self.bank_country_code = bank_country_code
        if swift_bic is not None:
            self.swift_bic = swift_bic
        if account_number is not None:
            self.account_number = account_number
        if bank_code is not None:
            self.bank_code = bank_code
        if original_name is not None:
            self.original_name = original_name
        if tax_id is not None:
            self.tax_id = tax_id
        if branch_code is not None:
            self.branch_code = branch_code
        if currency_code is not None:
            self.currency_code = currency_code
        if bank_branch_name is not None:
            self.bank_branch_name = bank_branch_name
        if iban is not None:
            self.iban = iban
        if email is not None:
            self.email = email
        if rib_number is not None:
            self.rib_number = rib_number
        if account_type is not None:
            self.account_type = account_type
        if ach_routing_number is not None:
            self.ach_routing_number = ach_routing_number
        self.id_ = id_
        self.created_at = created_at
        self.updated_at = updated_at
        if status is not None:
            self.status = status
