tango-api-schema 2.3.23 → 2.3.24

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