tango-api-schema 2.2.21 → 2.2.22

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 (72) hide show
  1. package/index.js +152 -152
  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 +144 -144
  16. package/schema/checklistassignconfig.js +75 -75
  17. package/schema/checklistconfig.js +196 -196
  18. package/schema/checklistlog.js +104 -104
  19. package/schema/checklistquestionconfig.js +150 -150
  20. package/schema/client.model.js +575 -575
  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 +108 -108
  29. package/schema/edgeAppVersion.model.js +33 -33
  30. package/schema/edgeappAuth.model.js +30 -30
  31. package/schema/empDetectionOutput.model.js +67 -67
  32. package/schema/externalParameter.model.js +215 -202
  33. package/schema/eyetest.model.js +18 -18
  34. package/schema/fitting.model.js +52 -52
  35. package/schema/group.model.js +34 -34
  36. package/schema/hotjar.model.js +11 -11
  37. package/schema/infraReason.model.js +44 -44
  38. package/schema/internalAuth.model.js +35 -35
  39. package/schema/invoice.model.js +104 -104
  40. package/schema/ipLogs.model.js +37 -37
  41. package/schema/lead.model.js +76 -76
  42. package/schema/lenskartEmployeeMapping.model.js +63 -63
  43. package/schema/liveConnection.model.js +48 -48
  44. package/schema/locusOrder.model.js +154 -154
  45. package/schema/locusOrderUser.model.js +14 -14
  46. package/schema/lowcountReason.model.js +44 -44
  47. package/schema/mailOnlyuser.model.js +42 -42
  48. package/schema/matLog.model.js +26 -26
  49. package/schema/nobBilling.model.js +41 -41
  50. package/schema/otp.model.js +25 -25
  51. package/schema/paymentAccount.model.js +60 -60
  52. package/schema/planogram.model.js +43 -43
  53. package/schema/processedchecklist.js +211 -211
  54. package/schema/processedchecklistconfig.js +120 -120
  55. package/schema/processeddetection.js +85 -85
  56. package/schema/quality.model.js +57 -57
  57. package/schema/report.model.js +30 -30
  58. package/schema/standaredRole.model.js +76 -76
  59. package/schema/store.model.js +332 -332
  60. package/schema/storeAudit.model.js +62 -62
  61. package/schema/storeEmpDetection.model.js +62 -62
  62. package/schema/storeLayout.model.js +60 -60
  63. package/schema/tagging.model.js +42 -42
  64. package/schema/tangoTicket.model.js +210 -210
  65. package/schema/teams.model.js +46 -46
  66. package/schema/transaction.model.js +54 -54
  67. package/schema/traxAuditData.model.js +64 -64
  68. package/schema/user.model.js +127 -127
  69. package/schema/userAssignedStore.model.js +41 -41
  70. package/schema/userAudit.model.js +77 -77
  71. package/schema/userEmpDetection.model.js +83 -83
  72. package/schema/workstation.model.js +75 -75
