tango-api-schema 2.2.152 → 2.2.153

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.
package/index.js CHANGED
@@ -76,6 +76,7 @@ import planogramModel from "./schema/planogram.model.js";
76
76
  import emailersModel from "./schema/emailers.model.js";
77
77
  import planoMappingModel from './schema/planoMapping.model.js';
78
78
  import planoProductModel from './schema/planoProductDetail.model.js';
79
+ import planoVmModel from './schema/planoVmDetail.model.js';
79
80
  import planoComplianceModel from './schema/planoCompliance.model.js';
80
81
  import storeFixtureModel from './schema/storeFixture.model.js';
81
82
  import fixtureConfigModel from './schema/fixtureConfig.model.js';
@@ -88,6 +89,9 @@ import auditConfigModel from "./schema/auditConfig.model.js";
88
89
  import revopConfigModel from "./schema/revopConfig.model.js";
89
90
  import planoCrestLogModel from './schema/planoCrestLog.model.js';
90
91
  import countryCurrencyModel from './schema/countryCurrency.model.js';
92
+ import fixtureLibraryModel from './schema/fixtureLibrary.model.js';
93
+ import vmTypeModel from "./schema/vmType.model.js";
94
+ import planoProductCategoryModel from './schema/planoProductCategoryDetails.model.js'
91
95
  import streamingModel from './schema/streaming.model.js';
92
96
  import loginAttempt from "./schema/loginAttempt.model.js";
93
97
  import notification from "./schema/notification.model.js";
@@ -184,6 +188,10 @@ export default {
184
188
  revopConfigModel,
185
189
  planoCrestLogModel,
186
190
  countryCurrencyModel,
191
+ fixtureLibraryModel,
192
+ planoVmModel,
193
+ vmTypeModel,
194
+ planoProductCategoryModel,
187
195
  streamingModel,
188
196
  loginAttempt,
189
197
  notification
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tango-api-schema",
3
- "version": "2.2.152",
3
+ "version": "2.2.153",
4
4
  "description": "tangoEye model schema",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -20,7 +20,6 @@
20
20
  "homepage": "https://bitbucket.org/tangoeye-retail/tango-api-schema#readme",
21
21
  "dependencies": {
22
22
  "express": "^4.21.1",
23
- "mongoose": "^7.5.3",
24
- "tango-api-schema": "^2.2.130"
23
+ "mongoose": "^7.5.3"
25
24
  }
26
25
  }
@@ -13,53 +13,186 @@ const fixtureConfigSchema = new mongoose.Schema(
13
13
  type: String,
14
14
  enum: [ 'wall', 'floor' ],
15
15
  },
