tango-api-schema 2.2.94 → 2.2.96

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 -194
  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 -623
  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 +66 -66
  37. package/schema/fixtureShelf.model.js +60 -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 +77 -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 +364 -364
  69. package/schema/storeAudit.model.js +62 -62
  70. package/schema/storeEmpDetection.model.js +62 -62
  71. package/schema/storeFixture.model.js +156 -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,623 +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
- }
249
- },
250
- assignedUsers: {
251
- csm: {
252
- type: Object,
253
- },
254
- ops: {
255
- type: Array,
256
- },
257
- },
258
- featureConfigs: {
259
- open: {
260
- type: String,
261
- default: "10:00:00"
262
- },
263
- close: {
264
- type: String,
265
- default: "23:00:00"
266
- },
267
- infraAlert: {
268
- condition: {
269
- type: String,
270
- default:"<"
271
- },
272
- value: {
273
- type: Number,
274
- default:"1"
275
- },
276
- },
277
- bouncedLimit: {
278
- condition: {
279
- type: String,
280
- default:'<='
281
- },
282
- value: {
283
- type: String,
284
- default: "1"
285
- },
286
- },
287
- missedOpportunityFrom: {
288
- condition: {
289
- type: String,
290
- default: '>'
291
- },
292
- value: {
293
- type: String,
294
- default:'1'
295
- },
296
- },
297
- missedOpportunityTo: {
298
- condition: {
299
- type: String,
300
- default:"<="
301
- },
302
- value: {
303
- type: String,
304
- default:"5"
305
- },
306
- },
307
- conversion: {
308
- condition: {
309
- type: String,
310
- default:">"
311
- },
312
- value: {
313
- type: String,
314
- default:'5'
315
- },
316
- },
317
- billableCalculation: {
318
- type: String,
319
- default:"engagers-count"
320
- },
321
- missedOpportunityCalculation: {
322
- type: String,
323
- default:"engagers-conversion"
324
- },
325
- conversionCalculation: {
326
- type: String,
327
- default:"engagers-count"
328
- },
329
- isNormalized: {
330
- type: Boolean,
331
- default: false,
332
- },
333
- isPasserByData: {
334
- type: Boolean,
335
- default: false,
336
- },
337
- isFootfallDirectory: {
338
- type: Boolean,
339
- default: false,
340
- },
341
- isExcludedArea:{
342
- type:Boolean,
343
- default:true
344
- },
345
- updateFeatureConfig:{
346
- type:Boolean,
347
- default:true
348
- },
349
- isCameraDisabled:{
350
- type:Boolean,
351
- default:false
352
- },
353
- isbillingDisabled:{
354
- type:Boolean,
355
- default:false
356
- },
357
- isNewDashboard:{
358
- type:Boolean,
359
- default:false
360
- },
361
- isFootfallAuditStores:{
362
- type:Boolean,
363
- default:false
364
- },
365
- isNewTraffic:{
366
- type:Boolean,
367
- default:false
368
- },
369
- isNewZone:{
370
- type:Boolean,
371
- default:false
372
- },
373
- isNewReports:{
374
- type:Boolean,
375
- default:false
376
- },
377
- isNOB:{
378
- type:Boolean,
379
- default:false
380
- },
381
- isNewZoneV2:{
382
- type:Boolean,
383
- default:false
384
- },
385
- isTrax:{
386
- type:Boolean,
387
- default:false
388
- },
389
- isControlCenter:{
390
- type:Boolean,
391
- default:false
392
- },
393
- isFootfallDirectoryAudit:{
394
- type:Boolean,
395
- default:false
396
- },
397
- isFootfallDirectoryLimit:{
398
- type:Boolean,
399
- default:false
400
- },
401
- traxDateRange:{
402
- type:Number,
403
- default:30
404
- },
405
- trafficDateRange:{
406
- type:Number,
407
- default:180
408
- },
409
- streamBy:{
410
- type: String,
411
- enum: ["Rtsp", "Edge"],
412
- default: "Rtsp"
413
- },
414
- trackerFF:{
415
- type: Boolean,
416
- default:true
417
- }
418
- },
419
- document: {
420
- addressProof: {
421
- path: {
422
- type: String,
423
-
424
- },
425
- },
426
- gst: {
427
- number: {
428
- type: String,
429
- },
430
- path: {
431
- type: String,
432
-
433
- },
434
- },
435
- pan: {
436
- number: {
437
- type: String,
438
- },
439
- path: {
440
- type: String,
441
-
442
- },
443
- },
444
- cin: {
445
- number: {
446
- type: String,
447
- },
448
- path: {
449
- type: String,
450
-
451
- },
452
- },
453
-
454
- },
455
- price:{
456
- type:Number
457
- },
458
- paymentInvoice: {
459
- proRate: {
460
- type: String,
461
- enum: ['before15','after15'],
462
- default: 'before15',
463
- },
464
- paymentType: {
465
- type:String,
466
- enum: ['online','banktransfer'],
467
- default: 'online',
468
- },
469
- paymentCycle: {
470
- type:String,
471
- },
472
- currencyType: {
473
- type:String
474
- },
475
- invoiceTo:{
476
- type:Array
477
- },
478
- paymentAgreementTo:{
479
- type:Array
480
- },
481
- invoiceOn: {
482
- type:String,
483
- enum: ['lastday','25th'],
484
- default: '25th',
485
- },
486
- extendPaymentPeriodDays: {
487
- type:Number,
488
- default: 5,
489
- },
490
- invoiceCC:{
491
- type:Array
492
- },
493
- PomNumber:{
494
- type:String
495
- }
496
- },
497
- priceType:{
498
- type:String,
499
- enum: ['standard','step'],
500
- default: 'standard',
501
- },
502
- virtualAccount:{
503
- accountNo:{
504
- type:String
505
- },
506
- ifscCode:{
507
- type:String
508
- },
509
- swiftCode:{
510
- type:String
511
- },
512
- branch:{
513
- type:String
514
- }
515
- },
516
- clientApi: {
517
- apiKey: {
518
- type: String,
519
- default: null,
520
- },
521
- status: {
522
- type: Boolean,
523
- default: false,
524
- },
525
- allowedIps: {
526
- type: Array,
527
- default: [ '*' ],
528
- },
529
- },
530
- notifyCsmAssign: {
531
- type: Boolean,
532
- default:false
533
- },
534
- edgeApp:{
535
- password:{
536
- type:String,
537
- },
538
- },
539
- averageTransactionValue: {
540
- type: String,
541
- default: ''
542
- },
543
- domainConfig:{
544
- ssoLogin: {
545
- isEnable: {
546
- type: Boolean,
547
- default: false,
548
- },
549
- domainName: {
550
- type: Array,
551
- },
552
- },
553
- ipWhitelisting: {
554
- enableWhitelisting: {
555
- type: Boolean,
556
- default: false,
557
- },
558
- allowedIps: {
559
- type: Array,
560
- },
561
- },
562
- enableOtp:{
563
- type: Boolean,
564
- default: false,
565
- }
566
- },
567
- storeRadiusConfig: {
568
- type: Number,
569
- default: 200
570
- },
571
- controlCenterConfigs:{
572
- taskList:{
573
- type: [String],
574
- default: ['Hygiene Task','Operations','Maintenence'],
575
- validate: {
576
- validator: function (arr) {
577
- return arr.length >= 1 && arr.length <= 16; // Minimum and maximum length
578
- },
579
- message: 'List must have between 1 and 15 task.',
580
- },
581
- }
582
- },
583
- traxRAWImageUpload: {
584
- type: Boolean,
585
- default:false
586
- },
587
- emailersConfig: {
588
- daily: {
589
- type: Boolean,
590
- default:false
591
- },
592
- weekly: {
593
- type: Boolean,
594
- default:false
595
- },
596
- monthly: {
597
- type: Boolean,
598
- default:false
599
- },
600
- sendTo: {
601
- type: Array,
602
- },
603
- },
604
- clientConfigs: {
605
- exportLimit: {
606
- type: Number,
607
- default: 10000
608
- },
609
- },
610
- traxBlockMobileTimeUpdate: {
611
- type: Boolean,
612
- default:false
613
- },
614
- },
615
- {
616
- strict: true,
617
- versionKey: false,
618
- timestamps: true,
619
- },
620
- );
621
-
622
-
623
- 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 );