@@ -1,575 +1,575 @@
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
- },
402
- document: {
403
- addressProof: {
404
- path: {
405
- type: String,
406
-
407
- },
408
- },
409
- gst: {
410
- number: {
411
- type: String,
412
- },
413
- path: {
414
- type: String,
415
-
416
- },
417
- },
418
- pan: {
419
- number: {
420
- type: String,
421
- },
422
- path: {
423
- type: String,
424
-
425
- },
426
- },
427
- cin: {
428
- number: {
429
- type: String,
430
- },
431
- path: {
432
- type: String,
433
-
434
- },
435
- },
436
-
437
- },
438
- price:{
439
- type:Number
440
- },
441
- paymentInvoice: {
442
- proRate: {
443
- type: String,
444
- enum: ['before15','after15'],
445
- default: 'before15',
446
- },
447
- paymentType: {
448
- type:String,
449
- enum: ['online','banktransfer'],
450
- default: 'online',
451
- },
452
- paymentCycle: {
453
- type:String,
454
- },
455
- currencyType: {
456
- type:String
457
- },
458
- invoiceTo:{
459
- type:Array
460
- },
461
- paymentAgreementTo:{
462
- type:Array
463
- },
464
- invoiceOn: {
465
- type:String,
466
- enum: ['lastday','25th'],
467
- default: '25th',
468
- },
469
- extendPaymentPeriodDays: {
470
- type:Number,
471
- default: 5,
472
- },
473
- invoiceCC:{
474
- type:Array
475
- },
476
- PomNumber:{
477
- type:String
478
- }
479
- },
480
- priceType:{
481
- type:String,
482
- enum: ['standard','step'],
483
- default: 'standard',
484
- },
485
- virtualAccount:{
486
- accountNo:{
487
- type:String
488
- },
489
- ifscCode:{
490
- type:String
491
- },
492
- swiftCode:{
493
- type:String
494
- },
495
- branch:{
496
- type:String
497
- }
498
- },
499
- clientApi: {
500
- apiKey: {
501
- type: String,
502
- default: null,
503
- },
504
- status: {
505
- type: Boolean,
506
- default: false,
507
- },
508
- allowedIps: {
509
- type: Array,
510
- default: [ '*' ],
511
- },
512
- },
513
- notifyCsmAssign: {
514
- type: Boolean,
515
- default:false
516
- },
517
- edgeApp:{
518
- password:{
519
- type:String,
520
- },
521
- },
522
- averageTransactionValue: {
523
- type: String,
524
- default: ''
525
- },
526
- domainConfig:{
527
- ssoLogin: {
528
- isEnable: {
529
- type: Boolean,
530
- default: false,
531
- },
532
- domainName: {
533
- type: Array,
534
- },
535
- },
536
- ipWhitelisting: {
537
- enableWhitelisting: {
538
- type: Boolean,
539
- default: false,
540
- },
541
- allowedIps: {
542
- type: Array,
543
- },
544
- },
545
- enableOtp:{
546
- type: Boolean,
547
- default: false,
548
- }
549
- },
550
- storeRadiusConfig: {
551
- type: Number,
552
- default: 200
553
- },
554
- controlCenterConfigs:{
555
- taskList:{
556
- type: [String],
557
- default: ['Hygiene Task','Operations','Maintenence'],
558
- validate: {
559
- validator: function (arr) {
560
- return arr.length >= 1 && arr.length <= 16; // Minimum and maximum length
561
- },
562
- message: 'List must have between 1 and 15 task.',
563
- },
564
- }
565
- }
566
- },
567
- {
568
- strict: true,
569
- versionKey: false,
570
- timestamps: true,
571
- },
572
- );
573
-
574
-
575
- 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
+ }
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
+ },
402
+ document: {
403
+ addressProof: {
404
+ path: {
405
+ type: String,
406
+
407
+ },
408
+ },
409
+ gst: {
410
+ number: {
411
+ type: String,
412
+ },
413
+ path: {
414
+ type: String,
415
+
416
+ },
417
+ },
418
+ pan: {
419
+ number: {
420
+ type: String,
421
+ },
422
+ path: {
423
+ type: String,
424
+
425
+ },
426
+ },
427
+ cin: {
428
+ number: {
429
+ type: String,
430
+ },
431
+ path: {
432
+ type: String,
433
+
434
+ },
435
+ },
436
+
437
+ },
438
+ price:{
439
+ type:Number
440
+ },
441
+ paymentInvoice: {
442
+ proRate: {
443
+ type: String,
444
+ enum: ['before15','after15'],
445
+ default: 'before15',
446
+ },
447
+ paymentType: {
448
+ type:String,
449
+ enum: ['online','banktransfer'],
450
+ default: 'online',
451
+ },
452
+ paymentCycle: {
453
+ type:String,
454
+ },
455
+ currencyType: {
456
+ type:String
457
+ },
458
+ invoiceTo:{
459
+ type:Array
460
+ },
461
+ paymentAgreementTo:{
462
+ type:Array
463
+ },
464
+ invoiceOn: {
465
+ type:String,
466
+ enum: ['lastday','25th'],
467
+ default: '25th',
468
+ },
469
+ extendPaymentPeriodDays: {
470
+ type:Number,
471
+ default: 5,
472
+ },
473
+ invoiceCC:{
474
+ type:Array
475
+ },
476
+ PomNumber:{
477
+ type:String
478
+ }
479
+ },
480
+ priceType:{
481
+ type:String,
482
+ enum: ['standard','step'],
483
+ default: 'standard',
484
+ },
485
+ virtualAccount:{
486
+ accountNo:{
487
+ type:String
488
+ },
489
+ ifscCode:{
490
+ type:String
491
+ },
492
+ swiftCode:{
493
+ type:String
494
+ },
495
+ branch:{
496
+ type:String
497
+ }
498
+ },
499
+ clientApi: {
500
+ apiKey: {
501
+ type: String,
502
+ default: null,
503
+ },
504
+ status: {
505
+ type: Boolean,
506
+ default: false,
507
+ },
508
+ allowedIps: {
509
+ type: Array,
510
+ default: [ '*' ],
511
+ },
512
+ },
513
+ notifyCsmAssign: {
514
+ type: Boolean,
515
+ default:false
516
+ },
517
+ edgeApp:{
518
+ password:{
519
+ type:String,
520
+ },
521
+ },
522
+ averageTransactionValue: {
523
+ type: String,
524
+ default: ''
525
+ },
526
+ domainConfig:{
527
+ ssoLogin: {
528
+ isEnable: {
529
+ type: Boolean,
530
+ default: false,
531
+ },
532
+ domainName: {
533
+ type: Array,
534
+ },
535
+ },
536
+ ipWhitelisting: {
537
+ enableWhitelisting: {
538
+ type: Boolean,
539
+ default: false,
540
+ },
541
+ allowedIps: {
542
+ type: Array,
543
+ },
544
+ },
545
+ enableOtp:{
546
+ type: Boolean,
547
+ default: false,
548
+ }
549
+ },
550
+ storeRadiusConfig: {
551
+ type: Number,
552
+ default: 200
553
+ },
554
+ controlCenterConfigs:{
555
+ taskList:{
556
+ type: [String],
557
+ default: ['Hygiene Task','Operations','Maintenence'],
558
+ validate: {
559
+ validator: function (arr) {
560
+ return arr.length >= 1 && arr.length <= 16; // Minimum and maximum length
561
+ },
562
+ message: 'List must have between 1 and 15 task.',
563
+ },
564
+ }
565
+ }
566
+ },
567
+ {
568
+ strict: true,
569
+ versionKey: false,
570
+ timestamps: true,
571
+ },
572
+ );
573
+
574
+
575
+ export default mongoose.model( 'client', client );