tango-api-schema 1.0.47 → 1.0.48

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/index.js CHANGED
@@ -24,7 +24,11 @@ import noSourceNormalizedHourlyModel from "./schema/noSourceNormalizedHourly.mod
24
24
  import sourceNormalizedDailyModel from "./schema/sourceNormalizedDaily.model.js";
25
25
  import sourceNormalizedHourlyModel from "./schema/sourceNormalizedHourly.model.js";
26
26
  import sourceModel from "./schema/source.model.js";
27
-
27
+ import zoneModel from "./schema/zone.model.js";
28
+ import revopModel from "./schema/revop.model.js";
29
+ import storeOperationModel from "./schema/storeOperation.model.js";
30
+ import liveDetectionDataModel from "./schema/liveDetectionData.model.js";
31
+ import liveProcessedDataModel from "./schema/liveProcessedData.model.js";
28
32
  export default {
29
33
  clientModel,
30
34
  cameraModel,
@@ -51,5 +55,10 @@ export default {
51
55
  noSourceNormalizedHourlyModel,
52
56
  sourceNormalizedDailyModel,
53
57
  sourceNormalizedHourlyModel,
54
- sourceModel
58
+ sourceModel,
59
+ zoneModel,
60
+ revopModel,
61
+ storeOperationModel,
62
+ liveDetectionDataModel,
63
+ liveProcessedDataModel
55
64
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tango-api-schema",
3
- "version": "1.0.47",
3
+ "version": "1.0.48",
4
4
  "description": "tangoEye model schema",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -0,0 +1,39 @@
1
+ import mongoose from 'mongoose';
2
+ import uniqueValidator from 'mongoose-unique-validator';
3
+
4
+ const liveDetectionSchema = new mongoose.Schema(
5
+ {
6
+ client_id: {
7
+ type: String,
8
+ required: true,
9
+ },
10
+ store_id: {
11
+ type: String,
12
+ required: true,
13
+ },
14
+ date: {
15
+ type: String,
16
+ },
17
+ filename: {
18
+ type: String,
19
+ },
20
+ detection_count: {
21
+ type: Number,
22
+ },
23
+ framecount: {
24
+ type: Number,
25
+ },
26
+ date_iso: {
27
+ type: Date,
28
+ },
29
+ },
30
+ {
31
+ strict: true,
32
+ versionKey: false,
33
+ timestamps: true,
34
+ },
35
+ );
36
+
37
+ liveDetectionSchema.plugin( uniqueValidator );
38
+
39
+ export default mongoose.model( 'livedetectiondata', liveDetectionSchema );
@@ -0,0 +1,360 @@
1
+ import mongoose from 'mongoose';
2
+ import uniqueValidator from 'mongoose-unique-validator';
3
+
4
+ const liveProcessedSchema = new mongoose.Schema(
5
+ {
6
+ client_id: {
7
+ type: String,
8
+ required: true,
9
+ },
10
+ store_id: {
11
+ type: String,
12
+ required: true,
13
+ },
14
+ storeId: {
15
+ type: String,
16
+ required: true,
17
+ },
18
+ date_string: {
19
+ type: String,
20
+ required: true,
21
+ },
22
+ hour: {
23
+ type: String,
24
+ required: true,
25
+ },
26
+ footfall_count: {
27
+ type: Number,
28
+ default: '',
29
+ },
30
+ footfall_rate: {
31
+ type: Number,
32
+ default: '',
33
+ },
34
+ bounced_footfall_count: {
35
+ type: Number,
36
+ default: '',
37
+ },
38
+ bounced_footfall_rate: {
39
+ type: Number,
40
+ default: '',
41
+ },
42
+ engagers_count: {
43
+ type: Number,
44
+ default: '',
45
+ },
46
+ engagers_rate: {
47
+ type: Number,
48
+ default: '',
49
+ },
50
+ billable_entities_count: {
51
+ type: Number,
52
+ default: '',
53
+ },
54
+ detection_count: {
55
+ type: Number,
56
+ },
57
+ billable_entities_rate: {
58
+ type: Number,
59
+ default: '',
60
+ },
61
+ missed_opportunity_count: {
62
+ type: Number,
63
+ default: '',
64
+ },
65
+ after_audit_count: {
66
+ type: Number,
67
+ default: '',
68
+ },
69
+ before_audit_count: {
70
+ type: Number,
71
+ default: '',
72
+ },
73
+ missed_opportunity_rate: {
74
+ type: Number,
75
+ default: '',
76
+ },
77
+ conversion_count: {
78
+ type: Number,
79
+ default: '',
80
+ },
81
+ conversion_rate: {
82
+ type: Number,
83
+ default: '',
84
+ },
85
+ down_time: {
86
+ type: Number,
87
+ default: '',
88
+ },
89
+ dwell_time: {
90
+ type: Number,
91
+ default: '',
92
+ },
93
+ individual_footfall: {
94
+ type: Number,
95
+ default: '',
96
+ },
97
+ group_footfall: {
98
+ type: Number,
99
+ default: '',
100
+ },
101
+ individual_engagers: {
102
+ type: Number,
103
+ default: '',
104
+ },
105
+ group_engagers: {
106
+ type: Number,
107
+ default: '',
108
+ },
109
+ age_12_below: {
110
+ type: Number,
111
+ default: '',
112
+ },
113
+ age_13_19: {
114
+ type: Number,
115
+ default: '',
116
+ },
117
+ age_20_30: {
118
+ type: Number,
119
+ default: '',
120
+ },
121
+ age_31_45: {
122
+ type: Number,
123
+ default: '',
124
+ },
125
+ age_46_59: {
126
+ type: Number,
127
+ default: '',
128
+ },
129
+ age_60_above: {
130
+ type: Number,
131
+ default: '',
132
+ },
133
+ male_rate: {
134
+ type: Number,
135
+ default: '',
136
+ },
137
+ female_rate: {
138
+ type: Number,
139
+ default: '',
140
+ },
141
+ male_count: {
142
+ type: Number,
143
+ default: '',
144
+ },
145
+ female_count: {
146
+ type: Number,
147
+ default: '',
148
+ },
149
+ bounced_footfall_demographics: {
150
+ individual_footfall: {
151
+ type: Number,
152
+ default: '',
153
+ },
154
+ group_footfall: {
155
+ type: Number,
156
+ default: '',
157
+ },
158
+ individual_engagers: {
159
+ type: Number,
160
+ default: '',
161
+ },
162
+ group_engagers: {
163
+ type: Number,
164
+ default: '',
165
+ },
166
+ age_12_below: {
167
+ type: Number,
168
+ default: '',
169
+ },
170
+ age_13_19: {
171
+ type: Number,
172
+ default: '',
173
+ },
174
+ age_20_30: {
175
+ type: Number,
176
+ default: '',
177
+ },
178
+ age_31_45: {
179
+ type: Number,
180
+ default: '',
181
+ },
182
+ age_46_59: {
183
+ type: Number,
184
+ default: '',
185
+ },
186
+ age_60_above: {
187
+ type: Number,
188
+ default: '',
189
+ },
190
+ male_rate: {
191
+ type: Number,
192
+ default: '',
193
+ },
194
+ female_rate: {
195
+ type: Number,
196
+ default: '',
197
+ },
198
+ },
199
+ missed_opportunity_demographics: {
200
+ individual_footfall: {
201
+ type: Number,
202
+ default: '',
203
+ },
204
+ group_footfall: {
205
+ type: Number,
206
+ default: '',
207
+ },
208
+ individual_engagers: {
209
+ type: Number,
210
+ default: '',
211
+ },
212
+ group_engagers: {
213
+ type: Number,
214
+ default: '',
215
+ },
216
+ age_12_below: {
217
+ type: Number,
218
+ default: '',
219
+ },
220
+ age_13_19: {
221
+ type: Number,
222
+ default: '',
223
+ },
224
+ age_20_30: {
225
+ type: Number,
226
+ default: '',
227
+ },
228
+ age_31_45: {
229
+ type: Number,
230
+ default: '',
231
+ },
232
+ age_46_59: {
233
+ type: Number,
234
+ default: '',
235
+ },
236
+ age_60_above: {
237
+ type: Number,
238
+ default: '',
239
+ },
240
+ male_rate: {
241
+ type: Number,
242
+ default: '',
243
+ },
244
+ female_rate: {
245
+ type: Number,
246
+ default: '',
247
+ },
248
+ },
249
+ conversion_demographics: {
250
+ individual_footfall: {
251
+ type: Number,
252
+ default: '',
253
+ },
254
+ group_footfall: {
255
+ type: Number,
256
+ default: '',
257
+ },
258
+ individual_engagers: {
259
+ type: Number,
260
+ default: '',
261
+ },
262
+ group_engagers: {
263
+ type: Number,
264
+ default: '',
265
+ },
266
+ age_12_below: {
267
+ type: Number,
268
+ default: '',
269
+ },
270
+ age_13_19: {
271
+ type: Number,
272
+ default: '',
273
+ },
274
+ age_20_30: {
275
+ type: Number,
276
+ default: '',
277
+ },
278
+ age_31_45: {
279
+ type: Number,
280
+ default: '',
281
+ },
282
+ age_46_59: {
283
+ type: Number,
284
+ default: '',
285
+ },
286
+ age_60_above: {
287
+ type: Number,
288
+ default: '',
289
+ },
290
+ male_rate: {
291
+ type: Number,
292
+ default: '',
293
+ },
294
+ female_rate: {
295
+ type: Number,
296
+ default: '',
297
+ },
298
+ },
299
+ average_head_count: {
300
+ type: Number,
301
+ default: '',
302
+ },
303
+ opening_time: {
304
+ type: String,
305
+ default: '',
306
+ },
307
+ closing_time: {
308
+ type: String,
309
+ default: '',
310
+ },
311
+ operating_hr: {
312
+ type: String,
313
+ default: '',
314
+ },
315
+ average_time_spend: {
316
+ type: Number,
317
+ default: '',
318
+ },
319
+ date_iso: {
320
+ type: Date,
321
+ },
322
+ detection_count: {
323
+ type: Number,
324
+ default: 0,
325
+ },
326
+ bounced_group_count: {
327
+ type: Number,
328
+ default: 0,
329
+ },
330
+ engagers_group_count: {
331
+ type: Number,
332
+ default: 0,
333
+ },
334
+ conversion_group_count: {
335
+ type: Number,
336
+ default: 0,
337
+ },
338
+ config_down_time: {
339
+ type: Number,
340
+ default: 0,
341
+ },
342
+ verified: {
343
+ type: Boolean,
344
+ default: false,
345
+ },
346
+ predicted_footfall_count: {
347
+ type: Number,
348
+ default: 0,
349
+ },
350
+ },
351
+ {
352
+ strict: true,
353
+ versionKey: false,
354
+ timestamps: true,
355
+ },
356
+ );
357
+
358
+ liveProcessedSchema.plugin( uniqueValidator );
359
+
360
+ export default mongoose.model( 'liveprocesseddata', liveProcessedSchema );
@@ -0,0 +1,93 @@
1
+ import mongoose from 'mongoose';
2
+ import uniqueValidator from 'mongoose-unique-validator';
3
+
4
+ const revopSchema = new mongoose.Schema(
5
+ {
6
+ client_id: {
7
+ type: String,
8
+ trim: true,
9
+ },
10
+ date_iso: {
11
+ type: Date,
12
+ },
13
+ store_id: {
14
+ type: String,
15
+ trim: true,
16
+ },
17
+ date_string: {
18
+ type: String,
19
+ trim: true,
20
+ },
21
+ customer_intelligence_data: [
22
+ {
23
+
24
+ client_id: {
25
+ type: String,
26
+ trim: true,
27
+ },
28
+ date_time: {
29
+ type: Date,
30
+ },
31
+ store_id: {
32
+ type: String,
33
+ trim: true,
34
+ },
35
+ temp_id: {
36
+ type: String,
37
+ trim: true,
38
+ },
39
+ entry_time: {
40
+ type: Date,
41
+ },
42
+ exit_time: {
43
+ type: Date,
44
+ },
45
+ time_spent: {
46
+ type: Number,
47
+ trim: true,
48
+ },
49
+ age: {
50
+ type: Number,
51
+ trim: true,
52
+ },
53
+ path: {
54
+ type: String,
55
+ trim: true,
56
+ },
57
+ gender: {
58
+ type: String,
59
+ trim: true,
60
+ },
61
+ hour: {
62
+ type: Number,
63
+ trim: true,
64
+ },
65
+ zone_details: [ {
66
+ zone_name: {
67
+ type: String,
68
+ trim: true,
69
+ },
70
+ time_spent: {
71
+ type: Number,
72
+ trim: true,
73
+ },
74
+ entry_time: {
75
+ type: Date,
76
+ },
77
+ exit_time: {
78
+ type: Date,
79
+ },
80
+ } ],
81
+ },
82
+ ],
83
+ },
84
+ {
85
+ strict: true,
86
+ versionKey: false,
87
+ timestamps: true,
88
+ },
89
+ );
90
+
91
+ revopSchema.plugin( uniqueValidator );
92
+
93
+ export default mongoose.model( 'revopsourcedata', revopSchema );
@@ -0,0 +1,66 @@
1
+ import mongoose from 'mongoose';
2
+ import uniqueValidator from 'mongoose-unique-validator';
3
+
4
+ const storeCompletionStatusSchema = new mongoose.Schema(
5
+ {
6
+ clientId: {
7
+ type: String,
8
+ required: true,
9
+ },
10
+ storeId: {
11
+ type: String,
12
+ required: true,
13
+ },
14
+ date: {
15
+ type: String,
16
+ },
17
+ yolo: {
18
+ status: {
19
+ type: String,
20
+ },
21
+ initiatedEpoch: {
22
+ type: Number,
23
+ },
24
+ completedEpoch: {
25
+ type: Number,
26
+ },
27
+ },
28
+ reid: {
29
+ status: {
30
+ type: String,
31
+ },
32
+ completedEpoch: {
33
+ type: Number,
34
+ },
35
+ initiatedEpoch: {
36
+ type: Number,
37
+ },
38
+ },
39
+ feature: {
40
+ status: {
41
+ type: String,
42
+ },
43
+ completedEpoch: {
44
+ type: Number,
45
+ },
46
+ initiatedEpoch: {
47
+ type: Number,
48
+ },
49
+ },
50
+ isFileDetect: {
51
+ type: Boolean,
52
+ },
53
+ processType: {
54
+ type: String,
55
+ },
56
+ },
57
+ {
58
+ strict: true,
59
+ versionKey: false,
60
+ timestamps: true,
61
+ },
62
+ );
63
+
64
+ storeCompletionStatusSchema.plugin( uniqueValidator );
65
+
66
+ export default mongoose.model( 'storeOperation', storeCompletionStatusSchema );
@@ -0,0 +1,209 @@
1
+ import mongoose from 'mongoose';
2
+ import uniqueValidator from 'mongoose-unique-validator';
3
+
4
+ const zoneSchema = new mongoose.Schema(
5
+ {
6
+ client_id: {
7
+ type: String,
8
+ required: true,
9
+ },
10
+ store_id: {
11
+ type: String,
12
+ required: true,
13
+ },
14
+ store_name: {
15
+ type: String,
16
+ required: true,
17
+ },
18
+ date_string: {
19
+ type: String,
20
+ },
21
+ date_iso: {
22
+ type: Date,
23
+ },
24
+ zoneName: {
25
+ type: String,
26
+ required: true,
27
+ },
28
+ periodicityType: {
29
+ type: String,
30
+ },
31
+ start: {
32
+ type: String,
33
+ },
34
+ end: {
35
+ type: String,
36
+ },
37
+ imgUrl: [
38
+ {
39
+ stream_name: { type: String, default: '' },
40
+ url: { type: String, default: '' },
41
+ },
42
+ ],
43
+ footfall_count: {
44
+ type: Number,
45
+ default: 0,
46
+ },
47
+ bounced_footfall_count: {
48
+ type: Number,
49
+ default: 0,
50
+ },
51
+ bounced_footfall_rate: {
52
+ type: Number,
53
+ default: '',
54
+ },
55
+ engagers_count: {
56
+ type: Number,
57
+ default: 0,
58
+ },
59
+ engagers_rate: {
60
+ type: Number,
61
+ default: '',
62
+ },
63
+ concentration_rate: {
64
+ type: Number,
65
+ default: '',
66
+ },
67
+ dwell_time: {
68
+ type: Number,
69
+ default: 0,
70
+ },
71
+ average_time_spend: {
72
+ type: Number,
73
+ default: 0,
74
+ },
75
+ age_12_below: {
76
+ type: Number,
77
+ default: 0,
78
+ },
79
+ age_13_19: {
80
+ type: Number,
81
+ default: 0,
82
+ },
83
+ age_20_30: {
84
+ type: Number,
85
+ default: 0,
86
+ },
87
+ age_31_45: {
88
+ type: Number,
89
+ default: 0,
90
+ },
91
+ age_46_59: {
92
+ type: Number,
93
+ default: 0,
94
+ },
95
+ age_60_above: {
96
+ type: Number,
97
+ default: 0,
98
+ },
99
+ age_31_40: {
100
+ type: Number,
101
+ default: '',
102
+ },
103
+ age_41_50: {
104
+ type: Number,
105
+ default: '',
106
+ },
107
+ age_51_60: {
108
+ type: Number,
109
+ default: '',
110
+ },
111
+ age_range: {
112
+ type: String,
113
+ },
114
+ age_12_below_rate: {
115
+ type: Number,
116
+ default: '',
117
+ },
118
+ age_13_19_rate: {
119
+ type: Number,
120
+ default: '',
121
+ },
122
+ age_20_30_rate: {
123
+ type: Number,
124
+ default: '',
125
+ },
126
+ age_31_45_rate: {
127
+ type: Number,
128
+ default: '',
129
+ },
130
+ age_46_59_rate: {
131
+ type: Number,
132
+ default: '',
133
+ },
134
+ age_60_above_rate: {
135
+ type: Number,
136
+ default: '',
137
+ },
138
+ age_31_40_rate: {
139
+ type: Number,
140
+ default: '',
141
+ },
142
+ age_41_50_rate: {
143
+ type: Number,
144
+ default: '',
145
+ },
146
+ age_51_60_rate: {
147
+ type: Number,
148
+ default: '',
149
+ },
150
+ male_count: {
151
+ type: Number,
152
+ default: 0,
153
+ },
154
+ male_rate: {
155
+ type: Number,
156
+ default: '',
157
+ },
158
+ female_count: {
159
+ type: Number,
160
+ default: 0,
161
+ },
162
+ female_rate: {
163
+ type: Number,
164
+ default: '',
165
+ },
166
+ // added fields for datalake
167
+ type: {
168
+ type: String,
169
+ enum: [ 'day', 'week', 'month' ],
170
+ default: 'day',
171
+ },
172
+ year: {
173
+ type: Number,
174
+ },
175
+ week_id: {
176
+ type: Number,
177
+ },
178
+ month_id: {
179
+ type: Number,
180
+ },
181
+ start_date_iso: {
182
+ type: Date,
183
+ },
184
+ end_date_iso: {
185
+ type: Date,
186
+ },
187
+ start_date_string: {
188
+ type: String,
189
+ required: true,
190
+ },
191
+ end_date_string: {
192
+ type: String,
193
+ required: true,
194
+ },
195
+ type_count: { // finding avg dwell time
196
+ type: Number,
197
+ default: 1,
198
+ },
199
+ },
200
+ {
201
+ strict: true,
202
+ versionKey: false,
203
+ timestamps: true,
204
+ },
205
+ );
206
+
207
+ zoneSchema.plugin( uniqueValidator );
208
+
209
+ export default mongoose.model( 'zone', zoneSchema );