tango-api-schema 2.1.45 → 2.1.47

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 (61) hide show
  1. package/index.js +119 -119
  2. package/package.json +27 -27
  3. package/schema/applicationDefault.model.js +24 -24
  4. package/schema/assignAudit.model.js +55 -55
  5. package/schema/auditLogs.model.js +77 -77
  6. package/schema/auditStoreData.model.js +56 -56
  7. package/schema/auditUserWallet.model.js +90 -90
  8. package/schema/auditUsers.model.js +39 -39
  9. package/schema/authentication.model.js +27 -27
  10. package/schema/basePricing.model.js +29 -29
  11. package/schema/billing.model.js +99 -99
  12. package/schema/binaryAudit.model.js +84 -84
  13. package/schema/camera.model.js +146 -146
  14. package/schema/checklistassignconfig.js +71 -71
  15. package/schema/checklistconfig.js +167 -167
  16. package/schema/checklistlog.js +59 -59
  17. package/schema/checklistquestionconfig.js +147 -147
  18. package/schema/client.model.js +529 -529
  19. package/schema/clientRequest.model.js +40 -40
  20. package/schema/cluster.model.js +58 -58
  21. package/schema/countryCodes.model.js +28 -28
  22. package/schema/dailyPricing.model.js +88 -88
  23. package/schema/dataMismatchDraft.model.js +22 -22
  24. package/schema/domain.js +18 -18
  25. package/schema/edgeAppVersion.model.js +33 -33
  26. package/schema/edgeappAuth.model.js +32 -32
  27. package/schema/empDetectionOutput.model.js +64 -64
  28. package/schema/externalParameter.model.js +202 -202
  29. package/schema/eyetest.model.js +18 -18
  30. package/schema/fitting.model.js +52 -52
  31. package/schema/group.model.js +36 -36
  32. package/schema/hotjar.model.js +11 -0
  33. package/schema/infraReason.model.js +44 -44
  34. package/schema/internalAuth.model.js +36 -36
  35. package/schema/invoice.model.js +106 -106
  36. package/schema/ipLogs.model.js +39 -39
  37. package/schema/lead.model.js +78 -78
  38. package/schema/lowcountReason.model.js +44 -44
  39. package/schema/mailOnlyuser.model.js +44 -44
  40. package/schema/matLog.model.js +26 -26
  41. package/schema/otp.model.js +27 -27
  42. package/schema/paymentAccount.model.js +60 -60
  43. package/schema/processedchecklist.js +184 -184
  44. package/schema/processedchecklistconfig.js +105 -105
  45. package/schema/processeddetection.js +85 -85
  46. package/schema/quality.model.js +57 -57
  47. package/schema/report.model.js +30 -30
  48. package/schema/standaredRole.model.js +56 -56
  49. package/schema/store.model.js +325 -325
  50. package/schema/storeAudit.model.js +62 -62
  51. package/schema/storeEmpDetection.model.js +62 -62
  52. package/schema/tagging.model.js +44 -44
  53. package/schema/tangoTicket.model.js +210 -210
  54. package/schema/teams.model.js +48 -48
  55. package/schema/transaction.model.js +54 -54
  56. package/schema/traxAuditData.model.js +61 -61
  57. package/schema/user.model.js +121 -121
  58. package/schema/userAssignedStore.model.js +41 -41
  59. package/schema/userAudit.model.js +77 -77
  60. package/schema/userEmpDetection.model.js +81 -81
  61. package/schema/workstation.model.js +77 -77
