tango-api-schema 2.1.78 → 2.1.80

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 (70) hide show
  1. package/index.js +144 -144
  2. package/package.json +26 -25
  3. package/schema/aiTicketConfig.js +42 -42
  4. package/schema/appVersion.js +32 -32
  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 +39 -39
  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 +71 -71
  17. package/schema/checklistconfig.js +184 -184
  18. package/schema/checklistlog.js +59 -59
  19. package/schema/checklistquestionconfig.js +147 -147
  20. package/schema/client.model.js +556 -556
  21. package/schema/clientRequest.model.js +38 -38
  22. package/schema/cluster.model.js +66 -66
  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 +104 -104
  29. package/schema/edgeAppVersion.model.js +33 -33
  30. package/schema/edgeappAuth.model.js +30 -30
  31. package/schema/empDetectionOutput.model.js +64 -64
  32. package/schema/externalParameter.model.js +202 -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 +61 -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/otp.model.js +25 -25
  50. package/schema/paymentAccount.model.js +60 -60
  51. package/schema/processedchecklist.js +188 -188
  52. package/schema/processedchecklistconfig.js +105 -105
  53. package/schema/processeddetection.js +85 -85
  54. package/schema/quality.model.js +57 -57
  55. package/schema/report.model.js +30 -30
  56. package/schema/standaredRole.model.js +76 -76
  57. package/schema/store.model.js +323 -323
  58. package/schema/storeAudit.model.js +62 -62
  59. package/schema/storeEmpDetection.model.js +62 -62
  60. package/schema/tagging.model.js +42 -42
  61. package/schema/tangoTicket.model.js +210 -210
  62. package/schema/teams.model.js +46 -46
  63. package/schema/transaction.model.js +54 -54
  64. package/schema/traxAuditData.model.js +61 -61
  65. package/schema/user.model.js +120 -120
  66. package/schema/userAssignedStore.model.js +41 -41
  67. package/schema/userAudit.model.js +77 -77
  68. package/schema/userEmpDetection.model.js +81 -81
  69. package/schema/webSocketConnection.model.js +17 -0
  70. package/schema/workstation.model.js +75 -75
