@dhyasama/totem-models 3.4.1 → 3.5.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.
package/lib/Financials.js CHANGED
@@ -20,58 +20,63 @@ module.exports = function(mongoose, config) {
20
20
  customer: { type: Schema.ObjectId, ref: 'Organization', required: true, index: true },
21
21
 
22
22
  asOfDate: { type: Date, required: true },
23
- monthlyNetBurn: { type: Number, default: 0 },
24
- monthsOfRunway: { type: Number, default: 0 },
25
- totalCash: { type: Number, default: 0 },
26
- totalDebt: { type: Number, default: 0 },
27
-
28
- revenue: {
29
- ytd: { type: Number, default: 0 },
30
- projected: { type: Number, default: 0 },
31
- past: [{
32
- year: { type: Number, default: 0 },
33
- amount: { type: Number, default: 0 }
34
- }]
35
- },
36
-
37
- expenses: {
38
- ytd: { type: Number, default: 0 },
39
- projected: { type: Number, default: 0 },
40
- past: [{
41
- year: { type: Number, default: 0 },
42
- amount: { type: Number, default: 0 }
43
- }]
44
- },
45
-
46
- grossProfit: {
47
- ytd: { type: Number, default: 0 },
48
- projected: { type: Number, default: 0 },
49
- past: [{
50
- year: { type: Number, default: 0 },
51
- amount: { type: Number, default: 0 }
52
- }]
53
- },
54
-
55
- operatingIncome: {
56
- ytd: { type: Number, default: 0 },
57
- projected: { type: Number, default: 0 },
58
- past: [{
59
- year: { type: Number, default: 0 },
60
- amount: { type: Number, default: 0 }
61
- }]
62
- },
63
23
 
64
- // Catch-all for customer specific key-value pairs from sheet that aren't supported by our schema
65
- details: [{
66
- key: { type: String, trim: true, required: true },
67
- value: { type: String, trim: true, required: true },
68
- _id: false
24
+ currency: { type: String, required: true, default: 'USD' },
25
+
26
+ snapshots: [{
27
+
28
+ year: { type: Number, default: 0 },
29
+ quarter: { type: String, enum: ['all', 'q1', 'q2', 'q3', 'q4'] },
30
+
31
+ monthlyNetBurn: { type: Number, default: 0 },
32
+ monthsOfRunway: { type: Number, default: 0 },
33
+ totalCash: { type: Number, default: 0 },
34
+ totalDebt: { type: Number, default: 0 },
35
+
36
+ revenue: {
37
+ amount: { type: Number, default: 0 },
38
+ projected: { type: Number, default: 0 },
39
+ breakdown: [{
40
+ subcategory: { type: String, trim: true },
41
+ amount: { type: Number, default: 0 }
42
+ }]
43
+ },
44
+ operatingExpenses: {
45
+ amount: { type: Number, default: 0 },
46
+ projected: { type: Number, default: 0 },
47
+ breakdown: [{
48
+ subcategory: { type: String, trim: true },
49
+ amount: { type: Number, default: 0 }
50
+ }]
51
+ },
52
+ grossProfit: {
53
+ amount: { type: Number, default: 0 },
54
+ projected: { type: Number, default: 0 },
55
+ breakdown: [{
56
+ subcategory: { type: String, trim: true },
57
+ amount: { type: Number, default: 0 }
58
+ }]
59
+ },
60
+ operatingIncome: {
61
+ amount: { type: Number, default: 0 },
62
+ projected: { type: Number, default: 0 },
63
+ breakdown: [{
64
+ subcategory: { type: String, trim: true },
65
+ amount: { type: Number, default: 0 }
66
+ }]
67
+ },
68
+
69
+ // Catch-all for customer specific key-value pairs from sheet that aren't supported by our schema
70
+ details: [{
71
+ key: { type: String, trim: true },
72
+ value: { type: String, trim: true },
73
+ _id: false
74
+ }]
75
+
69
76
  }],
70
77
 
71
78
  });
72
79
 
73
-
74
-
75
80
  ///////////////////////////////////////////////////////////////////////////////////////
76
81
  // VIRTUALS
77
82
  // Properties that are not persisted to the database
@@ -133,12 +138,12 @@ module.exports = function(mongoose, config) {
133
138
 
134
139
  Financials.post('init', function(doc, next) {
135
140
 
136
- doc.revenue.past = _.sortBy(doc.revenue.past, '-year');
137
- doc.expenses.past = _.sortBy(doc.expenses.past, '-year');
138
- doc.grossProfit.past = _.sortBy(doc.grossProfit.past, '-year');
139
- doc.operatingIncome.past = _.sortBy(doc.operatingIncome.past, '-year');
141
+ // doc.revenue.past = _.sortBy(doc.revenue.past, '-year');
142
+ // doc.expenses.past = _.sortBy(doc.expenses.past, '-year');
143
+ // doc.grossProfit.past = _.sortBy(doc.grossProfit.past, '-year');
144
+ // doc.operatingIncome.past = _.sortBy(doc.operatingIncome.past, '-year');
140
145
 
141
- return next();
146
+ // return next();
142
147
 
143
148
  });
144
149
 
@@ -1333,12 +1333,17 @@ module.exports = function(mongoose, config) {
1333
1333
  var cleanWebsites = function cleanWebsites() {
1334
1334
 
1335
1335
  // Format website
1336
- if (self.website) self.website = utils.getDomain(self.website);
1336
+ if (self.website) {
1337
+ self.website = utils.getDomain(self.website);
1338
+ self.website = self.website.replace('http://', '').replace('https://', '');
1339
+ }
1337
1340
 
1338
1341
  // Format website aliases
1339
1342
  if (self.websiteAliases && self.websiteAliases.length >= 1) {
1340
1343
  self.websiteAliases = _.map(self.websiteAliases, function(alias) {
1341
- return utils.getDomain(alias);
1344
+ var website = utils.getDomain(alias);
1345
+ website = website.replace('http://', '').replace('https://', '');
1346
+ return utils.getDomain(website);
1342
1347
  });
1343
1348
  }
1344
1349
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhyasama/totem-models",
3
- "version": "3.4.1",
3
+ "version": "3.5.0",
4
4
  "author": "Jason Reynolds",
5
5
  "license": "UNLICENSED",
6
6
  "description": "Models for Totem platform",
@@ -15,13 +15,13 @@
15
15
  "@dhyasama/ffvc-crypto": "^1.0.0",
16
16
  "@dhyasama/ffvc-geoip": "^1.0.0",
17
17
  "@dhyasama/ffvc-s3": "^1.0.0",
18
- "@dhyasama/ffvc-utilities": "^2.3.1",
18
+ "@dhyasama/ffvc-utilities": "^2.4.0",
19
19
  "async": "^2.6.1",
20
20
  "awesome-phonenumber": "^1.0.14",
21
21
  "bcrypt": "^0.8.0",
22
22
  "bluebird": "^3.5.0",
23
23
  "escape-string-regexp": "^1.0.5",
24
- "moment": "^2.22.1",
24
+ "moment": "^2.22.2",
25
25
  "mongoose-deep-populate": "^3.0.0",
26
26
  "mongoose-filter-denormalize": "^0.2.1",
27
27
  "mongoose-post-find": "0.0.2",
package/.npmignore DELETED
@@ -1,14 +0,0 @@
1
- lib-cov
2
- *.seed
3
- *.log
4
- *.csv
5
- *.dat
6
- *.out
7
- *.pid
8
- *.gz
9
-
10
- npm-debug.log
11
- node_modules
12
-
13
- .DS_Store
14
- .idea