tango-api-schema 2.2.127 → 2.2.128

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 (36) hide show
  1. package/index.js +185 -185
  2. package/package.json +25 -25
  3. package/schema/auditConfig.model.js +41 -41
  4. package/schema/binaryAudit.model.js +84 -84
  5. package/schema/camera.model.js +211 -211
  6. package/schema/checklistassignconfig.js +90 -90
  7. package/schema/checklistconfig.js +246 -246
  8. package/schema/checklistlog.js +113 -113
  9. package/schema/client.model.js +671 -671
  10. package/schema/countryCurrency.model.js +17 -17
  11. package/schema/download.js +124 -124
  12. package/schema/emailers.model.js +45 -45
  13. package/schema/fixtureConfig.model.js +72 -72
  14. package/schema/fixtureShelf.model.js +63 -63
  15. package/schema/liveConnection.model.js +54 -54
  16. package/schema/loginAttempt.js +26 -0
  17. package/schema/planoCrestLog.model.js +17 -17
  18. package/schema/planoMapping.model.js +56 -56
  19. package/schema/planoProductDetail.model.js +80 -80
  20. package/schema/planoQrConversionRequest.model.js +61 -61
  21. package/schema/planoStaticData.model.js +17 -17
  22. package/schema/planoTaskCompliance.model.js +50 -50
  23. package/schema/planogram.model.js +66 -66
  24. package/schema/processedchecklist.js +249 -249
  25. package/schema/processedchecklistconfig.js +173 -173
  26. package/schema/revopConfig.model.js +19 -19
  27. package/schema/store.model.js +371 -371
  28. package/schema/storeFixture.model.js +165 -165
  29. package/schema/storeLayout.model.js +66 -66
  30. package/schema/streaming.model.js +29 -29
  31. package/schema/suspiciousActivity.model.js +54 -54
  32. package/schema/taskAssign.model.js +87 -87
  33. package/schema/taskConfig.model.js +115 -115
  34. package/schema/taskProcessed.model.js +245 -245
  35. package/schema/taskProcessedConfig.model.js +128 -128
  36. package/schema/user.model.js +136 -136
