tango-api-schema 2.4.20 → 2.4.21

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 (2) hide show
  1. package/package.json +27 -27
  2. package/schema/client.model.js +638 -634
@@ -1,483 +1,483 @@
1
1
  import mongoose from 'mongoose';
2
2
 
3
3
  const client = new mongoose.Schema(
4
- {
5
- clientName: {
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: {
6
27
  type: String,
7
- trim: true,
8
- required: true,
9
- unique: true,
28
+ require: true,
10
29
  },
11
- clientId: {
30
+ storeSize: {
12
31
  type: String,
13
- trim: true,
14
- required: true,
15
- unique: true,
32
+ require: true,
16
33
  },
17
- tangoId: {
34
+ totalCamera: {
18
35
  type: Number,
19
36
  require: true,
20
37
  },
21
- userId: {
22
- type: mongoose.Types.ObjectId,
23
- required: true,
38
+ subscriptionPeriod: {
39
+ type: String,
40
+ enum: ['monthly', 'quarterly', 'annual'],
24
41
  },
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
- }
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'
69
68
  }
70
- ],
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
71
80
  },
72
- status: {
81
+ registeredCompanyName: {
73
82
  type: String,
74
- enum: ['active','deactive','hold','suspended'],
75
- default: 'active'
76
83
  },
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
- },
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']
101
87
  },
102
- revopConfig:{
103
- limit:{
104
- type:Number,
105
- default:5
106
- },
88
+ clientType: {
89
+ type: String,
90
+ enum: ['partnership', 'proprietorship', 'pvtltd', 'person']
107
91
  },
108
- billingDetails: {
109
- tradeName: {
110
- type: String,
111
- },
112
- gstNumber: {
113
- type: String,
114
- },
115
- authorityName: {
116
- type: String,
117
- },
118
- authorityEmail: {
119
- type: String,
120
- },
121
- billingAddress: {
122
- type: String,
123
- },
124
- companyName: {
125
- type: String,
126
- },
127
- PlaceOfSupply: {
128
- type: String,
129
- },
92
+ registeredAddress: {
93
+ type: String,
130
94
  },
131
- signatoryDetail: {
132
- name: {
133
- type: String,
134
- },
135
- email: {
136
- type: String,
137
- },
138
- number: {
139
- type: String,
140
- },
141
- designation: {
142
- type: String,
143
- },
95
+ headQuarters: {
96
+ type: String,
144
97
  },
145
- ticketConfigs: {
146
- installationReAssign: {
147
- type: Number,
148
- default:0
149
- },
150
- downTimeType: {
151
- type: Number, // 0 for one camera and 1 for multi cameras
152
- enum:[0,1],
153
- default:0
154
- },
155
- infraReport:{},
156
- infraDownTime: {
157
- type: Number,
158
- default:1,
159
- enum:[1,2,3,4,5,6,8,9,10,11,12]
160
- },
161
- MinFilesCount:{
162
- type: Number,
163
- default:0
164
- },
165
- rcaTicketAssign:{// root cause anlysis
166
- type: Number,
167
- enum:[1,2,3,4,5,6,8,9,10,11,12],
168
- default:1
169
- },
170
- refreshAlert:{
171
- type: Number,
172
- default:1,
173
- enum:[0,1,2,3,4,5,6,8,9,10]
174
- },
175
- statusCheckAlert:{
176
- type: Number,
177
- default:1,
178
- enum:[1,2,3,4,5,6,8,9,10,11,12]
179
- },
180
- accuracyPercentage: {
181
- type: Number, // in less than
182
- default:10
183
- },
184
- reTrain: {
185
- type: Number, // calculate no of past days
186
- enum:[1,2,3,4,5,6,8,9,10,11,12],
187
- default:1
188
- },
189
- emailAlert:{
98
+ website: {
99
+ type: String,
100
+ },
101
+ },
102
+ revopConfig: {
103
+ limit: {
104
+ type: Number,
105
+ default: 5
106
+ },
107
+ },
108
+ billingDetails: {
109
+ tradeName: {
110
+ type: String,
111
+ },
112
+ gstNumber: {
113
+ type: String,
114
+ },
115
+ authorityName: {
116
+ type: String,
117
+ },
118
+ authorityEmail: {
119
+ type: String,
120
+ },
121
+ billingAddress: {
122
+ type: String,
123
+ },
124
+ companyName: {
125
+ type: String,
126
+ },
127
+ PlaceOfSupply: {
128
+ type: String,
129
+ },
130
+ },
131
+ signatoryDetail: {
132
+ name: {
133
+ type: String,
134
+ },
135
+ email: {
136
+ type: String,
137
+ },
138
+ number: {
139
+ type: String,
140
+ },
141
+ designation: {
142
+ type: String,
143
+ },
144
+ },
145
+ ticketConfigs: {
146
+ installationReAssign: {
147
+ type: Number,
148
+ default: 0
149
+ },
150
+ downTimeType: {
151
+ type: Number, // 0 for one camera and 1 for multi cameras
152
+ enum: [0, 1],
153
+ default: 0
154
+ },
155
+ infraReport: {},
156
+ infraDownTime: {
157
+ type: Number,
158
+ default: 1,
159
+ enum: [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12]
160
+ },
161
+ MinFilesCount: {
162
+ type: Number,
163
+ default: 0
164
+ },
165
+ rcaTicketAssign: {// root cause anlysis
166
+ type: Number,
167
+ enum: [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12],
168
+ default: 1
169
+ },
170
+ refreshAlert: {
171
+ type: Number,
172
+ default: 1,
173
+ enum: [0, 1, 2, 3, 4, 5, 6, 8, 9, 10]
174
+ },
175
+ statusCheckAlert: {
176
+ type: Number,
177
+ default: 1,
178
+ enum: [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12]
179
+ },
180
+ accuracyPercentage: {
181
+ type: Number, // in less than
182
+ default: 10
183
+ },
184
+ reTrain: {
185
+ type: Number, // calculate no of past days
186
+ enum: [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12],
187
+ default: 1
188
+ },
189
+ emailAlert: {
190
+ type: Boolean,
191
+ default: false
192
+ },
193
+ matConfig: {
194
+ enabled: {
190
195
  type: Boolean,
191
196
  default: false
192
- },
193
- matConfig:{
194
- enabled:{
195
- type: Boolean,
196
- default: false
197
- }
198
197
  }
198
+ }
199
+ },
200
+ reportConfigs: {
201
+ report: {
202
+ type: Boolean,
203
+ default: true
199
204
  },
200
- reportConfigs: {
201
- report: {
202
- type: Boolean,
203
- default:true
204
- },
205
- reportName: {
206
- type: String,
207
- },
208
- reportType:{
209
- type:String,
210
- enum:["manual","automate"],
211
- default:"manual"
212
- }
205
+ reportName: {
206
+ type: String,
213
207
  },
214
- auditConfigs: {
215
- audit: {
216
- type: Boolean,
217
- default: true
208
+ reportType: {
209
+ type: String,
210
+ enum: ["manual", "automate"],
211
+ default: "manual"
212
+ }
213
+ },
214
+ auditConfigs: {
215
+ audit: {
216
+ type: Boolean,
217
+ default: true
218
+ },
219
+ traxAudit: {
220
+ type: Boolean,
221
+ default: false
222
+ },
223
+ trackAudit: {
224
+ type: Boolean,
225
+ default: true
226
+ },
227
+ count: {
228
+ type: Number,
229
+ default: 200
230
+ },
231
+ ratio: {
232
+ type: Number,
233
+ default: 0.75,
234
+ },
235
+ queueName: {
236
+ type: String,
237
+ },
238
+ zoneQueueName: {
239
+ type: String,
240
+ },
241
+ trafficQueueName: {
242
+ type: String,
243
+ },
244
+ trackQueueName: {
245
+ type: String,
246
+ },
247
+ traxQueueName: {
248
+ unattendedCustomer: {
249
+ type: String
218
250
  },
219
- traxAudit: {
220
- type: Boolean,
221
- default: false
251
+ leftInMiddle: {
252
+ type: String
222
253
  },
223
- trackAudit: {
224
- type: Boolean,
225
- default: true
254
+ uniformDetection: {
255
+ type: String
226
256
  },
227
- count:{
228
- type:Number,
229
- default:200
257
+ mobileDetection: {
258
+ type: String
230
259
  },
231
- ratio:{
232
- type:Number,
233
- default:0.75,
260
+ cameraAngleChange: {
261
+ type: String
234
262
  },
235
- queueName: {
236
- type: String,
263
+ hygiene: {
264
+ type: String
237
265
  },
238
- zoneQueueName: {
239
- type: String,
266
+ eyeTestCamera: {
267
+ type: String
240
268
  },
241
- trafficQueueName: {
242
- type: String,
269
+ cleaning: {
270
+ type: String
243
271
  },
244
- trackQueueName: {
245
- type: String,
272
+ scrum: {
273
+ type: String
246
274
  },
247
- traxQueueName: {
248
- unattendedCustomer :{
249
- type:String
250
- },
251
- leftInMiddle:{
252
- type:String
253
- },
254
- uniformDetection:{
255
- type:String
256
- },
257
- mobileDetection:{
258
- type:String
259
- },
260
- cameraAngleChange:{
261
- type:String
262
- },
263
- hygiene:{
264
- type:String
265
- },
266
- eyeTestCamera:{
267
- type:String
268
- },
269
- cleaning:{
270
- type:String
271
- },
272
- scrum:{
273
- type:String
274
- },
275
- openClose:{
276
- type:String
277
- },
278
- anomaly:{
279
- type:String
280
- }
275
+ openClose: {
276
+ type: String
277
+ },
278
+ anomaly: {
279
+ type: String
281
280
  }
281
+ }
282
+ },
283
+ assignedUsers: {
284
+ csm: {
285
+ type: Object,
282
286
  },
283
- assignedUsers: {
284
- csm: {
285
- type: Object,
287
+ ops: {
288
+ type: Array,
289
+ },
290
+ },
291
+ featureConfigs: {
292
+ open: {
293
+ type: String,
294
+ default: "10:00:00"
295
+ },
296
+ close: {
297
+ type: String,
298
+ default: "23:00:00"
299
+ },
300
+ infraAlert: {
301
+ condition: {
302
+ type: String,
303
+ default: "<"
286
304
  },
287
- ops: {
288
- type: Array,
305
+ value: {
306
+ type: Number,
307
+ default: "1"
289
308
  },
290
309
  },
291
- featureConfigs: {
292
- open: {
310
+ bouncedLimit: {
311
+ condition: {
293
312
  type: String,
294
- default: "10:00:00"
313
+ default: '<='
295
314
  },
296
- close: {
315
+ value: {
297
316
  type: String,
298
- default: "23:00:00"
299
- },
300
- infraAlert: {
301
- condition: {
302
- type: String,
303
- default:"<"
304
- },
305
- value: {
306
- type: Number,
307
- default:"1"
308
- },
309
- },
310
- bouncedLimit: {
311
- condition: {
312
- type: String,
313
- default:'<='
314
- },
315
- value: {
316
- type: String,
317
- default: "1"
318
- },
319
- },
320
- missedOpportunityFrom: {
321
- condition: {
322
- type: String,
323
- default: '>'
324
- },
325
- value: {
326
- type: String,
327
- default:'1'
328
- },
329
- },
330
- missedOpportunityTo: {
331
- condition: {
332
- type: String,
333
- default:"<="
334
- },
335
- value: {
336
- type: String,
337
- default:"5"
338
- },
339
- },
340
- conversion: {
341
- condition: {
342
- type: String,
343
- default:">"
344
- },
345
- value: {
346
- type: String,
347
- default:'5'
348
- },
317
+ default: "1"
349
318
  },
350
- billableCalculation: {
319
+ },
320
+ missedOpportunityFrom: {
321
+ condition: {
351
322
  type: String,
352
- default:"engagers-count"
323
+ default: '>'
353
324
  },
354
- missedOpportunityCalculation: {
325
+ value: {
355
326
  type: String,
356
- default:"engagers-conversion"
327
+ default: '1'
357
328
  },
358
- conversionCalculation: {
329
+ },
330
+ missedOpportunityTo: {
331
+ condition: {
359
332
  type: String,
360
- default:"engagers-count"
361
- },
362
- isNormalized: {
363
- type: Boolean,
364
- default: false,
365
- },
366
- isPasserByData: {
367
- type: Boolean,
368
- default: false,
369
- },
370
- isFootfallDirectory: {
371
- type: Boolean,
372
- default: false,
373
- },
374
- isExcludedArea:{
375
- type:Boolean,
376
- default:true
377
- },
378
- updateFeatureConfig:{
379
- type:Boolean,
380
- default:true
381
- },
382
- isCameraDisabled:{
383
- type:Boolean,
384
- default:false
385
- },
386
- isbillingDisabled:{
387
- type:Boolean,
388
- default:false
389
- },
390
- isNewDashboard:{
391
- type:Boolean,
392
- default:false
393
- },
394
- isFootfallAuditStores:{
395
- type:Boolean,
396
- default:false
397
- },
398
- isNewTraffic:{
399
- type:Boolean,
400
- default:false
401
- },
402
- isNewZone:{
403
- type:Boolean,
404
- default:false
405
- },
406
- isNewReports:{
407
- type:Boolean,
408
- default:false
409
- },
410
- isNOB:{
411
- type:Boolean,
412
- default:false
413
- },
414
- isNewZoneV2:{
415
- type:Boolean,
416
- default:false
417
- },
418
- isTrax:{
419
- type:Boolean,
420
- default:false
421
- },
422
- isControlCenter:{
423
- type:Boolean,
424
- default:false
425
- },
426
- isFootfallDirectoryAudit:{
427
- type:Boolean,
428
- default:false
429
- },
430
- isFootfallDirectoryLimit:{
431
- type:Boolean,
432
- default:false
433
- },
434
- isRevops:{
435
- type:Boolean,
436
- default:false
437
- },
438
- traxDateRange:{
439
- type:Number,
440
- default:30
441
- },
442
- trafficDateRange:{
443
- type:Number,
444
- default:180
333
+ default: "<="
445
334
  },
446
- streamBy:{
335
+ value: {
447
336
  type: String,
448
- enum: ["Rtsp", "Edge"],
449
- default: "Rtsp"
337
+ default: "5"
450
338
  },
451
- trackerFF:{
452
- type: Boolean,
453
- default:true
454
- },
455
- isFootfallView:{
456
- type: Boolean,
457
- default:false
458
- },
459
- isAIManager:{
460
- type: Boolean,
461
- default:false
462
- },
463
- isAIManagerAccessControl:{
464
- type: Boolean,
465
- default:false
466
- },
467
- isCameraEdit:{
468
- type: Boolean,
469
- default:false
470
- },
471
- isVMS:{
472
- type: Boolean,
473
- default:false
339
+ },
340
+ conversion: {
341
+ condition: {
342
+ type: String,
343
+ default: ">"
474
344
  },
475
- loginSSO:{
476
- type: Boolean,
477
- default:false
345
+ value: {
346
+ type: String,
347
+ default: '5'
478
348
  },
479
-
480
349
  },
350
+ billableCalculation: {
351
+ type: String,
352
+ default: "engagers-count"
353
+ },
354
+ missedOpportunityCalculation: {
355
+ type: String,
356
+ default: "engagers-conversion"
357
+ },
358
+ conversionCalculation: {
359
+ type: String,
360
+ default: "engagers-count"
361
+ },
362
+ isNormalized: {
363
+ type: Boolean,
364
+ default: false,
365
+ },
366
+ isPasserByData: {
367
+ type: Boolean,
368
+ default: false,
369
+ },
370
+ isFootfallDirectory: {
371
+ type: Boolean,
372
+ default: false,
373
+ },
374
+ isExcludedArea: {
375
+ type: Boolean,
376
+ default: true
377
+ },
378
+ updateFeatureConfig: {
379
+ type: Boolean,
380
+ default: true
381
+ },
382
+ isCameraDisabled: {
383
+ type: Boolean,
384
+ default: false
385
+ },
386
+ isbillingDisabled: {
387
+ type: Boolean,
388
+ default: false
389
+ },
390
+ isNewDashboard: {
391
+ type: Boolean,
392
+ default: false
393
+ },
394
+ isFootfallAuditStores: {
395
+ type: Boolean,
396
+ default: false
397
+ },
398
+ isNewTraffic: {
399
+ type: Boolean,
400
+ default: false
401
+ },
402
+ isNewZone: {
403
+ type: Boolean,
404
+ default: false
405
+ },
406
+ isNewReports: {
407
+ type: Boolean,
408
+ default: false
409
+ },
410
+ isNOB: {
411
+ type: Boolean,
412
+ default: false
413
+ },
414
+ isNewZoneV2: {
415
+ type: Boolean,
416
+ default: false
417
+ },
418
+ isTrax: {
419
+ type: Boolean,
420
+ default: false
421
+ },
422
+ isControlCenter: {
423
+ type: Boolean,
424
+ default: false
425
+ },
426
+ isFootfallDirectoryAudit: {
427
+ type: Boolean,
428
+ default: false
429
+ },
430
+ isFootfallDirectoryLimit: {
431
+ type: Boolean,
432
+ default: false
433
+ },
434
+ isRevops: {
435
+ type: Boolean,
436
+ default: false
437
+ },
438
+ traxDateRange: {
439
+ type: Number,
440
+ default: 30
441
+ },
442
+ trafficDateRange: {
443
+ type: Number,
444
+ default: 180
445
+ },
446
+ streamBy: {
447
+ type: String,
448
+ enum: ["Rtsp", "Edge"],
449
+ default: "Rtsp"
450
+ },
451
+ trackerFF: {
452
+ type: Boolean,
453
+ default: true
454
+ },
455
+ isFootfallView: {
456
+ type: Boolean,
457
+ default: false
458
+ },
459
+ isAIManager: {
460
+ type: Boolean,
461
+ default: false
462
+ },
463
+ isAIManagerAccessControl: {
464
+ type: Boolean,
465
+ default: false
466
+ },
467
+ isCameraEdit: {
468
+ type: Boolean,
469
+ default: false
470
+ },
471
+ isVMS: {
472
+ type: Boolean,
473
+ default: false
474
+ },
475
+ loginSSO: {
476
+ type: Boolean,
477
+ default: false
478
+ },
479
+
480
+ },
481
481
  footfallDirectoryConfigs: {
482
482
  revision: {
483
483
  type: [
@@ -502,279 +502,283 @@ const client = new mongoose.Schema(
502
502
  },
503
503
  allowTicketCreation: {
504
504
  type: Number,
505
- default:3
505
+ default: 3
506
506
  },
507
507
  isAutoCloseEnable: {
508
508
  type: Boolean,
509
- default:true
509
+ default: true
510
510
  },
511
511
  autoCloseAccuracy: {
512
512
  type: String,
513
- default:"95%"
514
- },
515
- taggingLimitation: {
516
- type: [
517
- {
518
- type: {
519
- type: String,
520
- default: ""
513
+ default: "95%"
521
514
  },
522
- value: {
523
- type: Number,
524
- default: 0
515
+ taggingLimitation: {
516
+ type: [
517
+ {
518
+ type: {
519
+ type: String,
520
+ default: ""
521
+ },
522
+ value: {
523
+ type: Number,
524
+ default: 0
525
+ },
526
+ unit: {
527
+ type: String,
528
+ default: "%"
529
+ },
530
+ key:{
531
+ type: String,
532
+ default: ""
533
+ }
534
+ }
535
+ ],
536
+ default: function () {
537
+ return [
538
+ { type: "duplicate", value: 10, unit: "%" },
539
+ { type: "employee", value: 5, unit: "%" },
540
+ { type: "house-keeping", value: 1, unit: "%" },
541
+ { type: "junk", value: 5, unit: "%" }
542
+ ];
543
+ }
525
544
  },
526
- unit: {
527
- type: String,
528
- default: "%"
529
- }
530
- }
531
- ],
532
- default: function () {
533
- return [
534
- { type: "duplicate", value: 10, unit: "%" },
535
- { type: "employee", value: 5, unit: "%" },
536
- { type: "house-keeping", value: 1, unit: "%" },
537
- { type: "junk", value: 5, unit: "%" }
538
- ];
539
- }
540
- },
541
545
  accuracyBreach: {
542
546
  ticketCount: {
543
547
  type: String,
544
- default:"3"
548
+ default: "3"
545
549
  },
546
550
  days: {
547
551
  type: String,
548
- default:"30"
552
+ default: "30"
549
553
  },
550
554
  accuracy: {
551
555
  type: String,
552
- default:"95%"
556
+ default: "95%"
553
557
  }
554
558
  },
555
559
  tangoReview: {
556
560
  type: String,
557
- default:"85%"
561
+ default: "85%"
558
562
  }
559
563
  },
560
- document: {
561
- addressProof: {
562
- path: {
563
- type: String,
564
+ document: {
565
+ addressProof: {
566
+ path: {
567
+ type: String,
564
568
 
565
- },
566
569
  },
567
- gst: {
568
- number: {
569
- type: String,
570
- },
571
- path: {
572
- type: String,
573
-
574
- },
575
- },
576
- pan: {
577
- number: {
578
- type: String,
579
- },
580
- path: {
581
- type: String,
582
-
583
- },
570
+ },
571
+ gst: {
572
+ number: {
573
+ type: String,
584
574
  },
585
- cin: {
586
- number: {
587
- type: String,
588
- },
589
- path: {
590
- type: String,
575
+ path: {
576
+ type: String,
591
577
 
592
- },
593
578
  },
594
-
595
579
  },
596
- price:{
597
- type:Number
598
- },
599
- paymentInvoice: {
600
- proRate: {
580
+ pan: {
581
+ number: {
601
582
  type: String,
602
- enum: ['before15','after15'],
603
- default: 'before15',
604
- },
605
- paymentType: {
606
- type:String,
607
- enum: ['online','banktransfer'],
608
- default: 'online',
609
- },
610
- paymentCycle: {
611
- type:String,
612
583
  },
613
- currencyType: {
614
- type:String
615
- },
616
- invoiceTo:{
617
- type:Array
618
- },
619
- paymentAgreementTo:{
620
- type:Array
621
- },
622
- invoiceOn: {
623
- type:String,
624
- enum: ['lastday','25th'],
625
- default: '25th',
584
+ path: {
585
+ type: String,
586
+
626
587
  },
627
- extendPaymentPeriodDays: {
628
- type:Number,
629
- default: 5,
588
+ },
589
+ cin: {
590
+ number: {
591
+ type: String,
630
592
  },
631
- invoiceCC:{
632
- type:Array
593
+ path: {
594
+ type: String,
595
+
633
596
  },
634
- PomNumber:{
635
- type:String
636
- }
637
597
  },
638
- priceType:{
639
- type:String,
640
- enum: ['standard','step'],
641
- default: 'standard',
598
+
599
+ },
600
+ price: {
601
+ type: Number
602
+ },
603
+ paymentInvoice: {
604
+ proRate: {
605
+ type: String,
606
+ enum: ['before15', 'after15'],
607
+ default: 'before15',
642
608
  },
643
- virtualAccount:{
644
- accountNo:{
645
- type:String
646
- },
647
- ifscCode:{
648
- type:String
649
- },
650
- swiftCode:{
651
- type:String
652
- },
653
- branch:{
654
- type:String
655
- }
609
+ paymentType: {
610
+ type: String,
611
+ enum: ['online', 'banktransfer'],
612
+ default: 'online',
656
613
  },
657
- clientApi: {
658
- apiKey: {
659
- type: String,
660
- default: null,
661
- },
662
- status: {
663
- type: Boolean,
664
- default: false,
665
- },
666
- allowedIps: {
667
- type: Array,
668
- default: [ '*' ],
669
- },
614
+ paymentCycle: {
615
+ type: String,
670
616
  },
671
- notifyCsmAssign: {
672
- type: Boolean,
673
- default:false
617
+ currencyType: {
618
+ type: String
674
619
  },
675
- edgeApp:{
676
- password:{
677
- type:String,
678
- },
620
+ invoiceTo: {
621
+ type: Array
622
+ },
623
+ paymentAgreementTo: {
624
+ type: Array
679
625
  },
680
- averageTransactionValue: {
626
+ invoiceOn: {
681
627
  type: String,
682
- default: ''
628
+ enum: ['lastday', '25th'],
629
+ default: '25th',
683
630
  },
684
- domainConfig:{
685
- ssoLogin: {
686
- isEnable: {
687
- type: Boolean,
688
- default: false,
689
- },
690
- domainName: {
691
- type: Array,
692
- },
693
- },
694
- ipWhitelisting: {
695
- enableWhitelisting: {
696
- type: Boolean,
697
- default: false,
698
- },
699
- allowedIps: {
700
- type: Array,
701
- },
702
- },
703
- enableOtp:{
704
- type: Boolean,
705
- default: false,
706
- }
707
- },
708
- storeRadiusConfig: {
631
+ extendPaymentPeriodDays: {
709
632
  type: Number,
710
- default: 200
633
+ default: 5,
711
634
  },
712
- controlCenterConfigs:{
713
- taskList:{
714
- type: [String],
715
- default: ['Hygiene Task','Operations','Maintenence'],
716
- validate: {
717
- validator: function (arr) {
718
- return arr.length >= 1 && arr.length <= 16; // Minimum and maximum length
719
- },
720
- message: 'List must have between 1 and 15 task.',
721
- },
722
- }
635
+ invoiceCC: {
636
+ type: Array
637
+ },
638
+ PomNumber: {
639
+ type: String
640
+ }
641
+ },
642
+ priceType: {
643
+ type: String,
644
+ enum: ['standard', 'step'],
645
+ default: 'standard',
646
+ },
647
+ virtualAccount: {
648
+ accountNo: {
649
+ type: String
650
+ },
651
+ ifscCode: {
652
+ type: String
723
653
  },
724
- traxRAWImageUpload: {
654
+ swiftCode: {
655
+ type: String
656
+ },
657
+ branch: {
658
+ type: String
659
+ }
660
+ },
661
+ clientApi: {
662
+ apiKey: {
663
+ type: String,
664
+ default: null,
665
+ },
666
+ status: {
725
667
  type: Boolean,
726
- default:false
668
+ default: false,
669
+ },
670
+ allowedIps: {
671
+ type: Array,
672
+ default: ['*'],
727
673
  },
728
- emailersConfig: {
729
- daily: {
674
+ },
675
+ notifyCsmAssign: {
676
+ type: Boolean,
677
+ default: false
678
+ },
679
+ edgeApp: {
680
+ password: {
681
+ type: String,
682
+ },
683
+ },
684
+ averageTransactionValue: {
685
+ type: String,
686
+ default: ''
687
+ },
688
+ domainConfig: {
689
+ ssoLogin: {
690
+ isEnable: {
730
691
  type: Boolean,
731
- default:false
692
+ default: false,
732
693
  },
733
- weekly: {
734
- type: Boolean,
735
- default:false
694
+ domainName: {
695
+ type: Array,
736
696
  },
737
- monthly: {
697
+ },
698
+ ipWhitelisting: {
699
+ enableWhitelisting: {
738
700
  type: Boolean,
739
- default:false
701
+ default: false,
740
702
  },
741
- sendTo: {
703
+ allowedIps: {
742
704
  type: Array,
743
705
  },
744
706
  },
745
- clientConfigs: {
746
- exportLimit: {
747
- type: Number,
748
- default: 10000
707
+ enableOtp: {
708
+ type: Boolean,
709
+ default: false,
710
+ }
711
+ },
712
+ storeRadiusConfig: {
713
+ type: Number,
714
+ default: 200
715
+ },
716
+ controlCenterConfigs: {
717
+ taskList: {
718
+ type: [String],
719
+ default: ['Hygiene Task', 'Operations', 'Maintenence'],
720
+ validate: {
721
+ validator: function (arr) {
722
+ return arr.length >= 1 && arr.length <= 16; // Minimum and maximum length
723
+ },
724
+ message: 'List must have between 1 and 15 task.',
749
725
  },
750
- },
751
- traxBlockMobileTimeUpdate: {
726
+ }
727
+ },
728
+ traxRAWImageUpload: {
729
+ type: Boolean,
730
+ default: false
731
+ },
732
+ emailersConfig: {
733
+ daily: {
752
734
  type: Boolean,
753
- default:false
735
+ default: false
754
736
  },
755
- traxSectionSave: {
737
+ weekly: {
756
738
  type: Boolean,
757
- default:false
739
+ default: false
758
740
  },
759
- isCrestPlanogram: {
741
+ monthly: {
760
742
  type: Boolean,
761
- default:false
743
+ default: false
762
744
  },
763
- isTangoPlanogram: {
764
- type: Boolean,
765
- default:false
745
+ sendTo: {
746
+ type: Array,
766
747
  },
767
- traxMonthlyComparison: {
768
- type: Boolean,
769
- default:true
748
+ },
749
+ clientConfigs: {
750
+ exportLimit: {
751
+ type: Number,
752
+ default: 10000
770
753
  },
771
754
  },
772
- {
773
- strict: true,
774
- versionKey: false,
775
- timestamps: true,
755
+ traxBlockMobileTimeUpdate: {
756
+ type: Boolean,
757
+ default: false
758
+ },
759
+ traxSectionSave: {
760
+ type: Boolean,
761
+ default: false
762
+ },
763
+ isCrestPlanogram: {
764
+ type: Boolean,
765
+ default: false
766
+ },
767
+ isTangoPlanogram: {
768
+ type: Boolean,
769
+ default: false
770
+ },
771
+ traxMonthlyComparison: {
772
+ type: Boolean,
773
+ default: true
776
774
  },
775
+ },
776
+ {
777
+ strict: true,
778
+ versionKey: false,
779
+ timestamps: true,
780
+ },
777
781
  );
778
782
 
779
783
 
780
- export default mongoose.model( 'client', client );
784
+ export default mongoose.model('client', client);