tango-api-schema 3.0.2 → 3.0.4

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 (100) hide show
  1. package/index.js +197 -197
  2. package/package.json +25 -26
  3. package/schema/aiTicketConfig.js +42 -42
  4. package/schema/appVersion.js +39 -39
  5. package/schema/applicationDefault.model.js +24 -24
  6. package/schema/assignAudit.model.js +55 -55
  7. package/schema/auditConfig.model.js +41 -41
  8. package/schema/auditLogs.model.js +77 -77
  9. package/schema/auditStoreData.model.js +56 -56
  10. package/schema/auditUserWallet.model.js +98 -98
  11. package/schema/auditUsers.model.js +53 -53
  12. package/schema/authentication.model.js +27 -27
  13. package/schema/basePricing.model.js +28 -28
  14. package/schema/billing.model.js +99 -99
  15. package/schema/binaryAudit.model.js +84 -84
  16. package/schema/camera.model.js +211 -211
  17. package/schema/checklistassignconfig.js +90 -90
  18. package/schema/checklistconfig.js +256 -256
  19. package/schema/checklistlog.js +113 -113
  20. package/schema/checklistquestionconfig.js +153 -153
  21. package/schema/client.model.js +675 -675
  22. package/schema/clientRequest.model.js +38 -38
  23. package/schema/cluster.model.js +70 -70
  24. package/schema/controlCenterTemplateList.model.js +39 -39
  25. package/schema/countryCodes.model.js +26 -26
  26. package/schema/countryCurrency.model.js +17 -17
  27. package/schema/dailyPricing.model.js +86 -86
  28. package/schema/dataMismatchDraft.model.js +22 -22
  29. package/schema/domain.js +18 -18
  30. package/schema/download.js +124 -124
  31. package/schema/edgeAppVersion.model.js +33 -33
  32. package/schema/edgeappAuth.model.js +30 -30
  33. package/schema/emailers.model.js +45 -45
  34. package/schema/empDetectionOutput.model.js +67 -67
  35. package/schema/externalParameter.model.js +241 -241
  36. package/schema/eyetest.model.js +18 -18
  37. package/schema/fitting.model.js +52 -52
  38. package/schema/fixtureConfig.model.js +202 -206
  39. package/schema/fixtureLibrary.model.js +164 -164
  40. package/schema/fixtureShelf.model.js +72 -72
  41. package/schema/group.model.js +34 -34
  42. package/schema/hotjar.model.js +11 -11
  43. package/schema/infraReason.model.js +44 -44
  44. package/schema/internalAuth.model.js +35 -35
  45. package/schema/invoice.model.js +104 -104
  46. package/schema/ipLogs.model.js +37 -37
  47. package/schema/lead.model.js +76 -76
  48. package/schema/lenskartEmployeeMapping.model.js +63 -63
  49. package/schema/liveConnection.model.js +54 -54
  50. package/schema/locusOrder.model.js +154 -154
  51. package/schema/locusOrderUser.model.js +14 -14
  52. package/schema/loginAttempt.model.js +26 -26
  53. package/schema/lowcountReason.model.js +44 -44
  54. package/schema/mailOnlyuser.model.js +42 -42
  55. package/schema/matLog.model.js +26 -26
  56. package/schema/nobBilling.model.js +41 -41
  57. package/schema/notification.model.js +33 -33
  58. package/schema/otp.model.js +25 -25
  59. package/schema/paymentAccount.model.js +60 -60
  60. package/schema/planoCompliance.model.js +62 -62
  61. package/schema/planoCrestLog.model.js +17 -17
  62. package/schema/planoMapping.model.js +56 -56
  63. package/schema/planoProductCategoryDetails.model.js +33 -33
  64. package/schema/planoProductDetail.model.js +63 -63
  65. package/schema/planoQrConversionRequest.model.js +61 -61
  66. package/schema/planoStaticData.model.js +17 -17
  67. package/schema/planoTaskCompliance.model.js +244 -244
  68. package/schema/planoVmDetail.model.js +63 -63
  69. package/schema/planogram.model.js +66 -66
  70. package/schema/processedchecklist.js +249 -249
  71. package/schema/processedchecklistconfig.js +187 -187
  72. package/schema/processeddetection.js +85 -85
  73. package/schema/quality.model.js +57 -57
  74. package/schema/report.model.js +30 -30
  75. package/schema/revopConfig.model.js +19 -19
  76. package/schema/standaredRole.model.js +76 -76
  77. package/schema/store.model.js +381 -381
  78. package/schema/storeAudit.model.js +62 -62
  79. package/schema/storeEmpDetection.model.js +62 -62
  80. package/schema/storeFixture.model.js +206 -206
  81. package/schema/storeLayout.model.js +66 -66
  82. package/schema/streaming.model.js +29 -29
  83. package/schema/suspiciousActivity.model.js +54 -54
  84. package/schema/tagging.model.js +42 -42
  85. package/schema/tangoTicket.model.js +210 -210
  86. package/schema/taskAssign.model.js +87 -87
  87. package/schema/taskConfig.model.js +118 -118
  88. package/schema/taskProcessed.model.js +248 -248
  89. package/schema/taskProcessedConfig.model.js +131 -131
  90. package/schema/taskQuestion.model.js +46 -46
  91. package/schema/teams.model.js +46 -46
  92. package/schema/transaction.model.js +54 -54
  93. package/schema/traxApprover.model.js +35 -35
  94. package/schema/traxAuditData.model.js +64 -64
  95. package/schema/user.model.js +139 -139
  96. package/schema/userAssignedStore.model.js +41 -41
  97. package/schema/userAudit.model.js +77 -77
  98. package/schema/userEmpDetection.model.js +83 -83
  99. package/schema/vmType.model.js +23 -23
  100. package/schema/workstation.model.js +75 -75
