@dhyasama/totem-models 9.16.0 → 9.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/Financials.js +32 -12
  2. package/package.json +1 -1
package/lib/Financials.js CHANGED
@@ -63,13 +63,15 @@ module.exports = function(mongoose, config) {
63
63
 
64
64
  uuid: { type: String },
65
65
 
66
- managedServices: { type: Boolean, default: false }, // to be folded into review
66
+ managedServices: { type: Boolean, default: false }, // to be transformed into review
67
67
  review: { type: Boolean, default: false },
68
68
 
69
69
  // In Progress -> Delivered or Opened
70
- // Not Scheduled to be removed
70
+ // Not Scheduled -> Completed
71
71
  // Scheduled to be removed
72
72
  status: { type: String, enum: ['Delivered', 'Opened', 'Overdue', 'In Review', 'Completed', 'Archived', 'In Progress', 'Not Scheduled', 'Scheduled'] },
73
+
74
+ // to be removed
73
75
  action: { type: String },
74
76
 
75
77
  year: { type: Number, default: 0 },
@@ -171,12 +173,13 @@ module.exports = function(mongoose, config) {
171
173
 
172
174
  company: {
173
175
 
174
- // to be nested under initial and reminders, and removed
176
+ // to be nested under initial/reminders and removed
175
177
  email: {
176
178
  subject: { type: String, trim: true },
177
179
  body: { type: String, trim: true }
178
180
  },
179
181
 
182
+ // to be nested under initial/reminders/rejections and removed
180
183
  sendTo: [{
181
184
  email: { type: String, trim: true },
182
185
  name: { type: String, trim: true }
@@ -192,6 +195,10 @@ module.exports = function(mongoose, config) {
192
195
  subject: { type: String, trim: true },
193
196
  body: { type: String, trim: true }
194
197
  },
198
+ sendTo: [{
199
+ email: { type: String, trim: true },
200
+ name: { type: String, trim: true }
201
+ }]
195
202
  },
196
203
 
197
204
  reminders: [{
@@ -203,15 +210,23 @@ module.exports = function(mongoose, config) {
203
210
  email: {
204
211
  subject: { type: String, trim: true },
205
212
  body: { type: String, trim: true }
206
- }
213
+ },
214
+ sendTo: [{
215
+ email: { type: String, trim: true },
216
+ name: { type: String, trim: true }
217
+ }]
207
218
  }],
208
219
 
209
220
  rejections: [{
210
- sendOn: { type: Date, required: false },
221
+ sendOn: { type: Date, required: false }, // to be removed
211
222
  sentOn: { type: Date, required: false },
212
- sentToQueue: { type: Boolean, default: false },
213
223
  postmarkMessageId: { type: String, trim: true },
214
- status: { type: String, enum: [null, 'Sent', 'Bounced', 'Delivered', 'Opened', 'Clicked']}
224
+ sentToQueue: { type: Boolean, default: false }, // to be removed?
225
+ status: { type: String, enum: [null, 'Sent', 'Bounced', 'Delivered', 'Opened', 'Clicked']},
226
+ sendTo: [{
227
+ email: { type: String, trim: true },
228
+ name: { type: String, trim: true }
229
+ }]
215
230
  }]
216
231
 
217
232
  },
@@ -786,18 +801,23 @@ module.exports = function(mongoose, config) {
786
801
  var isReviewed = snapshot.reviewedOn;
787
802
  var isRejected = snapshot.rejection;
788
803
  var isArchived = snapshot.archivedOn;
789
- var isOverdue = moment(snapshot.dueOn).isBefore(new Date());
790
- var isOpened = snapshot.action == 'Opened' || snapshot.action == 'Clicked';
791
- var isDelivered = snapshot.action == 'Delivered';
804
+ var isOverdue = moment(new Date()).isAfter(moment(snapshot.dueOn));
805
+
806
+ var isOpened = false;
807
+ var isDelivered = false;
808
+ if(snapshot.notifications && snapshot.notifications.company && snapshot.notifications.company.initial) {
809
+ isOpened = snapshot.notifications.company.initial.status && snapshot.notifications.company.initial.status == 'Opened' || snapshot.notifications.company.initial.status == 'Clicked';
810
+ isDelivered = snapshot.notifications.company.initial.sentOn;
811
+ }
792
812
 
793
813
  if(!snapshot.uuid) snapshot.status = 'Completed'; // no uuid means the snapshot was created from the google sheet and should always be completed
794
814
  else if(needsReview && isReviewed) snapshot.status = 'Completed';
795
815
  else if(!needsReview && isSubmitted) snapshot.status = 'Completed';
796
- else if(needsReview && isSubmitted && !isReviewed) snapshot.status = 'In Review';
797
816
  else if(isArchived) snapshot.status = 'Archived';
817
+ else if(needsReview && isSubmitted && !isReviewed) snapshot.status = 'In Review';
798
818
  else if(isOverdue) snapshot.status = 'Overdue';
799
819
  else if(isDelivered && isOpened) snapshot.status = 'Opened';
800
- else snapshot.status = 'Delivered';
820
+ else if(isDelivered) snapshot.status = 'Delivered';
801
821
 
802
822
  });
803
823
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhyasama/totem-models",
3
- "version": "9.16.0",
3
+ "version": "9.18.0",
4
4
  "author": "Jason Reynolds",
5
5
  "license": "UNLICENSED",
6
6
  "description": "Models for Totem platform",