16
- fixtureHeight: {
16
+ fixtureName: {
17
+ type: String,
18
+ required: true,
19
+ },
20
+ description: {
21
+ type: String,
22
+ },
23
+ fixtureLength: {
17
24
  value: {
18
25
  type: Number,
26
+ default: 0,
19
27
  },
20
28
  unit: {
21
29
  type: String,
30
+ default: '',
22
31
  },
23
32
  },
24
- fixtureLength: {
33
+ fixtureWidth: {
25
34
  value: {
26
35
  type: Number,
36
+ default: 0,
27
37
  },
28
38
  unit: {
29
39
  type: String,
40
+ default: '',
30
41
  },
31
42
  },
32
- fixtureWidth: {
43
+ fixtureStaticLength: {
33
44
  value: {
34
45
  type: Number,
46
+ default: 0,
35
47
  },
36
48
  unit: {
37
49
  type: String,
50
+ default: '',
38
51
  },
39
52
  },
40
- shelfCount: {
41
- type: Number,
53
+ fixtureStaticWidth: {
54
+ value: {
55
+ type: Number,
56
+ default: 0,
57
+ },
58
+ unit: {
59
+ type: String,
60
+ default: '',
61
+ },
42
62
  },
43
- productPerShelf: {
44
- type: Number,
63
+ shelfConfig: [ {
64
+ shelfNumber: {
65
+ type: Number,
66
+ required: true,
67
+ },
68
+ shelfType: {
69
+ type: String,
70
+ enum: ['shelf', 'tray'],
71
+ },
72
+ productPerShelf: {
73
+ type: Number,
74
+ default: 0,
75
+ },
76
+ trayRows: {
77
+ type: Number,
78
+ default: 0,
79
+ },
80
+ label: {
81
+ type: String,
82
+ default: '',
83
+ },
84
+ productBrandName: {
85
+ type: Array,
86
+ },
87
+ productSubBrandName: {
88
+ type: Array,
89
+ },
90
+ productCategory:{
91
+ type:Array
92
+ },
93
+ productSubCategory:{
94
+ type:Array
95
+ },
96
+ zone: {
97
+ type: String,
98
+ },
99
+ } ],
100
+ vmConfig: [
101
+ {
102
+ vmId: {
103
+ type: mongoose.Types.ObjectId,
104
+ },
105
+ startYPosition: {
106
+ type: Number,
107
+ },
108
+ endYPosition: {
109
+ type: Number,
110
+ },
111
+ xZone: {
112
+ type: String,
113
+ },
114
+ yZone: {
115
+ type: String,
116
+ },
117
+ position: {
118
+ type: String,
119
+ },
120
+ },
121
+ ],
122
+ header: {
123
+ height: {
124
+ value: {
125
+ type: Number,
126
+ default: 0,
127
+ },
128
+ unit: {
129
+ type: String,
130
+ default: '',
131
+ },
132
+ },
133
+ label: {
134
+ type: String,
135
+ },
136
+ isEnabled: {
137
+ type: Boolean,
138
+ default: true,
139
+ },
140
+ },
141
+ footer: {
142
+ height: {
143
+ value: {
144
+ type: Number,
145
+ default: 0,
146
+ },
147
+ unit: {
148
+ type: String,
149
+ default: '',
150
+ },
151
+ },
152
+ label: {
153
+ type: String,
154
+ },
155
+ isEnabled: {
156
+ type: Boolean,
157
+ default: true,
158
+ },
159
+ },
160
+ isBodyEnabled: {
161
+ type: Boolean,
162
+ default: true,
163
+ },
164
+ productResolutionLevel: {
165
+ type: String,
166
+ enum: [ 'L1', 'L2', 'L3', 'L4' ],
167
+ },
168
+ fixtureLibraryId:{
169
+ type: mongoose.Types.ObjectId,
170
+ required: true,
45
171
  },
46
172
  fixtureCapacity: {
47
173
  type: Number,
174
+ default: 0,
48
175
  },
49
- sections:{
176
+ productBrandName: {
50
177
  type: Array,
51
178
  },
52
- fixtureCode:{
53
- type: String,
179
+ productCategory:{
180
+ type:Array
54
181
  },
55
- fixtureConfigType: {
56
- type: String
182
+ productSubCategory:{
183
+ type:Array
57
184
  },
58
- shelfConfig:{
59
- type: Array,
185
+ status: {
186
+ type: String,
187
+ enum: [ 'draft', 'complete' ],
188
+ default: 'draft',
60
189
  },
61
- vmConfig:{
62
- type: Array,
190
+ crestMapKey: {
191
+ type: String,
192
+ },
193
+ templateIndex: {
194
+ type: Number,
195
+ default: 1,
63
196
  },
64
197
  },
65
198
  {
@@ -0,0 +1,165 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const fixtureLibrarySchema = new mongoose.Schema(
4
+ {
5
+ clientId: {
6
+ type: String,
7
+ required: true,
8
+ },
9
+ fixtureCategory: {
10
+ type: String,
11
+ },
12
+ fixtureType: {
13
+ type: String,
14
+ enum: ['wall', 'floor'],
15
+ },
16
+ fixtureLength: {
17
+ value: {
18
+ type: Number,
19
+ default: 0,
20
+ },
21
+ unit: {
22
+ type: String,
23
+ default: 'ft',
24
+ },
25
+ },
26
+ fixtureWidth: {
27
+ value: {
28
+ type: Number,
29
+ default: 0,
30
+ },
31
+ unit: {
32
+ type: String,
33
+ default: 'ft',
34
+ },
35
+ },
36
+ fixtureStaticLength: {
37
+ value: {
38
+ type: Number,
39
+ default: 1524,
40
+ },
41
+ unit: {
42
+ type: String,
43
+ default: 'mm',
44
+ },
45
+ },
46
+ fixtureStaticWidth: {
47
+ value: {
48
+ type: Number,
49
+ default: 1220,
50
+ },
51
+ unit: {
52
+ type: String,
53
+ default: 'mm',
54
+ },
55
+ },
56
+ header: {
57
+ isEnabled: {
58
+ type: Boolean,
59
+ default: true,
60
+ },
61
+ height: {
62
+ value: {
63
+ type: Number,
64
+ default: 0,
65
+ },
66
+ unit: {
67
+ type: String,
68
+ default: 'mm',
69
+ },
70
+ }
71
+ },
72
+ footer: {
73
+ isEnabled: {
74
+ type: Boolean,
75
+ default: true,
76
+ },
77
+ height: {
78
+ value: {
79
+ type: Number,
80
+ default: 0,
81
+ },
82
+ unit: {
83
+ type: String,
84
+ default: 'mm',
85
+ },
86
+ }
87
+ },
88
+ isBodyEnabled: {
89
+ type: Boolean,
90
+ default: true,
91
+ },
92
+ fixtureCapacity: {
93
+ type: Number,
94
+ default: 0,
95
+ },
96
+ status: {
97
+ type: String,
98
+ enum: ['draft', 'complete'],
99
+ default: 'draft',
100
+ },
101
+ shelfConfig: [
102
+ {
103
+ shelfNumber: {
104
+ type: Number,
105
+ required: true,
106
+ },
107
+ shelfType: {
108
+ type: String,
109
+ enum: ['shelf', 'tray'],
110
+ },
111
+ zone: {
112
+ type: String,
113
+ },
114
+ productPerShelf: {
115
+ type: Number,
116
+ default: 0,
117
+ },
118
+ trayRows: {
119
+ type: Number,
120
+ default: 0,
121
+ },
122
+ label: {
123
+ type: String,
124
+ default: '',
125
+ },
126
+ },
127
+ ],
128
+ vmConfig: [
129
+ {
130
+ vmNumber: {
131
+ type: Number,
132
+ },
133
+ vmHeightmm: {
134
+ type: Number,
135
+ },
136
+ vmWidthmm: {
137
+ type: Number,
138
+ },
139
+ startShelf: {
140
+ type: Number,
141
+ },
142
+ endShelf: {
143
+ type: Number,
144
+ },
145
+ zone: {
146
+ type: String,
147
+ },
148
+ position: {
149
+ type: String,
150
+ },
151
+ },
152
+ ],
153
+ fixtureLibCode:{
154
+ type:String
155
+ },
156
+ },
157
+ {
158
+ strict: true,
159
+ versionKey: false,
160
+ timestamps: true,
161
+ },
162
+ );
163
+
164
+ export default mongoose.model( 'fixtureLibrary', fixtureLibrarySchema );
165
+
@@ -1,63 +1,72 @@
1
1
  import mongoose from 'mongoose';
2
2
 
3
3
  const fixtureShelfSchema = 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
- planoId: {
18
- type: mongoose.Types.ObjectId,
19
- required: true,
20
- },
21
- floorId: {
22
- type: mongoose.Types.ObjectId,
23
- required: true,
24
- },
25
- fixtureId: {
26
- type: mongoose.Types.ObjectId,
27
- required: true,
28
- },
29
- shelfNumber: {
30
- type: Number,
31
- required: true,
32
- },
33
- shelfOrder: {
34
- type: String,
35
- enum: [ 'LTR', 'RTL' ],
36
- // LTR - Left to Right, RTL - Right to Left
37
- required: true,
38
- },
39
- shelfCapacity: {
40
- type: Number,
41
- required: true,
42
- },
43
- sectionName:{
44
- type: String
45
- },
46
- sectionZone:{
47
- type: String
48
- },
49
- rfId:{
50
- type:String
51
- },
52
- shelfSplitup: {
53
- type: Number,
54
- }
55
- },
56
- {
57
- strict: true,
58
- versionKey: false,
59
- timestamps: true,
4
+ {
5
+ clientId: {
6
+ type: String,
7
+ required: true,
60
8
  },
9
+ storeName: {
10
+ type: String,
11
+ required: true,
12
+ },
13
+ storeId: {
14
+ type: String,
15
+ required: true,
16
+ },
17
+ planoId: {
18
+ type: mongoose.Types.ObjectId,
19
+ required: true,
20
+ },
21
+ floorId: {
22
+ type: mongoose.Types.ObjectId,
23
+ required: true,
24
+ },
25
+ fixtureId: {
26
+ type: mongoose.Types.ObjectId,
27
+ required: true,
28
+ },
29
+ shelfNumber: {
30
+ type: Number,
31
+ required: true,
32
+ },
33
+ productBrandName: {
34
+ type: Array,
35
+ },
36
+ productCategory: {
37
+ type: Array
38
+ },
39
+ productSubCategory: {
40
+ type: Array
41
+ },
42
+ zone: {
43
+ type: String
44
+ },
45
+ rfId: {
46
+ type: String
47
+ },
48
+ shelfType: {
49
+ type: String,
50
+ enum: ['shelf', 'tray'],
51
+ },
52
+ productPerShelf: {
53
+ type: Number,
54
+ default: 0,
55
+ },
56
+ trayRows: {
57
+ type: Number,
58
+ default: 0,
59
+ },
60
+ label: {
61
+ type: String,
62
+ default: '',
63
+ },
64
+ },
65
+ {
66
+ strict: true,
67
+ versionKey: false,
68
+ timestamps: true,
69
+ },
61
70
  );
62
71
 
63
- export default mongoose.model( 'fixtureShelf', fixtureShelfSchema );
72
+ export default mongoose.model('fixtureShelf', fixtureShelfSchema);
@@ -0,0 +1,26 @@
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
+ category:{
13
+ type:Array
14
+ },
15
+ subCategory:{
16
+ type:Array
17
+ }
18
+ },
19
+ {
20
+ strict: true,
21
+ versionKey: false,
22
+ timestamps: true,
23
+ },
24
+ );
25
+
26
+ export default mongoose.model( 'planoProductCategory', planoProductCategorySchema );
@@ -10,10 +10,6 @@ const planoProductDetailSchema = new mongoose.Schema(
10
10
  type: String,
11
11
  required: true,
12
12
  },
13
- type: {
14
- type: String,
15
- enum: [ 'product', 'vm' ],
16
- },
17
13
  productName: {
18
14
  type: String,
19
15
  },
@@ -55,20 +51,7 @@ const planoProductDetailSchema = new mongoose.Schema(
55
51
  },
56
52
  productImageUrl: {
57
53
  type: String,
58
- },
59
- startYPosition: {
60
- type: String,
61
- },
62
- endYPosition: {
63
- type: String,
64
- },
65
- xZone:{
66
- type: String
67
- },
68
- fixtureConfigId: {
69
- type: mongoose.Types.ObjectId,
70
- },
71
-
54
+ }
72
55
  },
73
56
  {
74
57
  strict: false,
@@ -9,7 +9,7 @@ const planoStaticData = new mongoose.Schema({
9
9
  }
10
10
  },
11
11
  {
12
- strict: true,
12
+ strict: false,
13
13
  versionKey: false,
14
14
  timestamps: true,
15
15
  },
@@ -7,10 +7,234 @@ const planoTaskCompliance = new mongoose.Schema(
7
7
  enum: ['complete', 'incomplete', 'missing'],
8
8
  required: true
9
9
  },
10
- answers: {
11
- type: Array,
12
- default: []
13
- },
10
+ answers: [
11
+ {
12
+ userId: {
13
+ type: mongoose.Types.ObjectId,
14
+ },
15
+ userName: {
16
+ type: String
17
+ },
18
+ role: {
19
+ type: String
20
+ },
21
+ timeStamp: {
22
+ type: Date,
23
+ default: Date.now()
24
+ },
25
+ video: {
26
+ type: String
27
+ },
28
+ image: {
29
+ type: String
30
+ },
31
+ issues: [
32
+ {
33
+ userId: {
34
+ type: mongoose.Types.ObjectId,
35
+ },
36
+ userName: {
37
+ type: String
38
+ },
39
+ role: {
40
+ type: String
41
+ },
42
+ qno: {
43
+ type: Number,
44
+ },
45
+ question: {
46
+ type: String
47
+ },
48
+ timeStamp: {
49
+ type: Date,
50
+ default: Date.now()
51
+ },
52
+ issueType: {
53
+ type: String,
54
+ enum: ["extraFixture", 'fixtureMissing', 'fixtureMismatch', 'categoryWrong', 'sizeWrong', 'shelfWrong', 'brandWrong', 'productcategoryWrong', "extraVm", 'VmMissing', 'VmMismatch', 'VmSizeWrong','others']
55
+ },
56
+ image: {
57
+ type: String
58
+ },
59
+ status: {
60
+ type: String,
61
+ default: 'pending',
62
+ enum: ['completed', 'pending']
63
+ },
64
+ comments: [{
65
+ userId: {
66
+ type: mongoose.Types.ObjectId,
67
+ },
68
+ userName: {
69
+ type: String
70
+ },
71
+ role: {
72
+ type: String
73
+ },
74
+ comment: {
75
+ type: String
76
+ },
77
+ responsetype: {
78
+ type: String,
79
+ default: "comment",
80
+ },
81
+ timeStamp: {
82
+ type: Date,
83
+ default: Date.now()
84
+ }
85
+ }
86
+ ],
87
+ Details: [
88
+ {
89
+ comments: [{
90
+ userId: {
91
+ type: mongoose.Types.ObjectId,
92
+ },
93
+ userName: {
94
+ type: String
95
+ },
96
+ role: {
97
+ type: String
98
+ },
99
+ comment: {
100
+ type: String
101
+ },
102
+ responsetype: {
103
+ type: String,
104
+ default: "comment",
105
+ },
106
+ timeStamp: {
107
+ type: Date,
108
+ default: Date.now()
109
+ }
110
+ }
111
+ ],
112
+ image: {
113
+ type: String
114
+ },
115
+ video: {
116
+ type: String
117
+ },
118
+ floorId: {
119
+ type: mongoose.Types.ObjectId,
120
+ },
121
+ fixtureLibraryId: {
122
+ type: mongoose.Types.ObjectId
123
+ },
124
+ fixtureConfigId: {
125
+ type: mongoose.Types.ObjectId
126
+ },
127
+ fixtureId: {
128
+ type: mongoose.Types.ObjectId
129
+ },
130
+ status: {
131
+ type: String,
132
+ default: 'pending',
133
+ enum: ['agree', 'disagree', 'pending']
134
+ },
135
+ image: {
136
+ type: String
137
+ },
138
+ fixtureName: {
139
+ type: String
140
+ },
141
+ fixtureCategory: {
142
+ type: String
143
+ },
144
+ fixtureTemplateName: {
145
+ type: String
146
+ },
147
+ associatedElementFixtureNumber: {
148
+ type: Number
149
+ },
150
+ associatedElementNumber: {
151
+ type: Number
152
+ },
153
+ associatedElementType: {
154
+ type: String
155
+ },
156
+ newassociatedElementFixtureNumber: {
157
+ type: Number
158
+ },
159
+ newassociatedElementNumber: {
160
+ type: Number
161
+ },
162
+ newassociatedElementType: {
163
+ type: String
164
+ },
165
+ shelfConfig: [
166
+ {
167
+ _id: {
168
+ type: mongoose.Types.ObjectId,
169
+ required: true
170
+ },
171
+ shelfNumber: {
172
+ type: Number
173
+ },
174
+ shelfType: {
175
+ type: String
176
+ },
177
+ productPerShelf: {
178
+ type: Number
179
+ },
180
+ trayRows: {
181
+ type: Number
182
+ },
183
+ zone: {
184
+ type: String
185
+ },
186
+ productBrandName: {
187
+ type: [String],
188
+ default: []
189
+ },
190
+ productCategory: {
191
+ type: [String],
192
+ default: []
193
+ }
194
+ }
195
+ ],
196
+ vmConfig: [
197
+ {
198
+ vmId: {
199
+ type: mongoose.Schema.Types.ObjectId,
200
+
201
+ },
202
+ startYPosition: {
203
+ type: Number
204
+ },
205
+ endYPosition: {
206
+ type: Number
207
+ },
208
+ xZone: {
209
+ type: String
210
+ },
211
+ yZone: {
212
+ type: String
213
+ },
214
+ position: {
215
+ type: String
216
+ },
217
+ newstartYPosition: {
218
+ type: Number
219
+ },
220
+ newendYPosition: {
221
+ type: Number
222
+ },
223
+ newxZone: {
224
+ type: String
225
+ },
226
+ newyZone: {
227
+ type: String
228
+ },
229
+ newposition: {
230
+ type: String
231
+ }
232
+ }]
233
+ }
234
+ ]
235
+ }
236
+ ]
237
+ }],
14
238
  planoId: {
15
239
  type: mongoose.Types.ObjectId,
16
240
  required: true
@@ -27,18 +251,21 @@ const planoTaskCompliance = new mongoose.Schema(
27
251
  enum: ['fixture', 'vm', 'product', 'layout'],
28
252
  required: true
29
253
  },
30
- date_string:{
31
- type:String,
32
- required:true
254
+ date_string: {
255
+ type: String,
256
+ required: true
257
+ },
258
+ storeName: {
259
+ type: String
33
260
  },
34
- storeName:{
35
- type:String
261
+ storeId: {
262
+ type: String
36
263
  },
37
- taskId:{
38
- type:mongoose.Types.ObjectId
264
+ taskId: {
265
+ type: mongoose.Types.ObjectId
39
266
  },
40
- date_iso:{
41
- type:Date
267
+ date_iso: {
268
+ type: Date
42
269
  }
43
270
  },
44
271
  {
@@ -47,4 +274,4 @@ const planoTaskCompliance = new mongoose.Schema(
47
274
  }
48
275
  );
49
276
 
50
- export default mongoose.model('planotaskcompliance', planoTaskCompliance);
277
+ 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 );
@@ -26,72 +26,69 @@ const storeFixtureSchema = new mongoose.Schema(
26
26
  type: String,
27
27
  required: true,
28
28
  },
29
- fixtureCategory: {
29
+ description: {
30
30
  type: String,
31
31
  },
32
- fixtureBrandCategory: {
32
+ fixtureCategory: {
33
33
  type: String,
34
34
  },
35
- fixtureBrandSubCategory: {
36
- type: String,
35
+ productBrandName: {
36
+ type: Array,
37
+ },
38
+ productCategory:{
39
+ type:Array
40
+ },
41
+ productSubCategory:{
42
+ type:Array
37
43
  },
38
44
  fixtureType: {
39
45
  type: String,
40
46
  enum: [ 'wall', 'floor', 'other' ],
41
47
  required: true,
42
48
  },
43
- fixtureHeight: {
44
- value: {
45
- type: Number,
46
- },
47
- unit: {
48
- type: String,
49
- },
50
- },
51
49
  fixtureLength: {
52
50
  value: {
53
51
  type: Number,
52
+ default: 0,
54
53
  },
55
54
  unit: {
56
55
  type: String,
56
+ default: '',
57
57
  },
58
58
  },
59
59
  fixtureWidth: {
60
60
  value: {
61
61
  type: Number,
62
+ default: 0,
62
63
  },
63
64
  unit: {
64
65
  type: String,
66
+ default: '',
65
67
  },
66
68
  },
67
- detailedFixtureLength: {
69
+ fixtureStaticLength: {
68
70
  value: {
69
71
  type: Number,
72
+ default: 0,
70
73
  },
71
74
  unit: {
72
75
  type: String,
76
+ default: '',
73
77
  },
74
78
  },
75
- detailedFixtureWidth: {
79
+ fixtureStaticWidth: {
76
80
  value: {
77
81
  type: Number,
82
+ default: 0,
78
83
  },
79
84
  unit: {
80
85
  type: String,
86
+ default: '',
81
87
  },
82
88
  },
83
- productPerShelf: {
84
- type: Number,
85
- },
86
- mbq: {
87
- type: Number,
88
- },
89
89
  fixtureCapacity: {
90
90
  type: Number,
91
91
  },
92
- shelfcount: {
93
- type: Number,
94
- },
95
92
  associatedElementType: {
96
93
  type: String,
97
94
  enum: [ 'wall', 'facade' ],
@@ -99,9 +96,6 @@ const storeFixtureSchema = new mongoose.Schema(
99
96
  associatedElementNumber: {
100
97
  type: Number,
101
98
  },
102
- fixtureConfigId: {
103
- type: mongoose.Types.ObjectId,
104
- },
105
99
  relativePosition: {
106
100
  x: {
107
101
  type: Number,
@@ -113,48 +107,95 @@ const storeFixtureSchema = new mongoose.Schema(
113
107
  type: String,
114
108
  },
115
109
  },
116
- relativeDetailedPosition: {
117
- x: {
118
- type: Number,
119
- },
120
- y: {
121
- type: Number,
122
- },
123
- unit: {
124
- type: String,
125
- },
126
- },
127
- fixtureOrder: {
128
- type: String,
129
- enum: [ 'TTB', 'BTT' ],
130
- // TTB - Top to Bottom, BTT - Bottom to Top
131
- },
132
- fixtureNumber: {
133
- type: Number,
134
- },
135
110
  productResolutionLevel: {
136
111
  type: String,
137
- enum: [ 'L1', 'L2', 'L3', 'L4', 'L5' ],
138
- // L1- floor level, L2- fixture level, L3- fixture-shelf level, L4- fixture-shelf-product level
112
+ enum: [ 'L1', 'L2', 'L3', 'L4' ],
113
+ // L1- fixture level, L2- shelf level, L3- section level, L4- product level
139
114
  },
140
115
  imageUrl: {
141
116
  type: String,
142
117
  },
143
- vmImageUrl: {
144
- type: String,
145
- },
146
- fixtureCode: {
147
- type: String,
148
- },
149
118
  header: {
150
- type: String,
119
+ height: {
120
+ value: {
121
+ type: Number,
122
+ default: 0,
123
+ },
124
+ unit: {
125
+ type: String,
126
+ default: '',
127
+ },
128
+ },
129
+ label: {
130
+ type: String,
131
+ },
132
+ isEnabled: {
133
+ type: Boolean,
134
+ default: true,
135
+ },
151
136
  },
152
137
  footer: {
153
- type: String,
138
+ height: {
139
+ value: {
140
+ type: Number,
141
+ default: 0,
142
+ },
143
+ unit: {
144
+ type: String,
145
+ default: '',
146
+ },
147
+ },
148
+ label: {
149
+ type: String,
150
+ },
151
+ isEnabled: {
152
+ type: Boolean,
153
+ default: true,
154
+ },
155
+ },
156
+ isBodyEnabled: {
157
+ type: Boolean,
158
+ default: true,
154
159
  },
155
160
  associatedElementFixtureNumber: {
156
161
  type: Number,
157
162
  },
163
+ vmConfig: [
164
+ {
165
+ vmId: {
166
+ type: mongoose.Types.ObjectId,
167
+ },
168
+ startYPosition: {
169
+ type: Number,
170
+ },
171
+ endYPosition: {
172
+ type: Number,
173
+ },
174
+ xZone: {
175
+ type: String,
176
+ },
177
+ yZone: {
178
+ type: String,
179
+ },
180
+ position: {
181
+ type: String,
182
+ },
183
+ },
184
+ ],
185
+ fixtureLibraryId: {
186
+ type: mongoose.Types.ObjectId,
187
+ },
188
+ fixtureConfigId: {
189
+ type: mongoose.Types.ObjectId,
190
+ },
191
+ fixtureNumber: {
192
+ type: Number,
193
+ },
194
+ templateIndex: {
195
+ type: Number,
196
+ default: 1,
197
+ },
198
+
158
199
  },
159
200
  {
160
201
  strict: true,
@@ -163,4 +204,7 @@ const storeFixtureSchema = new mongoose.Schema(
163
204
  },
164
205
  );
165
206
 
166
- export default mongoose.model( 'storeFixture', storeFixtureSchema );
207
+ export default mongoose.model( 'storeFixture', storeFixtureSchema );
208
+
209
+
210
+
@@ -0,0 +1,24 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const vmTypeSchema = new mongoose.Schema(
4
+ {
5
+ clientId: {
6
+ type: String,
7
+ required: true,
8
+ },
9
+ vmType:{
10
+ type:String,
11
+ required:true
12
+ },
13
+ imageUrls:{
14
+ type:Array
15
+ }
16
+ },
17
+ {
18
+ strict: true,
19
+ versionKey: false,
20
+ timestamps: true,
21
+ },
22
+ );
23
+
24
+ export default mongoose.model( 'vmType', vmTypeSchema );