tango-api-schema 2.2.98 → 2.2.99

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