tango-api-schema 2.2.119 → 2.2.121

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