/**
* File Auto-Generated by the RICADO Gen 4 PHP API Project
*
* Do Not Edit this File Manually!
*/
import BaseModel from '../../../Models/BaseModel';
/**
* Model Class for a Packrun Grower Notification
*
* @class
* @hideconstructor
* @extends BaseModel
*/
class PackrunGrowerNotificationModel extends BaseModel
{
/**
* PackrunGrowerNotificationModel Constructor
*
* @protected
* @param {number} siteId The Site ID associated with this Packrun Grower Notification
*/
constructor(siteId)
{
super();
/**
* The Packrun Grower Notification ID
*
* @type {string}
* @public
*/
this.id = "";
/**
* The Packing Line ID this Grower Notification is associated with
*
* @type {string}
* @public
*/
this.packingLineId = "";
/**
* The Packrun ID this Grower Notification is associated with
*
* @type {string}
* @public
*/
this.packrunId = "";
/**
* When this Grower Notification was Created
*
* @type {Date}
* @public
*/
this.createdTimestamp = new Date();
/**
* The Grower Notification Type
*
* @type {string}
* @public
*/
this.notificationType = "";
/**
* The SMS Request Statuses indicating progress when sending SMS Messages
*
* @type {Array<{mobileNumber: string, messageId: ?string, messageStatus: ?string, sendRequestCount: number, sendRequestTimestamp: ?Date, sendResponseCode: ?number, sendResponseMessage: ?string, getStatusRequestCount: number, getStatusRequestTimestamp: ?Date, getStatusResponseCode: ?number, getStatusResponseMessage: ?string, completed: boolean}>}
* @public
*/
this.smsRequests = [];
/**
* The Email Request Status indicating progress when sending Emails
*
* @type {?{requestCount: number, requestTimestamp: ?Date, responseCode: ?number, responseMessage: ?string, completed: boolean}}
* @public
*/
this.emailRequest = null;
/**
* Whether the Grower Notification is in the process of being Sent
*
* @type {string}
* @public
*/
this.status = "";
/**
* An Array of SMS Contacts for this Grower Notification
*
* @type {Array<{mobileNumber: string, firstName: string, lastName: ?string}>}
* @public
*/
this.smsContacts = [];
/**
* An Array of Email Contacts for this Grower Notification
*
* @type {Array<{email: string, firstName: string, lastName: ?string}>}
* @public
*/
this.emailContacts = [];
/**
* Whether the Packrun Grower Notification has been deleted
*
* @type {boolean}
* @public
*/
this.deleted = false;
/**
* When the Packrun Grower Notification was last updated
*
* @type {Date}
* @public
*/
this.updateTimestamp = new Date();
/**
* The Site ID associated with this Packrun Grower Notification
*
* @type {number}
* @public
*/
this.siteId = siteId;
}
/**
* Create a new **PackrunGrowerNotificationModel** from a JSON Object or JSON String
*
* @static
* @public
* @param {Object<string, any>|string} json A JSON Object or JSON String
* @param {number} siteId The Site ID associated with this Packrun Grower Notification
* @return {PackrunGrowerNotificationModel}
*/
static fromJSON(json, siteId)
{
let model = new PackrunGrowerNotificationModel(siteId);
/**
* The JSON Object
*
* @type {Object<string, any>}
*/
let jsonObject = {};
if(typeof json === 'string')
{
jsonObject = JSON.parse(json);
}
else if(typeof json === 'object')
{
jsonObject = json;
}
if('id' in jsonObject)
{
model.id = (function(){
if(typeof jsonObject['id'] !== 'string')
{
return String(jsonObject['id']);
}
return jsonObject['id'];
}());
}
if('packingLineId' in jsonObject)
{
model.packingLineId = (function(){
if(typeof jsonObject['packingLineId'] !== 'string')
{
return String(jsonObject['packingLineId']);
}
return jsonObject['packingLineId'];
}());
}
if('packrunId' in jsonObject)
{
model.packrunId = (function(){
if(typeof jsonObject['packrunId'] !== 'string')
{
return String(jsonObject['packrunId']);
}
return jsonObject['packrunId'];
}());
}
if('createdTimestamp' in jsonObject)
{
model.createdTimestamp = (function(){
if(typeof jsonObject['createdTimestamp'] !== 'string')
{
return new Date(String(jsonObject['createdTimestamp']));
}
return new Date(jsonObject['createdTimestamp']);
}());
}
if('notificationType' in jsonObject)
{
model.notificationType = (function(){
if(typeof jsonObject['notificationType'] !== 'string')
{
return String(jsonObject['notificationType']);
}
return jsonObject['notificationType'];
}());
}
if('smsRequests' in jsonObject)
{
model.smsRequests = (function(){
if(Array.isArray(jsonObject['smsRequests']) !== true)
{
return [];
}
return jsonObject['smsRequests'].map((smsRequestsItem) => {
return (function(){
let smsRequestsItemObject = {};
if(typeof smsRequestsItem === 'object' && 'mobileNumber' in smsRequestsItem)
{
smsRequestsItemObject.mobileNumber = (function(){
if(typeof smsRequestsItem.mobileNumber !== 'string')
{
return String(smsRequestsItem.mobileNumber);
}
return smsRequestsItem.mobileNumber;
}());
}
else
{
smsRequestsItemObject.mobileNumber = "";
}
if(typeof smsRequestsItem === 'object' && 'messageId' in smsRequestsItem)
{
smsRequestsItemObject.messageId = (function(){
if(smsRequestsItem.messageId === null)
{
return null;
}
if(typeof smsRequestsItem.messageId !== 'string')
{
return String(smsRequestsItem.messageId);
}
return smsRequestsItem.messageId;
}());
}
else
{
smsRequestsItemObject.messageId = null;
}
if(typeof smsRequestsItem === 'object' && 'messageStatus' in smsRequestsItem)
{
smsRequestsItemObject.messageStatus = (function(){
if(smsRequestsItem.messageStatus === null)
{
return null;
}
if(typeof smsRequestsItem.messageStatus !== 'string')
{
return String(smsRequestsItem.messageStatus);
}
return smsRequestsItem.messageStatus;
}());
}
else
{
smsRequestsItemObject.messageStatus = null;
}
if(typeof smsRequestsItem === 'object' && 'sendRequestCount' in smsRequestsItem)
{
smsRequestsItemObject.sendRequestCount = (function(){
if(typeof smsRequestsItem.sendRequestCount !== 'number')
{
return Number.isInteger(Number(smsRequestsItem.sendRequestCount)) ? Number(smsRequestsItem.sendRequestCount) : Math.floor(Number(smsRequestsItem.sendRequestCount));
}
return Number.isInteger(smsRequestsItem.sendRequestCount) ? smsRequestsItem.sendRequestCount : Math.floor(smsRequestsItem.sendRequestCount);
}());
}
else
{
smsRequestsItemObject.sendRequestCount = 0;
}
if(typeof smsRequestsItem === 'object' && 'sendRequestTimestamp' in smsRequestsItem)
{
smsRequestsItemObject.sendRequestTimestamp = (function(){
if(smsRequestsItem.sendRequestTimestamp === null)
{
return null;
}
if(typeof smsRequestsItem.sendRequestTimestamp !== 'string')
{
return new Date(String(smsRequestsItem.sendRequestTimestamp));
}
return new Date(smsRequestsItem.sendRequestTimestamp);
}());
}
else
{
smsRequestsItemObject.sendRequestTimestamp = null;
}
if(typeof smsRequestsItem === 'object' && 'sendResponseCode' in smsRequestsItem)
{
smsRequestsItemObject.sendResponseCode = (function(){
if(smsRequestsItem.sendResponseCode === null)
{
return null;
}
if(typeof smsRequestsItem.sendResponseCode !== 'number')
{
return Number.isInteger(Number(smsRequestsItem.sendResponseCode)) ? Number(smsRequestsItem.sendResponseCode) : Math.floor(Number(smsRequestsItem.sendResponseCode));
}
return Number.isInteger(smsRequestsItem.sendResponseCode) ? smsRequestsItem.sendResponseCode : Math.floor(smsRequestsItem.sendResponseCode);
}());
}
else
{
smsRequestsItemObject.sendResponseCode = null;
}
if(typeof smsRequestsItem === 'object' && 'sendResponseMessage' in smsRequestsItem)
{
smsRequestsItemObject.sendResponseMessage = (function(){
if(smsRequestsItem.sendResponseMessage === null)
{
return null;
}
if(typeof smsRequestsItem.sendResponseMessage !== 'string')
{
return String(smsRequestsItem.sendResponseMessage);
}
return smsRequestsItem.sendResponseMessage;
}());
}
else
{
smsRequestsItemObject.sendResponseMessage = null;
}
if(typeof smsRequestsItem === 'object' && 'getStatusRequestCount' in smsRequestsItem)
{
smsRequestsItemObject.getStatusRequestCount = (function(){
if(typeof smsRequestsItem.getStatusRequestCount !== 'number')
{
return Number.isInteger(Number(smsRequestsItem.getStatusRequestCount)) ? Number(smsRequestsItem.getStatusRequestCount) : Math.floor(Number(smsRequestsItem.getStatusRequestCount));
}
return Number.isInteger(smsRequestsItem.getStatusRequestCount) ? smsRequestsItem.getStatusRequestCount : Math.floor(smsRequestsItem.getStatusRequestCount);
}());
}
else
{
smsRequestsItemObject.getStatusRequestCount = 0;
}
if(typeof smsRequestsItem === 'object' && 'getStatusRequestTimestamp' in smsRequestsItem)
{
smsRequestsItemObject.getStatusRequestTimestamp = (function(){
if(smsRequestsItem.getStatusRequestTimestamp === null)
{
return null;
}
if(typeof smsRequestsItem.getStatusRequestTimestamp !== 'string')
{
return new Date(String(smsRequestsItem.getStatusRequestTimestamp));
}
return new Date(smsRequestsItem.getStatusRequestTimestamp);
}());
}
else
{
smsRequestsItemObject.getStatusRequestTimestamp = null;
}
if(typeof smsRequestsItem === 'object' && 'getStatusResponseCode' in smsRequestsItem)
{
smsRequestsItemObject.getStatusResponseCode = (function(){
if(smsRequestsItem.getStatusResponseCode === null)
{
return null;
}
if(typeof smsRequestsItem.getStatusResponseCode !== 'number')
{
return Number.isInteger(Number(smsRequestsItem.getStatusResponseCode)) ? Number(smsRequestsItem.getStatusResponseCode) : Math.floor(Number(smsRequestsItem.getStatusResponseCode));
}
return Number.isInteger(smsRequestsItem.getStatusResponseCode) ? smsRequestsItem.getStatusResponseCode : Math.floor(smsRequestsItem.getStatusResponseCode);
}());
}
else
{
smsRequestsItemObject.getStatusResponseCode = null;
}
if(typeof smsRequestsItem === 'object' && 'getStatusResponseMessage' in smsRequestsItem)
{
smsRequestsItemObject.getStatusResponseMessage = (function(){
if(smsRequestsItem.getStatusResponseMessage === null)
{
return null;
}
if(typeof smsRequestsItem.getStatusResponseMessage !== 'string')
{
return String(smsRequestsItem.getStatusResponseMessage);
}
return smsRequestsItem.getStatusResponseMessage;
}());
}
else
{
smsRequestsItemObject.getStatusResponseMessage = null;
}
if(typeof smsRequestsItem === 'object' && 'completed' in smsRequestsItem)
{
smsRequestsItemObject.completed = (function(){
if(typeof smsRequestsItem.completed !== 'boolean')
{
return Boolean(smsRequestsItem.completed);
}
return smsRequestsItem.completed;
}());
}
else
{
smsRequestsItemObject.completed = false;
}
return smsRequestsItemObject;
}());
});
}());
}
if('emailRequest' in jsonObject)
{
model.emailRequest = (function(){
if(jsonObject['emailRequest'] === null)
{
return null;
}
let emailRequestObject = {};
if(typeof jsonObject['emailRequest'] === 'object' && 'requestCount' in jsonObject['emailRequest'])
{
emailRequestObject.requestCount = (function(){
if(typeof jsonObject['emailRequest'].requestCount !== 'number')
{
return Number.isInteger(Number(jsonObject['emailRequest'].requestCount)) ? Number(jsonObject['emailRequest'].requestCount) : Math.floor(Number(jsonObject['emailRequest'].requestCount));
}
return Number.isInteger(jsonObject['emailRequest'].requestCount) ? jsonObject['emailRequest'].requestCount : Math.floor(jsonObject['emailRequest'].requestCount);
}());
}
else
{
emailRequestObject.requestCount = 0;
}
if(typeof jsonObject['emailRequest'] === 'object' && 'requestTimestamp' in jsonObject['emailRequest'])
{
emailRequestObject.requestTimestamp = (function(){
if(jsonObject['emailRequest'].requestTimestamp === null)
{
return null;
}
if(typeof jsonObject['emailRequest'].requestTimestamp !== 'string')
{
return new Date(String(jsonObject['emailRequest'].requestTimestamp));
}
return new Date(jsonObject['emailRequest'].requestTimestamp);
}());
}
else
{
emailRequestObject.requestTimestamp = null;
}
if(typeof jsonObject['emailRequest'] === 'object' && 'responseCode' in jsonObject['emailRequest'])
{
emailRequestObject.responseCode = (function(){
if(jsonObject['emailRequest'].responseCode === null)
{
return null;
}
if(typeof jsonObject['emailRequest'].responseCode !== 'number')
{
return Number.isInteger(Number(jsonObject['emailRequest'].responseCode)) ? Number(jsonObject['emailRequest'].responseCode) : Math.floor(Number(jsonObject['emailRequest'].responseCode));
}
return Number.isInteger(jsonObject['emailRequest'].responseCode) ? jsonObject['emailRequest'].responseCode : Math.floor(jsonObject['emailRequest'].responseCode);
}());
}
else
{
emailRequestObject.responseCode = null;
}
if(typeof jsonObject['emailRequest'] === 'object' && 'responseMessage' in jsonObject['emailRequest'])
{
emailRequestObject.responseMessage = (function(){
if(jsonObject['emailRequest'].responseMessage === null)
{
return null;
}
if(typeof jsonObject['emailRequest'].responseMessage !== 'string')
{
return String(jsonObject['emailRequest'].responseMessage);
}
return jsonObject['emailRequest'].responseMessage;
}());
}
else
{
emailRequestObject.responseMessage = null;
}
if(typeof jsonObject['emailRequest'] === 'object' && 'completed' in jsonObject['emailRequest'])
{
emailRequestObject.completed = (function(){
if(typeof jsonObject['emailRequest'].completed !== 'boolean')
{
return Boolean(jsonObject['emailRequest'].completed);
}
return jsonObject['emailRequest'].completed;
}());
}
else
{
emailRequestObject.completed = false;
}
return emailRequestObject;
}());
}
if('status' in jsonObject)
{
model.status = (function(){
if(typeof jsonObject['status'] !== 'string')
{
return String(jsonObject['status']);
}
return jsonObject['status'];
}());
}
if('smsContacts' in jsonObject)
{
model.smsContacts = (function(){
if(Array.isArray(jsonObject['smsContacts']) !== true)
{
return [];
}
return jsonObject['smsContacts'].map((smsContactsItem) => {
return (function(){
let smsContactsItemObject = {};
if(typeof smsContactsItem === 'object' && 'mobileNumber' in smsContactsItem)
{
smsContactsItemObject.mobileNumber = (function(){
if(typeof smsContactsItem.mobileNumber !== 'string')
{
return String(smsContactsItem.mobileNumber);
}
return smsContactsItem.mobileNumber;
}());
}
else
{
smsContactsItemObject.mobileNumber = "";
}
if(typeof smsContactsItem === 'object' && 'firstName' in smsContactsItem)
{
smsContactsItemObject.firstName = (function(){
if(typeof smsContactsItem.firstName !== 'string')
{
return String(smsContactsItem.firstName);
}
return smsContactsItem.firstName;
}());
}
else
{
smsContactsItemObject.firstName = "";
}
if(typeof smsContactsItem === 'object' && 'lastName' in smsContactsItem)
{
smsContactsItemObject.lastName = (function(){
if(smsContactsItem.lastName === null)
{
return null;
}
if(typeof smsContactsItem.lastName !== 'string')
{
return String(smsContactsItem.lastName);
}
return smsContactsItem.lastName;
}());
}
else
{
smsContactsItemObject.lastName = null;
}
return smsContactsItemObject;
}());
});
}());
}
if('emailContacts' in jsonObject)
{
model.emailContacts = (function(){
if(Array.isArray(jsonObject['emailContacts']) !== true)
{
return [];
}
return jsonObject['emailContacts'].map((emailContactsItem) => {
return (function(){
let emailContactsItemObject = {};
if(typeof emailContactsItem === 'object' && 'email' in emailContactsItem)
{
emailContactsItemObject.email = (function(){
if(typeof emailContactsItem.email !== 'string')
{
return String(emailContactsItem.email);
}
return emailContactsItem.email;
}());
}
else
{
emailContactsItemObject.email = "";
}
if(typeof emailContactsItem === 'object' && 'firstName' in emailContactsItem)
{
emailContactsItemObject.firstName = (function(){
if(typeof emailContactsItem.firstName !== 'string')
{
return String(emailContactsItem.firstName);
}
return emailContactsItem.firstName;
}());
}
else
{
emailContactsItemObject.firstName = "";
}
if(typeof emailContactsItem === 'object' && 'lastName' in emailContactsItem)
{
emailContactsItemObject.lastName = (function(){
if(emailContactsItem.lastName === null)
{
return null;
}
if(typeof emailContactsItem.lastName !== 'string')
{
return String(emailContactsItem.lastName);
}
return emailContactsItem.lastName;
}());
}
else
{
emailContactsItemObject.lastName = null;
}
return emailContactsItemObject;
}());
});
}());
}
if('deleted' in jsonObject)
{
model.deleted = (function(){
if(typeof jsonObject['deleted'] !== 'boolean')
{
return Boolean(jsonObject['deleted']);
}
return jsonObject['deleted'];
}());
}
if('updateTimestamp' in jsonObject)
{
model.updateTimestamp = (function(){
if(typeof jsonObject['updateTimestamp'] !== 'string')
{
return new Date(String(jsonObject['updateTimestamp']));
}
return new Date(jsonObject['updateTimestamp']);
}());
}
return model;
}
}
export default PackrunGrowerNotificationModel;
source