@@ -1,556 +1,556 @@
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
- count:{
209
- type:Number,
210
- default:200
211
- },
212
- ratio:{
213
- type:Number,
214
- default:0.75,
215
- },
216
- queueName: {
217
- type: String,
218
- },
219
- zoneQueueName: {
220
- type: String,
221
- },
222
- trafficQueueName: {
223
- type: String,
224
- },
225
- traxQueueName: {
226
- unattendedCustomer :{
227
- type:String
228
- },
229
- leftInMiddle:{
230
- type:String
231
- },
232
- uniformDetection:{
233
- type:String
234
- },
235
- mobileDetection:{
236
- type:String
237
- },
238
- cameraAngleChange:{
239
- type:String
240
- }
241
- }
242
- },
243
- assignedUsers: {
244
- csm: {
245
- type: Object,
246
- },
247
- ops: {
248
- type: Array,
249
- },
250
- },
251
- featureConfigs: {
252
- open: {
253
- type: String,
254
- default: "10:00:00"
255
- },
256
- close: {
257
- type: String,
258
- default: "23:00:00"
259
- },
260
- infraAlert: {
261
- condition: {
262
- type: String,
263
- default:"<"
264
- },
265
- value: {
266
- type: Number,
267
- default:"1"
268
- },
269
- },
270
- bouncedLimit: {
271
- condition: {
272
- type: String,
273
- default:'<='
274
- },
275
- value: {
276
- type: Number,
277
- default: "1"
278
- },
279
- },
280
- missedOpportunityFrom: {
281
- condition: {
282
- type: String,
283
- default: '>'
284
- },
285
- value: {
286
- type: Number,
287
- default:'1'
288
- },
289
- },
290
- missedOpportunityTo: {
291
- condition: {
292
- type: String,
293
- default:"<="
294
- },
295
- value: {
296
- type: Number,
297
- default:"5"
298
- },
299
- },
300
- conversion: {
301
- condition: {
302
- type: String,
303
- default:">"
304
- },
305
- value: {
306
- type: Number,
307
- default:'5'
308
- },
309
- },
310
- billableCalculation: {
311
- type: String,
312
- default:"engagers-count"
313
- },
314
- missedOpportunityCalculation: {
315
- type: String,
316
- default:"engagers-conversion"
317
- },
318
- conversionCalculation: {
319
- type: String,
320
- default:"engagers-count"
321
- },
322
- isNormalized: {
323
- type: Boolean,
324
- default: false,
325
- },
326
- isPasserByData: {
327
- type: Boolean,
328
- default: false,
329
- },
330
- isFootfallDirectory: {
331
- type: Boolean,
332
- default: false,
333
- },
334
- isExcludedArea:{
335
- type:Boolean,
336
- default:true
337
- },
338
- updateFeatureConfig:{
339
- type:Boolean,
340
- default:true
341
- },
342
- isCameraDisabled:{
343
- type:Boolean,
344
- default:false
345
- },
346
- isbillingDisabled:{
347
- type:Boolean,
348
- default:false
349
- },
350
- isNewDashboard:{
351
- type:Boolean,
352
- default:false
353
- },
354
- isFootfallAuditStores:{
355
- type:Boolean,
356
- default:false
357
- },
358
- isNewTraffic:{
359
- type:Boolean,
360
- default:false
361
- },
362
- isNewZone:{
363
- type:Boolean,
364
- default:false
365
- },
366
- isNewReports:{
367
- type:Boolean,
368
- default:false
369
- },
370
- isNOB:{
371
- type:Boolean,
372
- default:false
373
- },
374
- isNewZoneV2:{
375
- type:Boolean,
376
- default:false
377
- },
378
- isTrax:{
379
- type:Boolean,
380
- default:false
381
- },
382
- },
383
- document: {
384
- addressProof: {
385
- path: {
386
- type: String,
387
-
388
- },
389
- },
390
- gst: {
391
- number: {
392
- type: String,
393
- },
394
- path: {
395
- type: String,
396
-
397
- },
398
- },
399
- pan: {
400
- number: {
401
- type: String,
402
- },
403
- path: {
404
- type: String,
405
-
406
- },
407
- },
408
- cin: {
409
- number: {
410
- type: String,
411
- },
412
- path: {
413
- type: String,
414
-
415
- },
416
- },
417
-
418
- },
419
- price:{
420
- type:Number
421
- },
422
- paymentInvoice: {
423
- proRate: {
424
- type: String,
425
- enum: ['before15','after15'],
426
- default: 'before15',
427
- },
428
- paymentType: {
429
- type:String,
430
- enum: ['online','banktransfer'],
431
- default: 'online',
432
- },
433
- paymentCycle: {
434
- type:String,
435
- },
436
- currencyType: {
437
- type:String
438
- },
439
- invoiceTo:{
440
- type:Array
441
- },
442
- paymentAgreementTo:{
443
- type:Array
444
- },
445
- invoiceOn: {
446
- type:String,
447
- enum: ['lastday','25th'],
448
- default: '25th',
449
- },
450
- extendPaymentPeriodDays: {
451
- type:Number,
452
- default: 5,
453
- },
454
- invoiceCC:{
455
- type:Array
456
- },
457
- PomNumber:{
458
- type:String
459
- }
460
- },
461
- priceType:{
462
- type:String,
463
- enum: ['standard','step'],
464
- default: 'standard',
465
- },
466
- virtualAccount:{
467
- accountNo:{
468
- type:String
469
- },
470
- ifscCode:{
471
- type:String
472
- },
473
- swiftCode:{
474
- type:String
475
- },
476
- branch:{
477
- type:String
478
- }
479
- },
480
- clientApi: {
481
- apiKey: {
482
- type: String,
483
- default: null,
484
- },
485
- status: {
486
- type: Boolean,
487
- default: false,
488
- },
489
- allowedIps: {
490
- type: Array,
491
- default: [ '*' ],
492
- },
493
- },
494
- notifyCsmAssign: {
495
- type: Boolean,
496
- default:false
497
- },
498
- edgeApp:{
499
- password:{
500
- type:String,
501
- },
502
- },
503
- averageTransactionValue: {
504
- type: String,
505
- default: ''
506
- },
507
- domainConfig:{
508
- ssoLogin: {
509
- isEnable: {
510
- type: Boolean,
511
- default: false,
512
- },
513
- domainName: {
514
- type: Array,
515
- },
516
- },
517
- ipWhitelisting: {
518
- enableWhitelisting: {
519
- type: Boolean,
520
- default: false,
521
- },
522
- allowedIps: {
523
- type: Array,
524
- },
525
- },
526
- enableOtp:{
527
- type: Boolean,
528
- default: false,
529
- }
530
- },
531
- storeRadiusConfig: {
532
- type: Number,
533
- default: 200
534
- },
535
- controlCenterConfigs:{
536
- taskList:{
537
- type: [String],
538
- default: ['Hygiene Task','Operations','Maintenence'],
539
- validate: {
540
- validator: function (arr) {
541
- return arr.length >= 1 && arr.length <= 16; // Minimum and maximum length
542
- },
543
- message: 'List must have between 1 and 15 task.',
544
- },
545
- }
546
- }
547
- },
548
- {
549
- strict: true,
550
- versionKey: false,
551
- timestamps: true,
552
- },
553
- );
554
-
555
-
556
- 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
+ count:{
209
+ type:Number,
210
+ default:200
211
+ },
212
+ ratio:{
213
+ type:Number,
214
+ default:0.75,
215
+ },
216
+ queueName: {
217
+ type: String,
218
+ },
219
+ zoneQueueName: {
220
+ type: String,
221
+ },
222
+ trafficQueueName: {
223
+ type: String,
224
+ },
225
+ traxQueueName: {
226
+ unattendedCustomer :{
227
+ type:String
228
+ },
229
+ leftInMiddle:{
230
+ type:String
231
+ },
232
+ uniformDetection:{
233
+ type:String
234
+ },
235
+ mobileDetection:{
236
+ type:String
237
+ },
238
+ cameraAngleChange:{
239
+ type:String
240
+ }
241
+ }
242
+ },
243
+ assignedUsers: {
244
+ csm: {
245
+ type: Object,
246
+ },
247
+ ops: {
248
+ type: Array,
249
+ },
250
+ },
251
+ featureConfigs: {
252
+ open: {
253
+ type: String,
254
+ default: "10:00:00"
255
+ },
256
+ close: {
257
+ type: String,
258
+ default: "23:00:00"
259
+ },
260
+ infraAlert: {
261
+ condition: {
262
+ type: String,
263
+ default:"<"
264
+ },
265
+ value: {
266
+ type: Number,
267
+ default:"1"
268
+ },
269
+ },
270
+ bouncedLimit: {
271
+ condition: {
272
+ type: String,
273
+ default:'<='
274
+ },
275
+ value: {
276
+ type: Number,
277
+ default: "1"
278
+ },
279
+ },
280
+ missedOpportunityFrom: {
281
+ condition: {
282
+ type: String,
283
+ default: '>'
284
+ },
285
+ value: {
286
+ type: Number,
287
+ default:'1'
288
+ },
289
+ },
290
+ missedOpportunityTo: {
291
+ condition: {
292
+ type: String,
293
+ default:"<="
294
+ },
295
+ value: {
296
+ type: Number,
297
+ default:"5"
298
+ },
299
+ },
300
+ conversion: {
301
+ condition: {
302
+ type: String,
303
+ default:">"
304
+ },
305
+ value: {
306
+ type: Number,
307
+ default:'5'
308
+ },
309
+ },
310
+ billableCalculation: {
311
+ type: String,
312
+ default:"engagers-count"
313
+ },
314
+ missedOpportunityCalculation: {
315
+ type: String,
316
+ default:"engagers-conversion"
317
+ },
318
+ conversionCalculation: {
319
+ type: String,
320
+ default:"engagers-count"
321
+ },
322
+ isNormalized: {
323
+ type: Boolean,
324
+ default: false,
325
+ },
326
+ isPasserByData: {
327
+ type: Boolean,
328
+ default: false,
329
+ },
330
+ isFootfallDirectory: {
331
+ type: Boolean,
332
+ default: false,
333
+ },
334
+ isExcludedArea:{
335
+ type:Boolean,
336
+ default:true
337
+ },
338
+ updateFeatureConfig:{
339
+ type:Boolean,
340
+ default:true
341
+ },
342
+ isCameraDisabled:{
343
+ type:Boolean,
344
+ default:false
345
+ },
346
+ isbillingDisabled:{
347
+ type:Boolean,
348
+ default:false
349
+ },
350
+ isNewDashboard:{
351
+ type:Boolean,
352
+ default:false
353
+ },
354
+ isFootfallAuditStores:{
355
+ type:Boolean,
356
+ default:false
357
+ },
358
+ isNewTraffic:{
359
+ type:Boolean,
360
+ default:false
361
+ },
362
+ isNewZone:{
363
+ type:Boolean,
364
+ default:false
365
+ },
366
+ isNewReports:{
367
+ type:Boolean,
368
+ default:false
369
+ },
370
+ isNOB:{
371
+ type:Boolean,
372
+ default:false
373
+ },
374
+ isNewZoneV2:{
375
+ type:Boolean,
376
+ default:false
377
+ },
378
+ isTrax:{
379
+ type:Boolean,
380
+ default:false
381
+ },
382
+ },
383
+ document: {
384
+ addressProof: {
385
+ path: {
386
+ type: String,
387
+
388
+ },
389
+ },
390
+ gst: {
391
+ number: {
392
+ type: String,
393
+ },
394
+ path: {
395
+ type: String,
396
+
397
+ },
398
+ },
399
+ pan: {
400
+ number: {
401
+ type: String,
402
+ },
403
+ path: {
404
+ type: String,
405
+
406
+ },
407
+ },
408
+ cin: {
409
+ number: {
410
+ type: String,
411
+ },
412
+ path: {
413
+ type: String,
414
+
415
+ },
416
+ },
417
+
418
+ },
419
+ price:{
420
+ type:Number
421
+ },
422
+ paymentInvoice: {
423
+ proRate: {
424
+ type: String,
425
+ enum: ['before15','after15'],
426
+ default: 'before15',
427
+ },
428
+ paymentType: {
429
+ type:String,
430
+ enum: ['online','banktransfer'],
431
+ default: 'online',
432
+ },
433
+ paymentCycle: {
434
+ type:String,
435
+ },
436
+ currencyType: {
437
+ type:String
438
+ },
439
+ invoiceTo:{
440
+ type:Array
441
+ },
442
+ paymentAgreementTo:{
443
+ type:Array
444
+ },
445
+ invoiceOn: {
446
+ type:String,
447
+ enum: ['lastday','25th'],
448
+ default: '25th',
449
+ },
450
+ extendPaymentPeriodDays: {
451
+ type:Number,
452
+ default: 5,
453
+ },
454
+ invoiceCC:{
455
+ type:Array
456
+ },
457
+ PomNumber:{
458
+ type:String
459
+ }
460
+ },
461
+ priceType:{
462
+ type:String,
463
+ enum: ['standard','step'],
464
+ default: 'standard',
465
+ },
466
+ virtualAccount:{
467
+ accountNo:{
468
+ type:String
469
+ },
470
+ ifscCode:{
471
+ type:String
472
+ },
473
+ swiftCode:{
474
+ type:String
475
+ },
476
+ branch:{
477
+ type:String
478
+ }
479
+ },
480
+ clientApi: {
481
+ apiKey: {
482
+ type: String,
483
+ default: null,
484
+ },
485
+ status: {
486
+ type: Boolean,
487
+ default: false,
488
+ },
489
+ allowedIps: {
490
+ type: Array,
491
+ default: [ '*' ],
492
+ },
493
+ },
494
+ notifyCsmAssign: {
495
+ type: Boolean,
496
+ default:false
497
+ },
498
+ edgeApp:{
499
+ password:{
500
+ type:String,
501
+ },
502
+ },
503
+ averageTransactionValue: {
504
+ type: String,
505
+ default: ''
506
+ },
507
+ domainConfig:{
508
+ ssoLogin: {
509
+ isEnable: {
510
+ type: Boolean,
511
+ default: false,
512
+ },
513
+ domainName: {
514
+ type: Array,
515
+ },
516
+ },
517
+ ipWhitelisting: {
518
+ enableWhitelisting: {
519
+ type: Boolean,
520
+ default: false,
521
+ },
522
+ allowedIps: {
523
+ type: Array,
524
+ },
525
+ },
526
+ enableOtp:{
527
+ type: Boolean,
528
+ default: false,
529
+ }
530
+ },
531
+ storeRadiusConfig: {
532
+ type: Number,
533
+ default: 200
534
+ },
535
+ controlCenterConfigs:{
536
+ taskList:{
537
+ type: [String],
538
+ default: ['Hygiene Task','Operations','Maintenence'],
539
+ validate: {
540
+ validator: function (arr) {
541
+ return arr.length >= 1 && arr.length <= 16; // Minimum and maximum length
542
+ },
543
+ message: 'List must have between 1 and 15 task.',
544
+ },
545
+ }
546
+ }
547
+ },
548
+ {
549
+ strict: true,
550
+ versionKey: false,
551
+ timestamps: true,
552
+ },
553
+ );
554
+
555
+
556
+ export default mongoose.model( 'client', client );