@@ -1,675 +1,675 @@
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
- isFootfallView:{
451
- type: Boolean,
452
- default:false
453
- }
454
- },
455
- document: {
456
- addressProof: {
457
- path: {
458
- type: String,
459
-
460
- },
461
- },
462
- gst: {
463
- number: {
464
- type: String,
465
- },
466
- path: {
467
- type: String,
468
-
469
- },
470
- },
471
- pan: {
472
- number: {
473
- type: String,
474
- },
475
- path: {
476
- type: String,
477
-
478
- },
479
- },
480
- cin: {
481
- number: {
482
- type: String,
483
- },
484
- path: {
485
- type: String,
486
-
487
- },
488
- },
489
-
490
- },
491
- price:{
492
- type:Number
493
- },
494
- paymentInvoice: {
495
- proRate: {
496
- type: String,
497
- enum: ['before15','after15'],
498
- default: 'before15',
499
- },
500
- paymentType: {
501
- type:String,
502
- enum: ['online','banktransfer'],
503
- default: 'online',
504
- },
505
- paymentCycle: {
506
- type:String,
507
- },
508
- currencyType: {
509
- type:String
510
- },
511
- invoiceTo:{
512
- type:Array
513
- },
514
- paymentAgreementTo:{
515
- type:Array
516
- },
517
- invoiceOn: {
518
- type:String,
519
- enum: ['lastday','25th'],
520
- default: '25th',
521
- },
522
- extendPaymentPeriodDays: {
523
- type:Number,
524
- default: 5,
525
- },
526
- invoiceCC:{
527
- type:Array
528
- },
529
- PomNumber:{
530
- type:String
531
- }
532
- },
533
- priceType:{
534
- type:String,
535
- enum: ['standard','step'],
536
- default: 'standard',
537
- },
538
- virtualAccount:{
539
- accountNo:{
540
- type:String
541
- },
542
- ifscCode:{
543
- type:String
544
- },
545
- swiftCode:{
546
- type:String
547
- },
548
- branch:{
549
- type:String
550
- }
551
- },
552
- clientApi: {
553
- apiKey: {
554
- type: String,
555
- default: null,
556
- },
557
- status: {
558
- type: Boolean,
559
- default: false,
560
- },
561
- allowedIps: {
562
- type: Array,
563
- default: [ '*' ],
564
- },
565
- },
566
- notifyCsmAssign: {
567
- type: Boolean,
568
- default:false
569
- },
570
- edgeApp:{
571
- password:{
572
- type:String,
573
- },
574
- },
575
- averageTransactionValue: {
576
- type: String,
577
- default: ''
578
- },
579
- domainConfig:{
580
- ssoLogin: {
581
- isEnable: {
582
- type: Boolean,
583
- default: false,
584
- },
585
- domainName: {
586
- type: Array,
587
- },
588
- },
589
- ipWhitelisting: {
590
- enableWhitelisting: {
591
- type: Boolean,
592
- default: false,
593
- },
594
- allowedIps: {
595
- type: Array,
596
- },
597
- },
598
- enableOtp:{
599
- type: Boolean,
600
- default: false,
601
- }
602
- },
603
- storeRadiusConfig: {
604
- type: Number,
605
- default: 200
606
- },
607
- controlCenterConfigs:{
608
- taskList:{
609
- type: [String],
610
- default: ['Hygiene Task','Operations','Maintenence'],
611
- validate: {
612
- validator: function (arr) {
613
- return arr.length >= 1 && arr.length <= 16; // Minimum and maximum length
614
- },
615
- message: 'List must have between 1 and 15 task.',
616
- },
617
- }
618
- },
619
- traxRAWImageUpload: {
620
- type: Boolean,
621
- default:false
622
- },
623
- emailersConfig: {
624
- daily: {
625
- type: Boolean,
626
- default:false
627
- },
628
- weekly: {
629
- type: Boolean,
630
- default:false
631
- },
632
- monthly: {
633
- type: Boolean,
634
- default:false
635
- },
636
- sendTo: {
637
- type: Array,
638
- },
639
- },
640
- clientConfigs: {
641
- exportLimit: {
642
- type: Number,
643
- default: 10000
644
- },
645
- },
646
- traxBlockMobileTimeUpdate: {
647
- type: Boolean,
648
- default:false
649
- },
650
- traxSectionSave: {
651
- type: Boolean,
652
- default:false
653
- },
654
- isCrestPlanogram: {
655
- type: Boolean,
656
- default:false
657
- },
658
- isTangoPlanogram: {
659
- type: Boolean,
660
- default:false
661
- },
662
- traxMonthlyComparison: {
663
- type: Boolean,
664
- default:true
665
- },
666
- },
667
- {
668
- strict: true,
669
- versionKey: false,
670
- timestamps: true,
671
- },
672
- );
673
-
674
-
675
- 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
+ isFootfallView:{
451
+ type: Boolean,
452
+ default:false
453
+ }
454
+ },
455
+ document: {
456
+ addressProof: {
457
+ path: {
458
+ type: String,
459
+
460
+ },
461
+ },
462
+ gst: {
463
+ number: {
464
+ type: String,
465
+ },
466
+ path: {
467
+ type: String,
468
+
469
+ },
470
+ },
471
+ pan: {
472
+ number: {
473
+ type: String,
474
+ },
475
+ path: {
476
+ type: String,
477
+
478
+ },
479
+ },
480
+ cin: {
481
+ number: {
482
+ type: String,
483
+ },
484
+ path: {
485
+ type: String,
486
+
487
+ },
488
+ },
489
+
490
+ },
491
+ price:{
492
+ type:Number
493
+ },
494
+ paymentInvoice: {
495
+ proRate: {
496
+ type: String,
497
+ enum: ['before15','after15'],
498
+ default: 'before15',
499
+ },
500
+ paymentType: {
501
+ type:String,
502
+ enum: ['online','banktransfer'],
503
+ default: 'online',
504
+ },
505
+ paymentCycle: {
506
+ type:String,
507
+ },
508
+ currencyType: {
509
+ type:String
510
+ },
511
+ invoiceTo:{
512
+ type:Array
513
+ },
514
+ paymentAgreementTo:{
515
+ type:Array
516
+ },
517
+ invoiceOn: {
518
+ type:String,
519
+ enum: ['lastday','25th'],
520
+ default: '25th',
521
+ },
522
+ extendPaymentPeriodDays: {
523
+ type:Number,
524
+ default: 5,
525
+ },
526
+ invoiceCC:{
527
+ type:Array
528
+ },
529
+ PomNumber:{
530
+ type:String
531
+ }
532
+ },
533
+ priceType:{
534
+ type:String,
535
+ enum: ['standard','step'],
536
+ default: 'standard',
537
+ },
538
+ virtualAccount:{
539
+ accountNo:{
540
+ type:String
541
+ },
542
+ ifscCode:{
543
+ type:String
544
+ },
545
+ swiftCode:{
546
+ type:String
547
+ },
548
+ branch:{
549
+ type:String
550
+ }
551
+ },
552
+ clientApi: {
553
+ apiKey: {
554
+ type: String,
555
+ default: null,
556
+ },
557
+ status: {
558
+ type: Boolean,
559
+ default: false,
560
+ },
561
+ allowedIps: {
562
+ type: Array,
563
+ default: [ '*' ],
564
+ },
565
+ },
566
+ notifyCsmAssign: {
567
+ type: Boolean,
568
+ default:false
569
+ },
570
+ edgeApp:{
571
+ password:{
572
+ type:String,
573
+ },
574
+ },
575
+ averageTransactionValue: {
576
+ type: String,
577
+ default: ''
578
+ },
579
+ domainConfig:{
580
+ ssoLogin: {
581
+ isEnable: {
582
+ type: Boolean,
583
+ default: false,
584
+ },
585
+ domainName: {
586
+ type: Array,
587
+ },
588
+ },
589
+ ipWhitelisting: {
590
+ enableWhitelisting: {
591
+ type: Boolean,
592
+ default: false,
593
+ },
594
+ allowedIps: {
595
+ type: Array,
596
+ },
597
+ },
598
+ enableOtp:{
599
+ type: Boolean,
600
+ default: false,
601
+ }
602
+ },
603
+ storeRadiusConfig: {
604
+ type: Number,
605
+ default: 200
606
+ },
607
+ controlCenterConfigs:{
608
+ taskList:{
609
+ type: [String],
610
+ default: ['Hygiene Task','Operations','Maintenence'],
611
+ validate: {
612
+ validator: function (arr) {
613
+ return arr.length >= 1 && arr.length <= 16; // Minimum and maximum length
614
+ },
615
+ message: 'List must have between 1 and 15 task.',
616
+ },
617
+ }
618
+ },
619
+ traxRAWImageUpload: {
620
+ type: Boolean,
621
+ default:false
622
+ },
623
+ emailersConfig: {
624
+ daily: {
625
+ type: Boolean,
626
+ default:false
627
+ },
628
+ weekly: {
629
+ type: Boolean,
630
+ default:false
631
+ },
632
+ monthly: {
633
+ type: Boolean,
634
+ default:false
635
+ },
636
+ sendTo: {
637
+ type: Array,
638
+ },
639
+ },
640
+ clientConfigs: {
641
+ exportLimit: {
642
+ type: Number,
643
+ default: 10000
644
+ },
645
+ },
646
+ traxBlockMobileTimeUpdate: {
647
+ type: Boolean,
648
+ default:false
649
+ },
650
+ traxSectionSave: {
651
+ type: Boolean,
652
+ default:false
653
+ },
654
+ isCrestPlanogram: {
655
+ type: Boolean,
656
+ default:false
657
+ },
658
+ isTangoPlanogram: {
659
+ type: Boolean,
660
+ default:false
661
+ },
662
+ traxMonthlyComparison: {
663
+ type: Boolean,
664
+ default:true
665
+ },
666
+ },
667
+ {
668
+ strict: true,
669
+ versionKey: false,
670
+ timestamps: true,
671
+ },
672
+ );
673
+
674
+
675
+ export default mongoose.model( 'client', client );