@@ -1,529 +1,529 @@
1
- import mongoose from 'mongoose';
2
- import mongooseUniqueValidator from 'mongoose-unique-validator';
3
-
4
- const client = new mongoose.Schema(
5
- {
6
- clientName: {
7
- type: String,
8
- trim: true,
9
- required: true,
10
- unique: true,
11
- },
12
- clientId: {
13
- type: String,
14
- trim: true,
15
- required: true,
16
- unique: true,
17
- },
18
- tangoId: {
19
- type: Number,
20
- require: true,
21
- },
22
- userId: {
23
- type: mongoose.Types.ObjectId,
24
- required: true,
25
- },
26
- planDetails: {
27
- totalStores: {
28
- type: String,
29
- require: true,
30
- },
31
- storeSize: {
32
- type: String,
33
- require: true,
34
- },
35
- totalCamera: {
36
- type: Number,
37
- require: true,
38
- },
39
- subscriptionPeriod: {
40
- type: String,
41
- enum: ['monthly','quarterly','annual'],
42
- },
43
- subscriptionType: {
44
- type: String,
45
- enum: ['free','premium','enterprise'],
46
- },
47
- paymentStatus: {
48
- type: String,
49
- enum: ['free','trial','paid','unbilled','due'],
50
- },
51
- product: [
52
- {
53
- productName: {
54
- type: String,
55
- },
56
- trialStartDate: {
57
- type: Date,
58
- },
59
- trialEndDate: {
60
- type: Date,
61
- },
62
- subscribedDate: {
63
- type: Date
64
- },
65
- status: {
66
- type: String,
67
- enum: ['trial','live'],
68
- default: 'trial'
69
- }
70
- }
71
- ],
72
- },
73
- status: {
74
- type: String,
75
- enum: ['active','deactive','hold','suspended'],
76
- default: 'active'
77
- },
78
- profileDetails: {
79
- logo: {
80
- type: String
81
- },
82
- registeredCompanyName: {
83
- type: String,
84
- },
85
- industry: {
86
- type: String,
87
- enum: ['apparel','footwear','skincare','foodandbeverage','techstartup','grooming','leather','furniture','mattress','customerelectronics','jewellery','interiordesign','ev','fintech','perfume','fashionaccessories','innerwear','nutrition','fashionandlifestyle','eyewear']
88
- },
89
- clientType: {
90
- type: String,
91
- enum: ['partnership','proprietorship','pvtltd','person']
92
- },
93
- registeredAddress: {
94
- type: String,
95
- },
96
- headQuarters: {
97
- type: String,
98
- },
99
- website: {
100
- type: String,
101
- },
102
- },
103
- billingDetails: {
104
- tradeName: {
105
- type: String,
106
- },
107
- gstNumber: {
108
- type: String,
109
- },
110
- authorityName: {
111
- type: String,
112
- },
113
- authorityEmail: {
114
- type: String,
115
- },
116
- billingAddress: {
117
- type: String,
118
- },
119
- companyName: {
120
- type: String,
121
- },
122
- PlaceOfSupply: {
123
- type: String,
124
- },
125
- },
126
- signatoryDetail: {
127
- name: {
128
- type: String,
129
- },
130
- email: {
131
- type: String,
132
- },
133
- number: {
134
- type: String,
135
- },
136
- designation: {
137
- type: String,
138
- },
139
- },
140
- ticketConfigs: {
141
- installationReAssign: {
142
- type: Number,
143
- default:0
144
- },
145
- downTimeType: {
146
- type: Number, // 0 for one camera and 1 for multi cameras
147
- enum:[0,1],
148
- default:0
149
- },
150
- infraReport:{},
151
- infraDownTime: {
152
- type: Number,
153
- default:1,
154
- enum:[1,2,3,4,5,6,8,9,10,11,12]
155
- },
156
- MinFilesCount:{
157
- type: Number,
158
- default:0
159
- },
160
- rcaTicketAssign:{// root cause anlysis
161
- type: Number,
162
- enum:[1,2,3,4,5,6,8,9,10,11,12],
163
- default:1
164
- },
165
- refreshAlert:{
166
- type: Number,
167
- default:1,
168
- enum:[0,1,2,3,4,5,6,8,9,10]
169
- },
170
- statusCheckAlert:{
171
- type: Number,
172
- default:1,
173
- enum:[1,2,3,4,5,6,8,9,10,11,12]
174
- },
175
- accuracyPercentage: {
176
- type: Number, // in less than
177
- default:10
178
- },
179
- reTrain: {
180
- type: Number, // calculate no of past days
181
- enum:[1,2,3,4,5,6,8,9,10,11,12],
182
- default:1
183
- },
184
- emailAlert:{
185
- type: Boolean,
186
- default: false
187
- },
188
- matConfig:{
189
- enabled:{
190
- type: Boolean,
191
- default: false
192
- }
193
- }
194
- },
195
- reportConfigs: {
196
- report: {
197
- type: Boolean,
198
- default:true
199
- },
200
- reportName: {
201
- type: String,
202
- },
203
- },
204
- auditConfigs: {
205
- audit: {
206
- type: Boolean,
207
- default: true
208
- },
209
- count:{
210
- type:Number,
211
- default:200
212
- },
213
- ratio:{
214
- type:Number,
215
- default:0.75,
216
- },
217
- queueName: {
218
- type: String,
219
- },
220
- zoneQueueName: {
221
- type: String,
222
- },
223
- trafficQueueName: {
224
- type: String,
225
- },
226
- traxQueueName: {
227
- unattendedCustomer :{
228
- type:String
229
- },
230
- leftInMiddle:{
231
- type:String
232
- },
233
- uniformDetection:{
234
- type:String
235
- },
236
- mobileDetection:{
237
- type:String
238
- },
239
- cameraAngleChange:{
240
- type:String
241
- }
242
- }
243
- },
244
- assignedUsers: {
245
- csm: {
246
- type: Object,
247
- },
248
- ops: {
249
- type: Array,
250
- },
251
- },
252
- featureConfigs: {
253
- open: {
254
- type: String,
255
- default: "10:00:00"
256
- },
257
- close: {
258
- type: String,
259
- default: "23:00:00"
260
- },
261
- infraAlert: {
262
- condition: {
263
- type: String,
264
- default:"<"
265
- },
266
- value: {
267
- type: Number,
268
- default:"1"
269
- },
270
- },
271
- bouncedLimit: {
272
- condition: {
273
- type: String,
274
- default:'<='
275
- },
276
- value: {
277
- type: Number,
278
- default: "1"
279
- },
280
- },
281
- missedOpportunityFrom: {
282
- condition: {
283
- type: String,
284
- default: '>'
285
- },
286
- value: {
287
- type: Number,
288
- default:'1'
289
- },
290
- },
291
- missedOpportunityTo: {
292
- condition: {
293
- type: String,
294
- default:"<="
295
- },
296
- value: {
297
- type: Number,
298
- default:"5"
299
- },
300
- },
301
- conversion: {
302
- condition: {
303
- type: String,
304
- default:">"
305
- },
306
- value: {
307
- type: Number,
308
- default:'5'
309
- },
310
- },
311
- billableCalculation: {
312
- type: String,
313
- default:"engagers-count"
314
- },
315
- missedOpportunityCalculation: {
316
- type: String,
317
- default:"engagers-conversion"
318
- },
319
- conversionCalculation: {
320
- type: String,
321
- default:"engagers-count"
322
- },
323
- isNormalized: {
324
- type: Boolean,
325
- default: false,
326
- },
327
- isPasserByData: {
328
- type: Boolean,
329
- default: false,
330
- },
331
- isFootfallDirectory: {
332
- type: Boolean,
333
- default: false,
334
- },
335
- isExcludedArea:{
336
- type:Boolean,
337
- default:true
338
- },
339
- updateFeatureConfig:{
340
- type:Boolean,
341
- default:true
342
- },
343
- isCameraDisabled:{
344
- type:Boolean,
345
- default:false
346
- },
347
- isbillingDisabled:{
348
- type:Boolean,
349
- default:false
350
- },
351
- isNewDashboard:{
352
- type:Boolean,
353
- default:false
354
- },
355
- isFootfallAuditStores:{
356
- type:Boolean,
357
- default:false
358
- },
359
- isNewTraffic:{
360
- type:Boolean,
361
- default:false
362
- },
363
- isNewZone:{
364
- type:Boolean,
365
- default:false
366
- },
367
- isNewReports:{
368
- type:Boolean,
369
- default:false
370
- },
371
- },
372
- document: {
373
- addressProof: {
374
- path: {
375
- type: String,
376
-
377
- },
378
- },
379
- gst: {
380
- number: {
381
- type: String,
382
- },
383
- path: {
384
- type: String,
385
-
386
- },
387
- },
388
- pan: {
389
- number: {
390
- type: String,
391
- },
392
- path: {
393
- type: String,
394
-
395
- },
396
- },
397
- cin: {
398
- number: {
399
- type: String,
400
- },
401
- path: {
402
- type: String,
403
-
404
- },
405
- },
406
-
407
- },
408
- price:{
409
- type:Number
410
- },
411
- paymentInvoice: {
412
- proRate: {
413
- type: String,
414
- enum: ['before15','after15'],
415
- default: 'before15',
416
- },
417
- paymentType: {
418
- type:String,
419
- enum: ['online','banktransfer'],
420
- default: 'online',
421
- },
422
- paymentCycle: {
423
- type:String,
424
- },
425
- currencyType: {
426
- type:String
427
- },
428
- invoiceTo:{
429
- type:Array
430
- },
431
- paymentAgreementTo:{
432
- type:Array
433
- },
434
- invoiceOn: {
435
- type:String,
436
- enum: ['lastday','25th'],
437
- default: '25th',
438
- },
439
- extendPaymentPeriodDays: {
440
- type:Number,
441
- default: 5,
442
- },
443
- invoiceCC:{
444
- type:Array
445
- },
446
- PomNumber:{
447
- type:String
448
- }
449
- },
450
- priceType:{
451
- type:String,
452
- enum: ['standard','step'],
453
- default: 'standard',
454
- },
455
- virtualAccount:{
456
- accountNo:{
457
- type:String
458
- },
459
- ifscCode:{
460
- type:String
461
- },
462
- swiftCode:{
463
- type:String
464
- },
465
- branch:{
466
- type:String
467
- }
468
- },
469
- clientApi: {
470
- apiKey: {
471
- type: String,
472
- default: null,
473
- },
474
- status: {
475
- type: Boolean,
476
- default: false,
477
- },
478
- allowedIps: {
479
- type: Array,
480
- default: [ '*' ],
481
- },
482
- },
483
- notifyCsmAssign: {
484
- type: Boolean,
485
- default:false
486
- },
487
- edgeApp:{
488
- password:{
489
- type:String,
490
- },
491
- },
492
- averageTransactionValue: {
493
- type: String,
494
- default: ''
495
- },
496
- domainConfig:{
497
- ssoLogin: {
498
- isEnable: {
499
- type: Boolean,
500
- default: false,
501
- },
502
- domainName: {
503
- type: Array,
504
- },
505
- },
506
- ipWhitelisting: {
507
- enableWhitelisting: {
508
- type: Boolean,
509
- default: false,
510
- },
511
- allowedIps: {
512
- type: Array,
513
- },
514
- },
515
- enableOtp:{
516
- type: Boolean,
517
- default: false,
518
- }
519
- },
520
- },
521
- {
522
- strict: true,
523
- versionKey: false,
524
- timestamps: true,
525
- },
526
- );
527
-
528
- client.plugin( mongooseUniqueValidator );
529
- export default mongoose.model( 'client', client );
1
+ import mongoose from 'mongoose';
2
+ import mongooseUniqueValidator from 'mongoose-unique-validator';
3
+
4
+ const client = new mongoose.Schema(
5
+ {
6
+ clientName: {
7
+ type: String,
8
+ trim: true,
9
+ required: true,
10
+ unique: true,
11
+ },
12
+ clientId: {
13
+ type: String,
14
+ trim: true,
15
+ required: true,
16
+ unique: true,
17
+ },
18
+ tangoId: {
19
+ type: Number,
20
+ require: true,
21
+ },
22
+ userId: {
23
+ type: mongoose.Types.ObjectId,
24
+ required: true,
25
+ },
26
+ planDetails: {
27
+ totalStores: {
28
+ type: String,
29
+ require: true,
30
+ },
31
+ storeSize: {
32
+ type: String,
33
+ require: true,
34
+ },
35
+ totalCamera: {
36
+ type: Number,
37
+ require: true,
38
+ },
39
+ subscriptionPeriod: {
40
+ type: String,
41
+ enum: ['monthly','quarterly','annual'],
42
+ },
43
+ subscriptionType: {
44
+ type: String,
45
+ enum: ['free','premium','enterprise'],
46
+ },
47
+ paymentStatus: {
48
+ type: String,
49
+ enum: ['free','trial','paid','unbilled','due'],
50
+ },
51
+ product: [
52
+ {
53
+ productName: {
54
+ type: String,
55
+ },
56
+ trialStartDate: {
57
+ type: Date,
58
+ },
59
+ trialEndDate: {
60
+ type: Date,
61
+ },
62
+ subscribedDate: {
63
+ type: Date
64
+ },
65
+ status: {
66
+ type: String,
67
+ enum: ['trial','live'],
68
+ default: 'trial'
69
+ }
70
+ }
71
+ ],
72
+ },
73
+ status: {
74
+ type: String,
75
+ enum: ['active','deactive','hold','suspended'],
76
+ default: 'active'
77
+ },
78
+ profileDetails: {
79
+ logo: {
80
+ type: String
81
+ },
82
+ registeredCompanyName: {
83
+ type: String,
84
+ },
85
+ industry: {
86
+ type: String,
87
+ enum: ['apparel','footwear','skincare','foodandbeverage','techstartup','grooming','leather','furniture','mattress','customerelectronics','jewellery','interiordesign','ev','fintech','perfume','fashionaccessories','innerwear','nutrition','fashionandlifestyle','eyewear']
88
+ },
89
+ clientType: {
90
+ type: String,
91
+ enum: ['partnership','proprietorship','pvtltd','person']
92
+ },
93
+ registeredAddress: {
94
+ type: String,
95
+ },
96
+ headQuarters: {
97
+ type: String,
98
+ },
99
+ website: {
100
+ type: String,
101
+ },
102
+ },
103
+ billingDetails: {
104
+ tradeName: {
105
+ type: String,
106
+ },
107
+ gstNumber: {
108
+ type: String,
109
+ },
110
+ authorityName: {
111
+ type: String,
112
+ },
113
+ authorityEmail: {
114
+ type: String,
115
+ },
116
+ billingAddress: {
117
+ type: String,
118
+ },
119
+ companyName: {
120
+ type: String,
121
+ },
122
+ PlaceOfSupply: {
123
+ type: String,
124
+ },
125
+ },
126
+ signatoryDetail: {
127
+ name: {
128
+ type: String,
129
+ },
130
+ email: {
131
+ type: String,
132
+ },
133
+ number: {
134
+ type: String,
135
+ },
136
+ designation: {
137
+ type: String,
138
+ },
139
+ },
140
+ ticketConfigs: {
141
+ installationReAssign: {
142
+ type: Number,
143
+ default:0
144
+ },
145
+ downTimeType: {
146
+ type: Number, // 0 for one camera and 1 for multi cameras
147
+ enum:[0,1],
148
+ default:0
149
+ },
150
+ infraReport:{},
151
+ infraDownTime: {
152
+ type: Number,
153
+ default:1,
154
+ enum:[1,2,3,4,5,6,8,9,10,11,12]
155
+ },
156
+ MinFilesCount:{
157
+ type: Number,
158
+ default:0
159
+ },
160
+ rcaTicketAssign:{// root cause anlysis
161
+ type: Number,
162
+ enum:[1,2,3,4,5,6,8,9,10,11,12],
163
+ default:1
164
+ },
165
+ refreshAlert:{
166
+ type: Number,
167
+ default:1,
168
+ enum:[0,1,2,3,4,5,6,8,9,10]
169
+ },
170
+ statusCheckAlert:{
171
+ type: Number,
172
+ default:1,
173
+ enum:[1,2,3,4,5,6,8,9,10,11,12]
174
+ },
175
+ accuracyPercentage: {
176
+ type: Number, // in less than
177
+ default:10
178
+ },
179
+ reTrain: {
180
+ type: Number, // calculate no of past days
181
+ enum:[1,2,3,4,5,6,8,9,10,11,12],
182
+ default:1
183
+ },
184
+ emailAlert:{
185
+ type: Boolean,
186
+ default: false
187
+ },
188
+ matConfig:{
189
+ enabled:{
190
+ type: Boolean,
191
+ default: false
192
+ }
193
+ }
194
+ },
195
+ reportConfigs: {
196
+ report: {
197
+ type: Boolean,
198
+ default:true
199
+ },
200
+ reportName: {
201
+ type: String,
202
+ },
203
+ },
204
+ auditConfigs: {
205
+ audit: {
206
+ type: Boolean,
207
+ default: true
208
+ },
209
+ count:{
210
+ type:Number,
211
+ default:200
212
+ },
213
+ ratio:{
214
+ type:Number,
215
+ default:0.75,
216
+ },
217
+ queueName: {
218
+ type: String,
219
+ },
220
+ zoneQueueName: {
221
+ type: String,
222
+ },
223
+ trafficQueueName: {
224
+ type: String,
225
+ },
226
+ traxQueueName: {
227
+ unattendedCustomer :{
228
+ type:String
229
+ },
230
+ leftInMiddle:{
231
+ type:String
232
+ },
233
+ uniformDetection:{
234
+ type:String
235
+ },
236
+ mobileDetection:{
237
+ type:String
238
+ },
239
+ cameraAngleChange:{
240
+ type:String
241
+ }
242
+ }
243
+ },
244
+ assignedUsers: {
245
+ csm: {
246
+ type: Object,
247
+ },
248
+ ops: {
249
+ type: Array,
250
+ },
251
+ },
252
+ featureConfigs: {
253
+ open: {
254
+ type: String,
255
+ default: "10:00:00"
256
+ },
257
+ close: {
258
+ type: String,
259
+ default: "23:00:00"
260
+ },
261
+ infraAlert: {
262
+ condition: {
263
+ type: String,
264
+ default:"<"
265
+ },
266
+ value: {
267
+ type: Number,
268
+ default:"1"
269
+ },
270
+ },
271
+ bouncedLimit: {
272
+ condition: {
273
+ type: String,
274
+ default:'<='
275
+ },
276
+ value: {
277
+ type: Number,
278
+ default: "1"
279
+ },
280
+ },
281
+ missedOpportunityFrom: {
282
+ condition: {
283
+ type: String,
284
+ default: '>'
285
+ },
286
+ value: {
287
+ type: Number,
288
+ default:'1'
289
+ },
290
+ },
291
+ missedOpportunityTo: {
292
+ condition: {
293
+ type: String,
294
+ default:"<="
295
+ },
296
+ value: {
297
+ type: Number,
298
+ default:"5"
299
+ },
300
+ },
301
+ conversion: {
302
+ condition: {
303
+ type: String,
304
+ default:">"
305
+ },
306
+ value: {
307
+ type: Number,
308
+ default:'5'
309
+ },
310
+ },
311
+ billableCalculation: {
312
+ type: String,
313
+ default:"engagers-count"
314
+ },
315
+ missedOpportunityCalculation: {
316
+ type: String,
317
+ default:"engagers-conversion"
318
+ },
319
+ conversionCalculation: {
320
+ type: String,
321
+ default:"engagers-count"
322
+ },
323
+ isNormalized: {
324
+ type: Boolean,
325
+ default: false,
326
+ },
327
+ isPasserByData: {
328
+ type: Boolean,
329
+ default: false,
330
+ },
331
+ isFootfallDirectory: {
332
+ type: Boolean,
333
+ default: false,
334
+ },
335
+ isExcludedArea:{
336
+ type:Boolean,
337
+ default:true
338
+ },
339
+ updateFeatureConfig:{
340
+ type:Boolean,
341
+ default:true
342
+ },
343
+ isCameraDisabled:{
344
+ type:Boolean,
345
+ default:false
346
+ },
347
+ isbillingDisabled:{
348
+ type:Boolean,
349
+ default:false
350
+ },
351
+ isNewDashboard:{
352
+ type:Boolean,
353
+ default:false
354
+ },
355
+ isFootfallAuditStores:{
356
+ type:Boolean,
357
+ default:false
358
+ },
359
+ isNewTraffic:{
360
+ type:Boolean,
361
+ default:false
362
+ },
363
+ isNewZone:{
364
+ type:Boolean,
365
+ default:false
366
+ },
367
+ isNewReports:{
368
+ type:Boolean,
369
+ default:false
370
+ },
371
+ },
372
+ document: {
373
+ addressProof: {
374
+ path: {
375
+ type: String,
376
+
377
+ },
378
+ },
379
+ gst: {
380
+ number: {
381
+ type: String,
382
+ },
383
+ path: {
384
+ type: String,
385
+
386
+ },
387
+ },
388
+ pan: {
389
+ number: {
390
+ type: String,
391
+ },
392
+ path: {
393
+ type: String,
394
+
395
+ },
396
+ },
397
+ cin: {
398
+ number: {
399
+ type: String,
400
+ },
401
+ path: {
402
+ type: String,
403
+
404
+ },
405
+ },
406
+
407
+ },
408
+ price:{
409
+ type:Number
410
+ },
411
+ paymentInvoice: {
412
+ proRate: {
413
+ type: String,
414
+ enum: ['before15','after15'],
415
+ default: 'before15',
416
+ },
417
+ paymentType: {
418
+ type:String,
419
+ enum: ['online','banktransfer'],
420
+ default: 'online',
421
+ },
422
+ paymentCycle: {
423
+ type:String,
424
+ },
425
+ currencyType: {
426
+ type:String
427
+ },
428
+ invoiceTo:{
429
+ type:Array
430
+ },
431
+ paymentAgreementTo:{
432
+ type:Array
433
+ },
434
+ invoiceOn: {
435
+ type:String,
436
+ enum: ['lastday','25th'],
437
+ default: '25th',
438
+ },
439
+ extendPaymentPeriodDays: {
440
+ type:Number,
441
+ default: 5,
442
+ },
443
+ invoiceCC:{
444
+ type:Array
445
+ },
446
+ PomNumber:{
447
+ type:String
448
+ }
449
+ },
450
+ priceType:{
451
+ type:String,
452
+ enum: ['standard','step'],
453
+ default: 'standard',
454
+ },
455
+ virtualAccount:{
456
+ accountNo:{
457
+ type:String
458
+ },
459
+ ifscCode:{
460
+ type:String
461
+ },
462
+ swiftCode:{
463
+ type:String
464
+ },
465
+ branch:{
466
+ type:String
467
+ }
468
+ },
469
+ clientApi: {
470
+ apiKey: {
471
+ type: String,
472
+ default: null,
473
+ },
474
+ status: {
475
+ type: Boolean,
476
+ default: false,
477
+ },
478
+ allowedIps: {
479
+ type: Array,
480
+ default: [ '*' ],
481
+ },
482
+ },
483
+ notifyCsmAssign: {
484
+ type: Boolean,
485
+ default:false
486
+ },
487
+ edgeApp:{
488
+ password:{
489
+ type:String,
490
+ },
491
+ },
492
+ averageTransactionValue: {
493
+ type: String,
494
+ default: ''
495
+ },
496
+ domainConfig:{
497
+ ssoLogin: {
498
+ isEnable: {
499
+ type: Boolean,
500
+ default: false,
501
+ },
502
+ domainName: {
503
+ type: Array,
504
+ },
505
+ },
506
+ ipWhitelisting: {
507
+ enableWhitelisting: {
508
+ type: Boolean,
509
+ default: false,
510
+ },
511
+ allowedIps: {
512
+ type: Array,
513
+ },
514
+ },
515
+ enableOtp:{
516
+ type: Boolean,
517
+ default: false,
518
+ }
519
+ },
520
+ },
521
+ {
522
+ strict: true,
523
+ versionKey: false,
524
+ timestamps: true,
525
+ },
526
+ );
527
+
528
+ client.plugin( mongooseUniqueValidator );
529
+ export default mongoose.model( 'client', client );