tango-api-schema 2.2.0 → 2.2.1-plano

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 (57) hide show
  1. package/index.js +50 -1
  2. package/package.json +3 -2
  3. package/schema/appVersion.js +7 -0
  4. package/schema/assignAudit.model.js +1 -1
  5. package/schema/auditConfig.model.js +41 -0
  6. package/schema/auditLogs.model.js +1 -1
  7. package/schema/auditStoreData.model.js +1 -1
  8. package/schema/auditUsers.model.js +21 -7
  9. package/schema/binaryAudit.model.js +1 -1
  10. package/schema/camera.model.js +67 -0
  11. package/schema/checklistassignconfig.js +22 -3
  12. package/schema/checklistconfig.js +69 -1
  13. package/schema/checklistlog.js +17 -0
  14. package/schema/checklistquestionconfig.js +6 -0
  15. package/schema/client.model.js +116 -1
  16. package/schema/countryCurrency.model.js +18 -0
  17. package/schema/download.js +17 -1
  18. package/schema/emailers.model.js +46 -0
  19. package/schema/empDetectionOutput.model.js +4 -1
  20. package/schema/externalParameter.model.js +48 -9
  21. package/schema/fixtureConfig.model.js +202 -0
  22. package/schema/fixtureLibrary.model.js +165 -0
  23. package/schema/fixtureShelf.model.js +72 -0
  24. package/schema/liveConnection.model.js +7 -1
  25. package/schema/loginAttempt.model.js +26 -0
  26. package/schema/notification.model.js +33 -0
  27. package/schema/planoCompliance.model.js +62 -0
  28. package/schema/planoCrestLog.model.js +18 -0
  29. package/schema/planoMapping.model.js +56 -0
  30. package/schema/planoProductCategoryDetails.model.js +33 -0
  31. package/schema/planoProductDetail.model.js +63 -0
  32. package/schema/planoQrConversionRequest.model.js +61 -0
  33. package/schema/planoStaticData.model.js +18 -0
  34. package/schema/planoTaskCompliance.model.js +107 -0
  35. package/schema/planoVmDetail.model.js +63 -0
  36. package/schema/planogram.model.js +66 -0
  37. package/schema/processedchecklist.js +45 -3
  38. package/schema/processedchecklistconfig.js +76 -1
  39. package/schema/revopConfig.model.js +19 -0
  40. package/schema/store.model.js +58 -0
  41. package/schema/storeAudit.model.js +1 -1
  42. package/schema/storeEmpDetection.model.js +1 -1
  43. package/schema/storeFixture.model.js +206 -0
  44. package/schema/storeLayout.model.js +66 -0
  45. package/schema/streaming.model.js +29 -0
  46. package/schema/suspiciousActivity.model.js +54 -0
  47. package/schema/taskAssign.model.js +19 -3
  48. package/schema/taskConfig.model.js +10 -1
  49. package/schema/taskProcessed.model.js +51 -0
  50. package/schema/taskProcessedConfig.model.js +20 -0
  51. package/schema/taskQuestion.model.js +3 -0
  52. package/schema/traxApprover.model.js +4 -0
  53. package/schema/traxAuditData.model.js +3 -0
  54. package/schema/user.model.js +16 -1
  55. package/schema/userAudit.model.js +1 -1
  56. package/schema/userEmpDetection.model.js +4 -2
  57. package/schema/vmType.model.js +24 -0
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @name planoCrestLogModel
3
+ * @description planoCrestLog Schema
4
+ */
5
+
6
+ import mongoose from "mongoose";
7
+
8
+ const collection = new mongoose.Schema(
9
+ {
10
+ },
11
+ {
12
+ timestamps: true,
13
+ strict: false,
14
+ versionKey: false,
15
+ }
16
+ );
17
+
18
+ export default mongoose.model("planoCrestLog", collection);
@@ -0,0 +1,56 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const planoMappingSchema = new mongoose.Schema(
4
+ {
5
+ clientId: {
6
+ type: String,
7
+ required: true,
8
+ },
9
+ storeName: {
10
+ type: String,
11
+ required: true,
12
+ },
13
+ storeId: {
14
+ type: String,
15
+ required: true,
16
+ },
17
+ type: {
18
+ type: String,
19
+ enum: [ 'product', 'vm' ],
20
+ required: true,
21
+ },
22
+ planoId: {
23
+ type: mongoose.Types.ObjectId,
24
+ required: true,
25
+ },
26
+ floorId: {
27
+ type: mongoose.Types.ObjectId,
28
+ required: true,
29
+ },
30
+ fixtureId: {
31
+ type: mongoose.Types.ObjectId,
32
+ },
33
+ shelfId: {
34
+ type: mongoose.Types.ObjectId,
35
+ },
36
+ shelfPosition: {
37
+ type: Number,
38
+ },
39
+ productId: {
40
+ type: mongoose.Types.ObjectId,
41
+ },
42
+ rfId: {
43
+ type: String,
44
+ },
45
+ category: {
46
+ type: String,
47
+ },
48
+ },
49
+ {
50
+ strict: true,
51
+ versionKey: false,
52
+ timestamps: true,
53
+ },
54
+ );
55
+
56
+ export default mongoose.model( 'planoMapping', planoMappingSchema );
@@ -0,0 +1,33 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const planoProductCategorySchema = new mongoose.Schema(
4
+ {
5
+ clientId: {
6
+ type: String,
7
+ required: true,
8
+ },
9
+ brandName:{
10
+ type:String
11
+ },
12
+ brandDetails:[
13
+ {
14
+ subBrandName:{
15
+ type:String
16
+ },
17
+ category:{
18
+ type:Array
19
+ },
20
+ subCategory:{
21
+ type:Array
22
+ }
23
+ }
24
+ ]
25
+ },
26
+ {
27
+ strict: true,
28
+ versionKey: false,
29
+ timestamps: true,
30
+ },
31
+ );
32
+
33
+ export default mongoose.model( 'planoProductCategory', planoProductCategorySchema );
@@ -0,0 +1,63 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const planoProductDetailSchema = new mongoose.Schema(
4
+ {
5
+ clientId: {
6
+ type: String,
7
+ required: true,
8
+ },
9
+ productId: {
10
+ type: String,
11
+ required: true,
12
+ },
13
+ productName: {
14
+ type: String,
15
+ },
16
+ productSku: {
17
+ type: String,
18
+ },
19
+ productBrand: {
20
+ type: String,
21
+ },
22
+ productType: {
23
+ type: String,
24
+ },
25
+ productHeight: {
26
+ value: {
27
+ type: Number,
28
+ },
29
+ unit: {
30
+ type: String,
31
+ },
32
+ },
33
+ productWidth: {
34
+ value: {
35
+ type: Number,
36
+ },
37
+ unit: {
38
+ type: String,
39
+ },
40
+ },
41
+ productWeight: {
42
+ value: {
43
+ type: Number,
44
+ },
45
+ unit: {
46
+ type: String,
47
+ },
48
+ },
49
+ productSize: {
50
+ type: String,
51
+ },
52
+ productImageUrl: {
53
+ type: String,
54
+ }
55
+ },
56
+ {
57
+ strict: false,
58
+ versionKey: false,
59
+ timestamps: true,
60
+ },
61
+ );
62
+
63
+ export default mongoose.model( 'planoProductDetail', planoProductDetailSchema );
@@ -0,0 +1,61 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const planoQrConversionRequest = new mongoose.Schema(
4
+ {
5
+ clientId: {
6
+ type: String,
7
+ },
8
+ storeName: {
9
+ type: String,
10
+ },
11
+ storeId: {
12
+ type: String,
13
+ },
14
+ planoId: {
15
+ type: mongoose.Types.ObjectId,
16
+ },
17
+ floorId: {
18
+ type: mongoose.Types.ObjectId,
19
+ },
20
+ fixtureId: {
21
+ type: mongoose.Types.ObjectId,
22
+ },
23
+ status: {
24
+ type: String,
25
+ enum: [ 'initiated', 'data-received' ],
26
+ },
27
+ date:{
28
+ type:Date,
29
+ required:true
30
+ },
31
+ fixtureImage: {
32
+ filePath: {
33
+ type: String,
34
+ },
35
+ comment: {
36
+ type: String,
37
+ },
38
+ },
39
+ fixtureVideo: {
40
+ filePath: {
41
+ type: String,
42
+ },
43
+ comment: {
44
+ type: String,
45
+ },
46
+ },
47
+ receivedQr:{
48
+ type: Array
49
+ },
50
+ processedData:{
51
+ type: Array
52
+ }
53
+ },
54
+ {
55
+ strict: true,
56
+ versionKey: false,
57
+ timestamps: true,
58
+ },
59
+ );
60
+
61
+ export default mongoose.model( 'planoQrConversionRequest', planoQrConversionRequest );
@@ -0,0 +1,18 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const planoStaticData = new mongoose.Schema({
4
+ data: {
5
+ type: Array,
6
+ },
7
+ type:{
8
+ type:String
9
+ }
10
+ },
11
+ {
12
+ strict: true,
13
+ versionKey: false,
14
+ timestamps: true,
15
+ },
16
+ );
17
+
18
+ export default mongoose.model( 'planoStaticData', planoStaticData);
@@ -0,0 +1,107 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const planoTaskCompliance = new mongoose.Schema(
4
+ {
5
+ status: {
6
+ type: String,
7
+ enum: ['complete', 'incomplete', 'missing'],
8
+ required: true
9
+ },
10
+ answers: [
11
+ {
12
+ userId: {
13
+ type: mongoose.Types.ObjectId,
14
+ },
15
+ userName: {
16
+ type: String
17
+ },
18
+ role: {
19
+ type: String
20
+ },
21
+ qno: {
22
+ type: Number,
23
+ },
24
+ question: {
25
+ type: String
26
+ },
27
+ timeStamp: {
28
+ type: Date,
29
+ default: Date.now()
30
+ },
31
+ answer: {
32
+ type: Boolean
33
+ },
34
+ comment: {
35
+ type: String
36
+ },
37
+ issues: [
38
+ {
39
+ userId: {
40
+ type: mongoose.Types.ObjectId,
41
+ },
42
+ userName: {
43
+ type: String
44
+ },
45
+ role: {
46
+ type: String
47
+ },
48
+ qno: {
49
+ type: Number,
50
+ },
51
+ question: {
52
+ type: String
53
+ },
54
+ timeStamp: {
55
+ type: Date,
56
+ default: Date.now()
57
+ },
58
+ video: {
59
+ type: String
60
+ },
61
+ image: {
62
+ type: String
63
+ },
64
+ Details: []
65
+ }
66
+ ]
67
+ }],
68
+ planoId: {
69
+ type: mongoose.Types.ObjectId,
70
+ required: true
71
+ },
72
+ floorId: {
73
+ type: mongoose.Types.ObjectId,
74
+ required: true
75
+ },
76
+ fixtureId: {
77
+ type: mongoose.Types.ObjectId
78
+ },
79
+ type: {
80
+ type: String,
81
+ enum: ['fixture', 'vm', 'product', 'layout'],
82
+ required: true
83
+ },
84
+ date_string: {
85
+ type: String,
86
+ required: true
87
+ },
88
+ storeName: {
89
+ type: String
90
+ },
91
+ storeId: {
92
+ type: String
93
+ },
94
+ taskId: {
95
+ type: mongoose.Types.ObjectId
96
+ },
97
+ date_iso: {
98
+ type: Date
99
+ }
100
+ },
101
+ {
102
+ timestamps: true,
103
+ versionKey: false,
104
+ }
105
+ );
106
+
107
+ export default mongoose.model('planotaskcompliance', planoTaskCompliance);
@@ -0,0 +1,63 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const planoVmDetailSchema = new mongoose.Schema(
4
+ {
5
+ clientId: {
6
+ type: String,
7
+ required: true,
8
+ },
9
+ vmName: {
10
+ type: String,
11
+ },
12
+ vmType: {
13
+ type: String,
14
+ },
15
+ vmHeight: {
16
+ value: {
17
+ type: Number,
18
+ },
19
+ unit: {
20
+ type: String,
21
+ },
22
+ },
23
+ vmWidth: {
24
+ value: {
25
+ type: Number,
26
+ },
27
+ unit: {
28
+ type: String,
29
+ },
30
+ },
31
+ vmImageUrl: {
32
+ type: String,
33
+ },
34
+ isDoubleSided: {
35
+ type: Boolean,
36
+ },
37
+ status: {
38
+ type: String,
39
+ enum: [ 'draft', 'complete' ],
40
+ default: 'draft',
41
+ },
42
+ vmBrand:{
43
+ type:String
44
+ },
45
+ vmSubBrand: {
46
+ type: String,
47
+ },
48
+ vmCategory: {
49
+ type: String,
50
+ },
51
+ crestImageId: {
52
+ type: String,
53
+ },
54
+
55
+ },
56
+ {
57
+ strict: false,
58
+ versionKey: false,
59
+ timestamps: true,
60
+ },
61
+ );
62
+
63
+ export default mongoose.model( 'planoVmDetail', planoVmDetailSchema );
@@ -0,0 +1,66 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const planogramSchema = new mongoose.Schema( {
4
+ storeName: {
5
+ type: String,
6
+ required: true,
7
+ },
8
+ storeId: {
9
+ type: String,
10
+ required: true,
11
+ },
12
+ layoutName: {
13
+ type: String,
14
+ required: true,
15
+ },
16
+ clientId: {
17
+ type: String,
18
+ required: true,
19
+ },
20
+ attachments: {
21
+ type: Array,
22
+ default: [],
23
+ },
24
+ createdBy: {
25
+ type: mongoose.Types.ObjectId,
26
+ required: true,
27
+ },
28
+ createdByName: {
29
+ type: String,
30
+ required: true,
31
+ },
32
+ createdByEmail: {
33
+ type: String,
34
+ required: true,
35
+ },
36
+ status: {
37
+ type: String,
38
+ enum: [ 'draft', 'completed' ],
39
+ default: 'draft',
40
+ },
41
+ floorNumber: {
42
+ type: Number,
43
+ default: 1,
44
+ },
45
+ productResolutionLevel: {
46
+ type: String,
47
+ enum: [ 'L1', 'L2', 'L3', 'L4', 'L5' ],
48
+ // L1- floor level, L2- fixture level, L3- fixture-shelf level, L4- fixture-shelf-product level
49
+ default: 'L3',
50
+ },
51
+ scanType: {
52
+ type: String,
53
+ enum: [ 'rfid', 'qr' ],
54
+ },
55
+ validateShelfSections: {
56
+ type: Boolean
57
+ }
58
+ },
59
+ {
60
+ strict: true,
61
+ versionKey: false,
62
+ timestamps: true,
63
+ },
64
+ );
65
+
66
+ export default mongoose.model( 'planogram', planogramSchema );
@@ -81,11 +81,10 @@ const processedchecklistSchema = new mongoose.Schema({
81
81
  checkListType: {
82
82
  type: String,
83
83
  default: "custom",
84
- enum: ["storeopenandclose","mobileusagedetection","uniformdetection","custom","customerunattended","staffleftinthemiddle"]
84
+ enum: ["storeopenandclose","mobileusagedetection","uniformdetection","custom","customerunattended","staffleftinthemiddle",'eyetest', 'remoteoptometrist', 'storehygienemonitoring','queuealert','cleaning','scrum','suspiciousactivity','boxalert','suspiciousfootfall','drinking','bagdetection','inventorycount','carsattended','numberplateinfo','vehicle_check_in']
85
85
  },
86
86
  store_id: {
87
87
  type: String,
88
- // required:true,
89
88
  default:''
90
89
  },
91
90
  country: {
@@ -95,7 +94,6 @@ const processedchecklistSchema = new mongoose.Schema({
95
94
  },
96
95
  storeName: {
97
96
  type: String,
98
- // required:true,
99
97
  default:''
100
98
  },
101
99
  userId: {
@@ -196,6 +194,50 @@ const processedchecklistSchema = new mongoose.Schema({
196
194
  },
197
195
  checkListDescription:{
198
196
  type: String,
197
+ },
198
+ restrictAttendance:{
199
+ type:Boolean,
200
+ default:false
201
+ },
202
+ coverage:{
203
+ type: String,
204
+ default: 'store',
205
+ enum: ["store", "user"]
206
+ },
207
+ planoId:{
208
+ type:mongoose.Types.ObjectId
209
+ },
210
+ isPlano:{
211
+ type:Boolean,
212
+ },
213
+ planoType:{
214
+ type: String,
215
+ },
216
+ rawImageUpload: {
217
+ type: Boolean,
218
+ default:false
219
+ },
220
+ rawVideoUpload: {
221
+ type: Boolean,
222
+ default:false
223
+ },
224
+ deviceDetails: {
225
+ type: Object
226
+ },
227
+ approvalTime:{
228
+ type: Date,
229
+ },
230
+ approvalTime_string:{
231
+ type: String,
232
+ },
233
+ approvalByName:{
234
+ type: String,
235
+ },
236
+ approvalByEmail:{
237
+ type: String,
238
+ },
239
+ floorId:{
240
+ type:mongoose.SchemaTypes.ObjectId,
199
241
  },
200
242
  },
201
243
  {
@@ -81,7 +81,7 @@ const processedchecklistconfigSchema = new mongoose.Schema({
81
81
  checkListType: {
82
82
  type: String,
83
83
  default: "custom",
84
- enum: ["storeopenandclose","mobileusagedetection","uniformdetection","custom","customerunattended","staffleftinthemiddle"]
84
+ enum: ["storeopenandclose","mobileusagedetection","uniformdetection","custom","customerunattended","staffleftinthemiddle",'eyetest', 'remoteoptometrist', 'storehygienemonitoring','queuealert','cleaning','scrum','suspiciousactivity','boxalert','suspiciousfootfall','drinking','bagdetection','inventorycount','carsattended','numberplateinfo','vehicle_check_in']
85
85
  },
86
86
  startTime:{
87
87
  type:Date
@@ -102,6 +102,81 @@ const processedchecklistconfigSchema = new mongoose.Schema({
102
102
  checkListDescription:{
103
103
  type: String,
104
104
  },
105
+ remainder:{
106
+ type:Array,
107
+ default:[]
108
+ },
109
+ restrictAttendance:{
110
+ type:Boolean,
111
+ default:false
112
+ },
113
+ coverage:{
114
+ type: String,
115
+ default: 'store',
116
+ enum: ["store", "user"]
117
+ },
118
+ isPlano:{
119
+ type:Boolean,
120
+ },
121
+ webnotification:{
122
+ type:Boolean,
123
+ default:false
124
+ },
125
+ rawImageUpload: {
126
+ type: Boolean,
127
+ default:false
128
+ },
129
+ aiStoreList:{
130
+ type:Array
131
+ },
132
+ aiConfig:{
133
+ assignConfig: {
134
+ type:String
135
+ },
136
+ events:{
137
+ type:Array
138
+ },
139
+ alerts: {
140
+ users:{
141
+ type:Array
142
+ },
143
+ },
144
+ alertType: {
145
+ mobile: {
146
+ type: Boolean,
147
+ default: true
148
+ },
149
+ web: {
150
+ type: Boolean,
151
+ default: false
152
+ }
153
+ },
154
+ storeOpenClose:{
155
+ buffer: {
156
+ openTime:{
157
+ type:Number
158
+ },
159
+ closeTime:{
160
+ type:Number
161
+ }
162
+ },
163
+ },
164
+ mobileDetection:{
165
+ usageExceed: {
166
+ type:Number
167
+ },
168
+ detectionArea: {
169
+ type:Array
170
+ }
171
+ },
172
+ autoTask:{
173
+ type:Boolean
174
+ }
175
+ },
176
+ rawVideoUpload: {
177
+ type: Boolean,
178
+ default:false
179
+ },
105
180
  },
106
181
  {
107
182
  strict: true,
@@ -0,0 +1,19 @@
1
+ import { Schema, model } from 'mongoose';
2
+
3
+
4
+ const revopconfigschema = new Schema( {
5
+ clientId: {
6
+ type: String,
7
+ },
8
+ issueList:{
9
+ type:Array,
10
+ default:[]
11
+ }
12
+ },
13
+ {
14
+ strict: true,
15
+ versionKey: false,
16
+ timestamps: true,
17
+ } );
18
+
19
+ export default model( 'revopconfig', revopconfigschema );