defmodule Circlex.Struct.BankAccount do import Circlex.Struct.Util defstruct [ :id, :status, :description, :tracking_ref, :fingerprint, :billing_details, :bank_address, :create_date, :update_date, :virtual_account_number ] def deserialize(bank_account) do %__MODULE__{ id: fetch(bank_account, :id), status: fetch(bank_account, :status), description: fetch(bank_account, :description), tracking_ref: fetch(bank_account, :trackingRef), fingerprint: fetch(bank_account, :fingerprint), billing_details: fetch(bank_account, :billingDetails), bank_address: fetch(bank_account, :bankAddress), create_date: fetch(bank_account, :createDate), update_date: fetch(bank_account, :updateDate), virtual_account_number: fetch(bank_account, :virtualAccountNumber) } end def serialize(bank_account) do %{ id: bank_account.id, status: bank_account.status, description: bank_account.description, trackingRef: bank_account.tracking_ref, fingerprint: bank_account.fingerprint, billingDetails: bank_account.billing_details, bankAddress: bank_account.bank_address, createDate: bank_account.create_date, updateDate: bank_account.update_date, virtualAccountNumber: bank_account.virtual_account_number } end end