@@ -1,671 +1,671 @@
1
- import mongoose from 'mongoose';
2
-
3
- const client = new mongoose.Schema(
4
- {
5
- clientName: {
6
- type: String,
7
- trim: true,
8
- required: true,
9
- unique: true,
10
- },
11
- clientId: {
12
- type: String,
13
- trim: true,
14
- required: true,
15
- unique: true,
16
- },
17
- tangoId: {
18
- type: Number,
19
- require: true,
20
- },
21
- userId: {
22
- type: mongoose.Types.ObjectId,
23
- required: true,
24
- },
25
- planDetails: {
26
- totalStores: {
27
- type: String,
28
- require: true,
29
- },
30
- storeSize: {
31
- type: String,
32
- require: true,
33
- },
34
- totalCamera: {
35
- type: Number,
36
- require: true,
37
- },
38
- subscriptionPeriod: {
39
- type: String,
40
- enum: ['monthly','quarterly','annual'],
41
- },
42
- subscriptionType: {
43
- type: String,
44
- enum: ['free','premium','enterprise'],
45
- },
46
- paymentStatus: {
47
- type: String,
48
- enum: ['free','trial','paid','unbilled','due'],
49
- },
50
- product: [
51
- {
52
- productName: {
53
- type: String,
54
- },
55
- trialStartDate: {
56
- type: Date,
57
- },
58
- trialEndDate: {
59
- type: Date,
60
- },
61
- subscribedDate: {
62
- type: Date
63
- },
64
- status: {
65
- type: String,
66
- enum: ['trial','live'],
67
- default: 'trial'
68
- }
69
- }
70
- ],
71
- },
72
- status: {
73
- type: String,
74
- enum: ['active','deactive','hold','suspended'],
75
- default: 'active'
76
- },
77
- profileDetails: {
78
- logo: {
79
- type: String
80
- },
81
- registeredCompanyName: {
82
- type: String,
83
- },
84
- industry: {
85
- type: String,
86
- enum: ['apparel','footwear','skincare','foodandbeverage','techstartup','grooming','leather','furniture','mattress','customerelectronics','jewellery','interiordesign','ev','fintech','perfume','fashionaccessories','innerwear','nutrition','fashionandlifestyle','eyewear']
87
- },
88
- clientType: {
89
- type: String,
90
- enum: ['partnership','proprietorship','pvtltd','person']
91
- },
92
- registeredAddress: {
93
- type: String,
94
- },
95
- headQuarters: {
96
- type: String,
97
- },
98
- website: {
99
- type: String,
100
- },
101
- },
102
- revopConfig:{
103
- limit:{
104
- type:Number,
105
- default:5
106
- },
107
- },
108
- billingDetails: {
109
- tradeName: {
110
- type: String,
111
- },
112
- gstNumber: {
113
- type: String,
114
- },
115
- authorityName: {
116
- type: String,
117
- },
118
- authorityEmail: {
119
- type: String,
120
- },
121
- billingAddress: {
122
- type: String,
123
- },
124
- companyName: {
125
- type: String,
126
- },
127
- PlaceOfSupply: {
128
- type: String,
129
- },
130
- },
131
- signatoryDetail: {
132
- name: {
133
- type: String,
134
- },
135
- email: {
136
- type: String,
137
- },
138
- number: {
139
- type: String,
140
- },
141
- designation: {
142
- type: String,
143
- },
144
- },
145
- ticketConfigs: {
146
- installationReAssign: {
147
- type: Number,
148
- default:0
149
- },
150
- downTimeType: {
151
- type: Number, // 0 for one camera and 1 for multi cameras
152
- enum:[0,1],
153
- default:0
154
- },
155
- infraReport:{},
156
- infraDownTime: {
157
- type: Number,
158
- default:1,
159
- enum:[1,2,3,4,5,6,8,9,10,11,12]
160
- },
161
- MinFilesCount:{
162
- type: Number,
163
- default:0
164
- },
165
- rcaTicketAssign:{// root cause anlysis
166
- type: Number,
167
- enum:[1,2,3,4,5,6,8,9,10,11,12],
168
- default:1
169
- },
170
- refreshAlert:{
171
- type: Number,
172
- default:1,
173
- enum:[0,1,2,3,4,5,6,8,9,10]
174
- },
175
- statusCheckAlert:{
176
- type: Number,
177
- default:1,
178
- enum:[1,2,3,4,5,6,8,9,10,11,12]
179
- },
180
- accuracyPercentage: {
181
- type: Number, // in less than
182
- default:10
183
- },
184
- reTrain: {
185
- type: Number, // calculate no of past days
186
- enum:[1,2,3,4,5,6,8,9,10,11,12],
187
- default:1
188
- },
189
- emailAlert:{
190
- type: Boolean,
191
- default: false
192
- },
193
- matConfig:{
194
- enabled:{
195
- type: Boolean,
196
- default: false
197
- }
198
- }
199
- },
200
- reportConfigs: {
201
- report: {
202
- type: Boolean,
203
- default:true
204
- },
205
- reportName: {
206
- type: String,
207
- },
208
- },
209
- auditConfigs: {
210
- audit: {
211
- type: Boolean,
212
- default: true
213
- },
214
- traxAudit: {
215
- type: Boolean,
216
- default: false
217
- },
218
- trackAudit: {
219
- type: Boolean,
220
- default: false
221
- },
222
- count:{
223
- type:Number,
224
- default:200
225
- },
226
- ratio:{
227
- type:Number,
228
- default:0.75,
229
- },
230
- queueName: {
231
- type: String,
232
- },
233
- zoneQueueName: {
234
- type: String,
235
- },
236
- trafficQueueName: {
237
- type: String,
238
- },
239
- trackQueueName: {
240
- type: String,
241
- },
242
- traxQueueName: {
243
- unattendedCustomer :{
244
- type:String
245
- },
246
- leftInMiddle:{
247
- type:String
248
- },
249
- uniformDetection:{
250
- type:String
251
- },
252
- mobileDetection:{
253
- type:String
254
- },
255
- cameraAngleChange:{
256
- type:String
257
- },
258
- hygiene:{
259
- type:String
260
- },
261
- eyeTestCamera:{
262
- type:String
263
- },
264
- cleaning:{
265
- type:String
266
- },
267
- scrum:{
268
- type:String
269
- },
270
- openClose:{
271
- type:String
272
- },
273
- anomaly:{
274
- type:String
275
- }
276
- }
277
- },
278
- assignedUsers: {
279
- csm: {
280
- type: Object,
281
- },
282
- ops: {
283
- type: Array,
284
- },
285
- },
286
- featureConfigs: {
287
- open: {
288
- type: String,
289
- default: "10:00:00"
290
- },
291
- close: {
292
- type: String,
293
- default: "23:00:00"
294
- },
295
- infraAlert: {
296
- condition: {
297
- type: String,
298
- default:"<"
299
- },
300
- value: {
301
- type: Number,
302
- default:"1"
303
- },
304
- },
305
- bouncedLimit: {
306
- condition: {
307
- type: String,
308
- default:'<='
309
- },
310
- value: {
311
- type: String,
312
- default: "1"
313
- },
314
- },
315
- missedOpportunityFrom: {
316
- condition: {
317
- type: String,
318
- default: '>'
319
- },
320
- value: {
321
- type: String,
322
- default:'1'
323
- },
324
- },
325
- missedOpportunityTo: {
326
- condition: {
327
- type: String,
328
- default:"<="
329
- },
330
- value: {
331
- type: String,
332
- default:"5"
333
- },
334
- },
335
- conversion: {
336
- condition: {
337
- type: String,
338
- default:">"
339
- },
340
- value: {
341
- type: String,
342
- default:'5'
343
- },
344
- },
345
- billableCalculation: {
346
- type: String,
347
- default:"engagers-count"
348
- },
349
- missedOpportunityCalculation: {
350
- type: String,
351
- default:"engagers-conversion"
352
- },
353
- conversionCalculation: {
354
- type: String,
355
- default:"engagers-count"
356
- },
357
- isNormalized: {
358
- type: Boolean,
359
- default: false,
360
- },
361
- isPasserByData: {
362
- type: Boolean,
363
- default: false,
364
- },
365
- isFootfallDirectory: {
366
- type: Boolean,
367
- default: false,
368
- },
369
- isExcludedArea:{
370
- type:Boolean,
371
- default:true
372
- },
373
- updateFeatureConfig:{
374
- type:Boolean,
375
- default:true
376
- },
377
- isCameraDisabled:{
378
- type:Boolean,
379
- default:false
380
- },
381
- isbillingDisabled:{
382
- type:Boolean,
383
- default:false
384
- },
385
- isNewDashboard:{
386
- type:Boolean,
387
- default:false
388
- },
389
- isFootfallAuditStores:{
390
- type:Boolean,
391
- default:false
392
- },
393
- isNewTraffic:{
394
- type:Boolean,
395
- default:false
396
- },
397
- isNewZone:{
398
- type:Boolean,
399
- default:false
400
- },
401
- isNewReports:{
402
- type:Boolean,
403
- default:false
404
- },
405
- isNOB:{
406
- type:Boolean,
407
- default:false
408
- },
409
- isNewZoneV2:{
410
- type:Boolean,
411
- default:false
412
- },
413
- isTrax:{
414
- type:Boolean,
415
- default:false
416
- },
417
- isControlCenter:{
418
- type:Boolean,
419
- default:false
420
- },
421
- isFootfallDirectoryAudit:{
422
- type:Boolean,
423
- default:false
424
- },
425
- isFootfallDirectoryLimit:{
426
- type:Boolean,
427
- default:false
428
- },
429
- isRevops:{
430
- type:Boolean,
431
- default:false
432
- },
433
- traxDateRange:{
434
- type:Number,
435
- default:30
436
- },
437
- trafficDateRange:{
438
- type:Number,
439
- default:180
440
- },
441
- streamBy:{
442
- type: String,
443
- enum: ["Rtsp", "Edge"],
444
- default: "Rtsp"
445
- },
446
- trackerFF:{
447
- type: Boolean,
448
- default:true
449
- }
450
- },
451
- document: {
452
- addressProof: {
453
- path: {
454
- type: String,
455
-
456
- },
457
- },
458
- gst: {
459
- number: {
460
- type: String,
461
- },
462
- path: {
463
- type: String,
464
-
465
- },
466
- },
467
- pan: {
468
- number: {
469
- type: String,
470
- },
471
- path: {
472
- type: String,
473
-
474
- },
475
- },
476
- cin: {
477
- number: {
478
- type: String,
479
- },
480
- path: {
481
- type: String,
482
-
483
- },
484
- },
485
-
486
- },
487
- price:{
488
- type:Number
489
- },
490
- paymentInvoice: {
491
- proRate: {
492
- type: String,
493
- enum: ['before15','after15'],
494
- default: 'before15',
495
- },
496
- paymentType: {
497
- type:String,
498
- enum: ['online','banktransfer'],
499
- default: 'online',
500
- },
501
- paymentCycle: {
502
- type:String,
503
- },
504
- currencyType: {
505
- type:String
506
- },
507
- invoiceTo:{
508
- type:Array
509
- },
510
- paymentAgreementTo:{
511
- type:Array
512
- },
513
- invoiceOn: {
514
- type:String,
515
- enum: ['lastday','25th'],
516
- default: '25th',
517
- },
518
- extendPaymentPeriodDays: {
519
- type:Number,
520
- default: 5,
521
- },
522
- invoiceCC:{
523
- type:Array
524
- },
525
- PomNumber:{
526
- type:String
527
- }
528
- },
529
- priceType:{
530
- type:String,
531
- enum: ['standard','step'],
532
- default: 'standard',
533
- },
534
- virtualAccount:{
535
- accountNo:{
536
- type:String
537
- },
538
- ifscCode:{
539
- type:String
540
- },
541
- swiftCode:{
542
- type:String
543
- },
544
- branch:{
545
- type:String
546
- }
547
- },
548
- clientApi: {
549
- apiKey: {
550
- type: String,
551
- default: null,
552
- },
553
- status: {
554
- type: Boolean,
555
- default: false,
556
- },
557
- allowedIps: {
558
- type: Array,
559
- default: [ '*' ],
560
- },
561
- },
562
- notifyCsmAssign: {
563
- type: Boolean,
564
- default:false
565
- },
566
- edgeApp:{
567
- password:{
568
- type:String,
569
- },
570
- },
571
- averageTransactionValue: {
572
- type: String,
573
- default: ''
574
- },
575
- domainConfig:{
576
- ssoLogin: {
577
- isEnable: {
578
- type: Boolean,
579
- default: false,
580
- },
581
- domainName: {
582
- type: Array,
583
- },
584
- },
585
- ipWhitelisting: {
586
- enableWhitelisting: {
587
- type: Boolean,
588
- default: false,
589
- },
590
- allowedIps: {
591
- type: Array,
592
- },
593
- },
594
- enableOtp:{
595
- type: Boolean,
596
- default: false,
597
- }
598
- },
599
- storeRadiusConfig: {
600
- type: Number,
601
- default: 200
602
- },
603
- controlCenterConfigs:{
604
- taskList:{
605
- type: [String],
606
- default: ['Hygiene Task','Operations','Maintenence'],
607
- validate: {
608
- validator: function (arr) {
609
- return arr.length >= 1 && arr.length <= 16; // Minimum and maximum length
610
- },
611
- message: 'List must have between 1 and 15 task.',
612
- },
613
- }
614
- },
615
- traxRAWImageUpload: {
616
- type: Boolean,
617
- default:false
618
- },
619
- emailersConfig: {
620
- daily: {
621
- type: Boolean,
622
- default:false
623
- },
624
- weekly: {
625
- type: Boolean,
626
- default:false
627
- },
628
- monthly: {
629
- type: Boolean,
630
- default:false
631
- },
632
- sendTo: {
633
- type: Array,
634
- },
635
- },
636
- clientConfigs: {
637
- exportLimit: {
638
- type: Number,
639
- default: 10000
640
- },
641
- },
642
- traxBlockMobileTimeUpdate: {
643
- type: Boolean,
644
- default:false
645
- },
646
- traxSectionSave: {
647
- type: Boolean,
648
- default:false
649
- },
650
- isCrestPlanogram: {
651
- type: Boolean,
652
- default:false
653
- },
654
- isTangoPlanogram: {
655
- type: Boolean,
656
- default:false
657
- },
658
- traxMonthlyComparison: {
659
- type: Boolean,
660
- default:true
661
- },
662
- },
663
- {
664
- strict: true,
665
- versionKey: false,
666
- timestamps: true,
667
- },
668
- );
669
-
670
-
671
- export default mongoose.model( 'client', client );
1
+ import mongoose from 'mongoose';
2
+
3
+ const client = new mongoose.Schema(
4
+ {
5
+ clientName: {
6
+ type: String,
7
+ trim: true,
8
+ required: true,
9
+ unique: true,
10
+ },
11
+ clientId: {
12
+ type: String,
13
+ trim: true,
14
+ required: true,
15
+ unique: true,
16
+ },
17
+ tangoId: {
18
+ type: Number,
19
+ require: true,
20
+ },
21
+ userId: {
22
+ type: mongoose.Types.ObjectId,
23
+ required: true,
24
+ },
25
+ planDetails: {
26
+ totalStores: {
27
+ type: String,
28
+ require: true,
29
+ },
30
+ storeSize: {
31
+ type: String,
32
+ require: true,
33
+ },
34
+ totalCamera: {
35
+ type: Number,
36
+ require: true,
37
+ },
38
+ subscriptionPeriod: {
39
+ type: String,
40
+ enum: ['monthly','quarterly','annual'],
41
+ },
42
+ subscriptionType: {
43
+ type: String,
44
+ enum: ['free','premium','enterprise'],
45
+ },
46
+ paymentStatus: {
47
+ type: String,
48
+ enum: ['free','trial','paid','unbilled','due'],
49
+ },
50
+ product: [
51
+ {
52
+ productName: {
53
+ type: String,
54
+ },
55
+ trialStartDate: {
56
+ type: Date,
57
+ },
58
+ trialEndDate: {
59
+ type: Date,
60
+ },
61
+ subscribedDate: {
62
+ type: Date
63
+ },
64
+ status: {
65
+ type: String,
66
+ enum: ['trial','live'],
67
+ default: 'trial'
68
+ }
69
+ }
70
+ ],
71
+ },
72
+ status: {
73
+ type: String,
74
+ enum: ['active','deactive','hold','suspended'],
75
+ default: 'active'
76
+ },
77
+ profileDetails: {
78
+ logo: {
79
+ type: String
80
+ },
81
+ registeredCompanyName: {
82
+ type: String,
83
+ },
84
+ industry: {
85
+ type: String,
86
+ enum: ['apparel','footwear','skincare','foodandbeverage','techstartup','grooming','leather','furniture','mattress','customerelectronics','jewellery','interiordesign','ev','fintech','perfume','fashionaccessories','innerwear','nutrition','fashionandlifestyle','eyewear']
87
+ },
88
+ clientType: {
89
+ type: String,
90
+ enum: ['partnership','proprietorship','pvtltd','person']
91
+ },
92
+ registeredAddress: {
93
+ type: String,
94
+ },
95
+ headQuarters: {
96
+ type: String,
97
+ },
98
+ website: {
99
+ type: String,
100
+ },
101
+ },
102
+ revopConfig:{
103
+ limit:{
104
+ type:Number,
105
+ default:5
106
+ },
107
+ },
108
+ billingDetails: {
109
+ tradeName: {
110
+ type: String,
111
+ },
112
+ gstNumber: {
113
+ type: String,
114
+ },
115
+ authorityName: {
116
+ type: String,
117
+ },
118
+ authorityEmail: {
119
+ type: String,
120
+ },
121
+ billingAddress: {
122
+ type: String,
123
+ },
124
+ companyName: {
125
+ type: String,
126
+ },
127
+ PlaceOfSupply: {
128
+ type: String,
129
+ },
130
+ },
131
+ signatoryDetail: {
132
+ name: {
133
+ type: String,
134
+ },
135
+ email: {
136
+ type: String,
137
+ },
138
+ number: {
139
+ type: String,
140
+ },
141
+ designation: {
142
+ type: String,
143
+ },
144
+ },
145
+ ticketConfigs: {
146
+ installationReAssign: {
147
+ type: Number,
148
+ default:0
149
+ },
150
+ downTimeType: {
151
+ type: Number, // 0 for one camera and 1 for multi cameras
152
+ enum:[0,1],
153
+ default:0
154
+ },
155
+ infraReport:{},
156
+ infraDownTime: {
157
+ type: Number,
158
+ default:1,
159
+ enum:[1,2,3,4,5,6,8,9,10,11,12]
160
+ },
161
+ MinFilesCount:{
162
+ type: Number,
163
+ default:0
164
+ },
165
+ rcaTicketAssign:{// root cause anlysis
166
+ type: Number,
167
+ enum:[1,2,3,4,5,6,8,9,10,11,12],
168
+ default:1
169
+ },
170
+ refreshAlert:{
171
+ type: Number,
172
+ default:1,
173
+ enum:[0,1,2,3,4,5,6,8,9,10]
174
+ },
175
+ statusCheckAlert:{
176
+ type: Number,
177
+ default:1,
178
+ enum:[1,2,3,4,5,6,8,9,10,11,12]
179
+ },
180
+ accuracyPercentage: {
181
+ type: Number, // in less than
182
+ default:10
183
+ },
184
+ reTrain: {
185
+ type: Number, // calculate no of past days
186
+ enum:[1,2,3,4,5,6,8,9,10,11,12],
187
+ default:1
188
+ },
189
+ emailAlert:{
190
+ type: Boolean,
191
+ default: false
192
+ },
193
+ matConfig:{
194
+ enabled:{
195
+ type: Boolean,
196
+ default: false
197
+ }
198
+ }
199
+ },
200
+ reportConfigs: {
201
+ report: {
202
+ type: Boolean,
203
+ default:true
204
+ },
205
+ reportName: {
206
+ type: String,
207
+ },
208
+ },
209
+ auditConfigs: {
210
+ audit: {
211
+ type: Boolean,
212
+ default: true
213
+ },
214
+ traxAudit: {
215
+ type: Boolean,
216
+ default: false
217
+ },
218
+ trackAudit: {
219
+ type: Boolean,
220
+ default: false
221
+ },
222
+ count:{
223
+ type:Number,
224
+ default:200
225
+ },
226
+ ratio:{
227
+ type:Number,
228
+ default:0.75,
229
+ },
230
+ queueName: {
231
+ type: String,
232
+ },
233
+ zoneQueueName: {
234
+ type: String,
235
+ },
236
+ trafficQueueName: {
237
+ type: String,
238
+ },
239
+ trackQueueName: {
240
+ type: String,
241
+ },
242
+ traxQueueName: {
243
+ unattendedCustomer :{
244
+ type:String
245
+ },
246
+ leftInMiddle:{
247
+ type:String
248
+ },
249
+ uniformDetection:{
250
+ type:String
251
+ },
252
+ mobileDetection:{
253
+ type:String
254
+ },
255
+ cameraAngleChange:{
256
+ type:String
257
+ },
258
+ hygiene:{
259
+ type:String
260
+ },
261
+ eyeTestCamera:{
262
+ type:String
263
+ },
264
+ cleaning:{
265
+ type:String
266
+ },
267
+ scrum:{
268
+ type:String
269
+ },
270
+ openClose:{
271
+ type:String
272
+ },
273
+ anomaly:{
274
+ type:String
275
+ }
276
+ }
277
+ },
278
+ assignedUsers: {
279
+ csm: {
280
+ type: Object,
281
+ },
282
+ ops: {
283
+ type: Array,
284
+ },
285
+ },
286
+ featureConfigs: {
287
+ open: {
288
+ type: String,
289
+ default: "10:00:00"
290
+ },
291
+ close: {
292
+ type: String,
293
+ default: "23:00:00"
294
+ },
295
+ infraAlert: {
296
+ condition: {
297
+ type: String,
298
+ default:"<"
299
+ },
300
+ value: {
301
+ type: Number,
302
+ default:"1"
303
+ },
304
+ },
305
+ bouncedLimit: {
306
+ condition: {
307
+ type: String,
308
+ default:'<='
309
+ },
310
+ value: {
311
+ type: String,
312
+ default: "1"
313
+ },
314
+ },
315
+ missedOpportunityFrom: {
316
+ condition: {
317
+ type: String,
318
+ default: '>'
319
+ },
320
+ value: {
321
+ type: String,
322
+ default:'1'
323
+ },
324
+ },
325
+ missedOpportunityTo: {
326
+ condition: {
327
+ type: String,
328
+ default:"<="
329
+ },
330
+ value: {
331
+ type: String,
332
+ default:"5"
333
+ },
334
+ },
335
+ conversion: {
336
+ condition: {
337
+ type: String,
338
+ default:">"
339
+ },
340
+ value: {
341
+ type: String,
342
+ default:'5'
343
+ },
344
+ },
345
+ billableCalculation: {
346
+ type: String,
347
+ default:"engagers-count"
348
+ },
349
+ missedOpportunityCalculation: {
350
+ type: String,
351
+ default:"engagers-conversion"
352
+ },
353
+ conversionCalculation: {
354
+ type: String,
355
+ default:"engagers-count"
356
+ },
357
+ isNormalized: {
358
+ type: Boolean,
359
+ default: false,
360
+ },
361
+ isPasserByData: {
362
+ type: Boolean,
363
+ default: false,
364
+ },
365
+ isFootfallDirectory: {
366
+ type: Boolean,
367
+ default: false,
368
+ },
369
+ isExcludedArea:{
370
+ type:Boolean,
371
+ default:true
372
+ },
373
+ updateFeatureConfig:{
374
+ type:Boolean,
375
+ default:true
376
+ },
377
+ isCameraDisabled:{
378
+ type:Boolean,
379
+ default:false
380
+ },
381
+ isbillingDisabled:{
382
+ type:Boolean,
383
+ default:false
384
+ },
385
+ isNewDashboard:{
386
+ type:Boolean,
387
+ default:false
388
+ },
389
+ isFootfallAuditStores:{
390
+ type:Boolean,
391
+ default:false
392
+ },
393
+ isNewTraffic:{
394
+ type:Boolean,
395
+ default:false
396
+ },
397
+ isNewZone:{
398
+ type:Boolean,
399
+ default:false
400
+ },
401
+ isNewReports:{
402
+ type:Boolean,
403
+ default:false
404
+ },
405
+ isNOB:{
406
+ type:Boolean,
407
+ default:false
408
+ },
409
+ isNewZoneV2:{
410
+ type:Boolean,
411
+ default:false
412
+ },
413
+ isTrax:{
414
+ type:Boolean,
415
+ default:false
416
+ },
417
+ isControlCenter:{
418
+ type:Boolean,
419
+ default:false
420
+ },
421
+ isFootfallDirectoryAudit:{
422
+ type:Boolean,
423
+ default:false
424
+ },
425
+ isFootfallDirectoryLimit:{
426
+ type:Boolean,
427
+ default:false
428
+ },
429
+ isRevops:{
430
+ type:Boolean,
431
+ default:false
432
+ },
433
+ traxDateRange:{
434
+ type:Number,
435
+ default:30
436
+ },
437
+ trafficDateRange:{
438
+ type:Number,
439
+ default:180
440
+ },
441
+ streamBy:{
442
+ type: String,
443
+ enum: ["Rtsp", "Edge"],
444
+ default: "Rtsp"
445
+ },
446
+ trackerFF:{
447
+ type: Boolean,
448
+ default:true
449
+ }
450
+ },
451
+ document: {
452
+ addressProof: {
453
+ path: {
454
+ type: String,
455
+
456
+ },
457
+ },
458
+ gst: {
459
+ number: {
460
+ type: String,
461
+ },
462
+ path: {
463
+ type: String,
464
+
465
+ },
466
+ },
467
+ pan: {
468
+ number: {
469
+ type: String,
470
+ },
471
+ path: {
472
+ type: String,
473
+
474
+ },
475
+ },
476
+ cin: {
477
+ number: {
478
+ type: String,
479
+ },
480
+ path: {
481
+ type: String,
482
+
483
+ },
484
+ },
485
+
486
+ },
487
+ price:{
488
+ type:Number
489
+ },
490
+ paymentInvoice: {
491
+ proRate: {
492
+ type: String,
493
+ enum: ['before15','after15'],
494
+ default: 'before15',
495
+ },
496
+ paymentType: {
497
+ type:String,
498
+ enum: ['online','banktransfer'],
499
+ default: 'online',
500
+ },
501
+ paymentCycle: {
502
+ type:String,
503
+ },
504
+ currencyType: {
505
+ type:String
506
+ },
507
+ invoiceTo:{
508
+ type:Array
509
+ },
510
+ paymentAgreementTo:{
511
+ type:Array
512
+ },
513
+ invoiceOn: {
514
+ type:String,
515
+ enum: ['lastday','25th'],
516
+ default: '25th',
517
+ },
518
+ extendPaymentPeriodDays: {
519
+ type:Number,
520
+ default: 5,
521
+ },
522
+ invoiceCC:{
523
+ type:Array
524
+ },
525
+ PomNumber:{
526
+ type:String
527
+ }
528
+ },
529
+ priceType:{
530
+ type:String,
531
+ enum: ['standard','step'],
532
+ default: 'standard',
533
+ },
534
+ virtualAccount:{
535
+ accountNo:{
536
+ type:String
537
+ },
538
+ ifscCode:{
539
+ type:String
540
+ },
541
+ swiftCode:{
542
+ type:String
543
+ },
544
+ branch:{
545
+ type:String
546
+ }
547
+ },
548
+ clientApi: {
549
+ apiKey: {
550
+ type: String,
551
+ default: null,
552
+ },
553
+ status: {
554
+ type: Boolean,
555
+ default: false,
556
+ },
557
+ allowedIps: {
558
+ type: Array,
559
+ default: [ '*' ],
560
+ },
561
+ },
562
+ notifyCsmAssign: {
563
+ type: Boolean,
564
+ default:false
565
+ },
566
+ edgeApp:{
567
+ password:{
568
+ type:String,
569
+ },
570
+ },
571
+ averageTransactionValue: {
572
+ type: String,
573
+ default: ''
574
+ },
575
+ domainConfig:{
576
+ ssoLogin: {
577
+ isEnable: {
578
+ type: Boolean,
579
+ default: false,
580
+ },
581
+ domainName: {
582
+ type: Array,
583
+ },
584
+ },
585
+ ipWhitelisting: {
586
+ enableWhitelisting: {
587
+ type: Boolean,
588
+ default: false,
589
+ },
590
+ allowedIps: {
591
+ type: Array,
592
+ },
593
+ },
594
+ enableOtp:{
595
+ type: Boolean,
596
+ default: false,
597
+ }
598
+ },
599
+ storeRadiusConfig: {
600
+ type: Number,
601
+ default: 200
602
+ },
603
+ controlCenterConfigs:{
604
+ taskList:{
605
+ type: [String],
606
+ default: ['Hygiene Task','Operations','Maintenence'],
607
+ validate: {
608
+ validator: function (arr) {
609
+ return arr.length >= 1 && arr.length <= 16; // Minimum and maximum length
610
+ },
611
+ message: 'List must have between 1 and 15 task.',
612
+ },
613
+ }
614
+ },
615
+ traxRAWImageUpload: {
616
+ type: Boolean,
617
+ default:false
618
+ },
619
+ emailersConfig: {
620
+ daily: {
621
+ type: Boolean,
622
+ default:false
623
+ },
624
+ weekly: {
625
+ type: Boolean,
626
+ default:false
627
+ },
628
+ monthly: {
629
+ type: Boolean,
630
+ default:false
631
+ },
632
+ sendTo: {
633
+ type: Array,
634
+ },
635
+ },
636
+ clientConfigs: {
637
+ exportLimit: {
638
+ type: Number,
639
+ default: 10000
640
+ },
641
+ },
642
+ traxBlockMobileTimeUpdate: {
643
+ type: Boolean,
644
+ default:false
645
+ },
646
+ traxSectionSave: {
647
+ type: Boolean,
648
+ default:false
649
+ },
650
+ isCrestPlanogram: {
651
+ type: Boolean,
652
+ default:false
653
+ },
654
+ isTangoPlanogram: {
655
+ type: Boolean,
656
+ default:false
657
+ },
658
+ traxMonthlyComparison: {
659
+ type: Boolean,
660
+ default:true
661
+ },
662
+ },
663
+ {
664
+ strict: true,
665
+ versionKey: false,
666
+ timestamps: true,
667
+ },
668
+ );
669
+
670
+
671
+ export default mongoose.model( 'client', client );