class XenditModel { String? id; String? externalId; String? userId; String? status; String? merchantName; String? merchantProfilePictureUrl; int? amount; String? payerEmail; String? description; String? expiryDate; String? invoiceUrl; List? availableBanks; List? availableRetailOutlets; List? availableEwallets; List? availableQrCodes; List? availableDirectDebits; List? availablePaylaters; bool? shouldExcludeCreditCard; bool? shouldSendEmail; String? created; String? updated; String? currency; Null metadata; XenditModel( {this.id, this.externalId, this.userId, this.status, this.merchantName, this.merchantProfilePictureUrl, this.amount, this.payerEmail, this.description, this.expiryDate, this.invoiceUrl, this.availableBanks, this.availableRetailOutlets, this.availableEwallets, this.availableQrCodes, this.availableDirectDebits, this.availablePaylaters, this.shouldExcludeCreditCard, this.shouldSendEmail, this.created, this.updated, this.currency, this.metadata}); XenditModel.fromJson(Map json) { id = json['id']; externalId = json['external_id']; userId = json['user_id']; status = json['status']; merchantName = json['merchant_name']; merchantProfilePictureUrl = json['merchant_profile_picture_url']; amount = json['amount']; payerEmail = json['payer_email']; description = json['description']; expiryDate = json['expiry_date']; invoiceUrl = json['invoice_url']; if (json['available_banks'] != null) { availableBanks = []; json['available_banks'].forEach((v) { availableBanks!.add(AvailableBanks.fromJson(v)); }); } if (json['available_retail_outlets'] != null) { availableRetailOutlets = []; json['available_retail_outlets'].forEach((v) { availableRetailOutlets!.add(AvailableRetailOutlets.fromJson(v)); }); } if (json['available_ewallets'] != null) { availableEwallets = []; json['available_ewallets'].forEach((v) { availableEwallets!.add(AvailableEwallets.fromJson(v)); }); } if (json['available_qr_codes'] != null) { availableQrCodes = []; json['available_qr_codes'].forEach((v) { availableQrCodes!.add(AvailableQrCodes.fromJson(v)); }); } if (json['available_direct_debits'] != null) { availableDirectDebits = []; json['available_direct_debits'].forEach((v) { availableDirectDebits!.add(AvailableDirectDebits.fromJson(v)); }); } if (json['available_paylaters'] != null) { availablePaylaters = []; json['available_paylaters'].forEach((v) { availablePaylaters!.add(AvailablePaylaters.fromJson(v)); }); } shouldExcludeCreditCard = json['should_exclude_credit_card']; shouldSendEmail = json['should_send_email']; created = json['created']; updated = json['updated']; currency = json['currency']; metadata = json['metadata']; } Map toJson() { final Map data = {}; data['id'] = id; data['external_id'] = externalId; data['user_id'] = userId; data['status'] = status; data['merchant_name'] = merchantName; data['merchant_profile_picture_url'] = merchantProfilePictureUrl; data['amount'] = amount; data['payer_email'] = payerEmail; data['description'] = description; data['expiry_date'] = expiryDate; data['invoice_url'] = invoiceUrl; if (availableBanks != null) { data['available_banks'] = availableBanks!.map((v) => v.toJson()).toList(); } if (availableRetailOutlets != null) { data['available_retail_outlets'] = availableRetailOutlets!.map((v) => v.toJson()).toList(); } if (availableEwallets != null) { data['available_ewallets'] = availableEwallets!.map((v) => v.toJson()).toList(); } if (availableQrCodes != null) { data['available_qr_codes'] = availableQrCodes!.map((v) => v.toJson()).toList(); } if (availableDirectDebits != null) { data['available_direct_debits'] = availableDirectDebits!.map((v) => v.toJson()).toList(); } if (availablePaylaters != null) { data['available_paylaters'] = availablePaylaters!.map((v) => v.toJson()).toList(); } data['should_exclude_credit_card'] = shouldExcludeCreditCard; data['should_send_email'] = shouldSendEmail; data['created'] = created; data['updated'] = updated; data['currency'] = currency; data['metadata'] = metadata; return data; } } class AvailableBanks { String? bankCode; String? collectionType; int? transferAmount; String? bankBranch; String? accountHolderName; int? identityAmount; AvailableBanks({this.bankCode, this.collectionType, this.transferAmount, this.bankBranch, this.accountHolderName, this.identityAmount}); AvailableBanks.fromJson(Map json) { bankCode = json['bank_code']; collectionType = json['collection_type']; transferAmount = json['transfer_amount']; bankBranch = json['bank_branch']; accountHolderName = json['account_holder_name']; identityAmount = json['identity_amount']; } Map toJson() { final Map data = {}; data['bank_code'] = bankCode; data['collection_type'] = collectionType; data['transfer_amount'] = transferAmount; data['bank_branch'] = bankBranch; data['account_holder_name'] = accountHolderName; data['identity_amount'] = identityAmount; return data; } } class AvailableRetailOutlets { String? retailOutletName; AvailableRetailOutlets({this.retailOutletName}); AvailableRetailOutlets.fromJson(Map json) { retailOutletName = json['retail_outlet_name']; } Map toJson() { final Map data = {}; data['retail_outlet_name'] = retailOutletName; return data; } } class AvailableEwallets { String? ewalletType; AvailableEwallets({this.ewalletType}); AvailableEwallets.fromJson(Map json) { ewalletType = json['ewallet_type']; } Map toJson() { final Map data = {}; data['ewallet_type'] = ewalletType; return data; } } class AvailableQrCodes { String? qrCodeType; AvailableQrCodes({this.qrCodeType}); AvailableQrCodes.fromJson(Map json) { qrCodeType = json['qr_code_type']; } Map toJson() { final Map data = {}; data['qr_code_type'] = qrCodeType; return data; } } class AvailableDirectDebits { String? directDebitType; AvailableDirectDebits({this.directDebitType}); AvailableDirectDebits.fromJson(Map json) { directDebitType = json['direct_debit_type']; } Map toJson() { final Map data = {}; data['direct_debit_type'] = directDebitType; return data; } } class AvailablePaylaters { String? paylaterType; AvailablePaylaters({this.paylaterType}); AvailablePaylaters.fromJson(Map json) { paylaterType = json['paylater_type']; } Map toJson() { final Map data = {}; data['paylater_type'] = paylaterType; return data; } }