(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['ApiClient', 'models/AddressVo'], factory);
} else if (typeof module === 'object' && module.exports) {
// CommonJS-like environments that support module.exports, like Node.
module.exports = factory(require('../ApiClient'), require('./AddressVo'));
} else {
// Browser globals (root is window)
if (!root.OrbipayPaymentsapiClient) {
root.OrbipayPaymentsapiClient = {};
}
root.OrbipayPaymentsapiClient.RecordPaymentCustomerAccountRequest = factory(root.OrbipayPaymentsapiClient.ApiClient, root.OrbipayPaymentsapiClient.AddressVo);
}
}(this, function(ApiClient, AddressVo) {
'use strict';
/**
* The RecordPaymentCustomerAccountRequest model module.
* @module models/RecordPaymentCustomerAccountRequest
*/
/**
* <h3 style="color:red"> This class subject to change without prior notice, Please dont use this class directly. </h3>
* Constructs a new <code>RecordPaymentCustomerAccountRequest</code>.
* @alias module:models/RecordPaymentCustomerAccountRequest
* @class
* @param account_holder_name {String} The name as specified on the account.
* @param account_number {String} The number or reference that a customer uses to identify the customer's account.
*/
var exports = function(account_holder_name, account_number) {
var _this = this;
_this['account_holder_name'] = account_holder_name;
_this['account_number'] = account_number;
};
/**
* Constructs a <code>RecordPaymentCustomerAccountRequest</code> from a plain JavaScript object, optionally creating a new instance.
* Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not.
* @param {Object} data The plain JavaScript object bearing properties of interest.
* @param {module:models/RecordPaymentCustomerAccountRequest} obj Optional instance to populate.
* @return {module:models/RecordPaymentCustomerAccountRequest} The populated <code>RecordPaymentCustomerAccountRequest</code> instance.
*/
exports.constructFromObject = function(data, obj) {
if (data) {
obj = obj || new exports();
if (data.hasOwnProperty('account_holder_name')) {
obj['account_holder_name'] = ApiClient.convertToType(data['account_holder_name'], 'String');
}
if (data.hasOwnProperty('nickname')) {
obj['nickname'] = ApiClient.convertToType(data['nickname'], 'String');
}
if (data.hasOwnProperty('address')) {
obj['address'] = AddressVo.constructFromObject(data['address']);
}
if (data.hasOwnProperty('customer_account_reference')) {
obj['customer_account_reference'] = ApiClient.convertToType(data['customer_account_reference'], 'String');
}
if (data.hasOwnProperty('account_number')) {
obj['account_number'] = ApiClient.convertToType(data['account_number'], 'String');
}
if (data.hasOwnProperty('current_balance')) {
obj['current_balance'] = ApiClient.convertToType(data['current_balance'], 'String');
}
if (data.hasOwnProperty('current_statement_balance')) {
obj['current_statement_balance'] = ApiClient.convertToType(data['current_statement_balance'], 'String');
}
if (data.hasOwnProperty('minimum_payment_due')) {
obj['minimum_payment_due'] = ApiClient.convertToType(data['minimum_payment_due'], 'String');
}
if (data.hasOwnProperty('past_amount_due')) {
obj['past_amount_due'] = ApiClient.convertToType(data['past_amount_due'], 'String');
}
if (data.hasOwnProperty('payment_due_date')) {
obj['payment_due_date'] = ApiClient.convertToType(data['payment_due_date'], 'String');
}
if (data.hasOwnProperty('statement_date')) {
obj['statement_date'] = ApiClient.convertToType(data['statement_date'], 'String');
}
if (data.hasOwnProperty('custom_fields')) {
obj['custom_fields'] = ApiClient.convertToType(data['custom_fields'], {'String': 'String'});
}
}
return obj;
};
/**
* The name as specified on the account.
* @member {String} account_holder_name
*/
exports.prototype['account_holder_name'] = undefined;
/**
* The nickname by which a customer might want to identify the account.
* @member {String} nickname
*/
exports.prototype['nickname'] = undefined;
/**
* @member {module:models/AddressVo} address
*/
exports.prototype['address'] = undefined;
/**
* The unique identifier in the client system for the customer account.
* @member {String} customer_account_reference
*/
exports.prototype['customer_account_reference'] = undefined;
/**
* The number or reference that a customer uses to identify the customer's account.
* @member {String} account_number
*/
exports.prototype['account_number'] = undefined;
/**
* The current balance on the customer's account with the biller.
* @member {String} current_balance
*/
exports.prototype['current_balance'] = undefined;
/**
* The balance on the customer’s account with the biller as reported on the last statement.
* @member {String} current_statement_balance
*/
exports.prototype['current_statement_balance'] = undefined;
/**
* The minimum payment amount, as specified by the biller, that needs to be made against the customer’s account.
* @member {String} minimum_payment_due
*/
exports.prototype['minimum_payment_due'] = undefined;
/**
* The amount that is due from the past bills/statements on the customer’s account with the biller.
* @member {String} past_amount_due
*/
exports.prototype['past_amount_due'] = undefined;
/**
* The date by which the customer needs to clear the dues against the customer's account with the biller. It must be in ISO8601 full-date format, namely, YYYY-MM-DD.
* @member {String} payment_due_date
*/
exports.prototype['payment_due_date'] = undefined;
/**
* The date on which the biller generates the statement for the customer's account. It must be in ISO8601 full-date format, namely, YYYY-MM-DD.
* @member {String} statement_date
*/
exports.prototype['statement_date'] = undefined;
/**
* The additional information or meta-information that EBPP can accept, maintain and transmit back to the client.
* @member {Object.<String, String>} custom_fields
*/
exports.prototype['custom_fields'] = undefined;
return exports;
}));