tango-api-schema 2.4.2 → 2.4.3

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
@@ -107,6 +107,16 @@ import templateLogSchema from "./schema/templateLog.model.js";
107
107
  import eyeTestConfigurationModel from "./schema/eyeTestConfiguration.model.js";
108
108
  import copilotMachineConfigModel from "./schema/copilotMachineConfig.model.js";
109
109
 
110
+ import planoDuplicateModel from './schema/planogramDuplicate.model.js'
111
+ import storeLayoutDuplicateModel from './schema/storeLayoutDuplicate.model.js'
112
+ import storeFixtureDuplicateModel from './schema/storeFixtureDuplicate.model.js'
113
+ import fixtureConfigDuplicateModel from "./schema/fixtureConfigDuplicate.model.js";
114
+ import fixtureLibraryDuplicateModel from "./schema/fixtureLibraryDuplicate.model.js";
115
+ import fixtureShelfDuplicateModel from "./schema/fixtureShelfDuplicate.model.js";
116
+ import planoMappingDuplicateModel from "./schema/planoMappingDuplicate.model.js";
117
+ import planoVmDetailDuplicateModel from "./schema/planoVmDetailDuplicate.model.js";
118
+ import planoProductDetailDuplicateModel from "./schema/planoProductDetailDuplicate.model.js";
119
+
110
120
 
111
121
  export default {
112
122
  leadModel,
@@ -214,5 +224,14 @@ export default {
214
224
  runAIFeaturesModel,
215
225
  templateLogSchema,
216
226
  eyeTestConfigurationModel,
217
- copilotMachineConfigModel
227
+ copilotMachineConfigModel,
228
+ planoDuplicateModel,
229
+ storeLayoutDuplicateModel,
230
+ storeFixtureDuplicateModel,
231
+ fixtureConfigDuplicateModel,
232
+ fixtureLibraryDuplicateModel,
233
+ fixtureShelfDuplicateModel,
234
+ planoMappingDuplicateModel,
235
+ planoVmDetailDuplicateModel,
236
+ planoProductDetailDuplicateModel,
218
237
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tango-api-schema",
3
- "version": "2.4.2",
3
+ "version": "2.4.3",
4
4
  "description": "tangoEye model schema",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -0,0 +1,223 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const fixtureConfigSchema = 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
+ fixtureName: {
17
+ type: String,
18
+ required: true,
19
+ },
20
+ description: {
21
+ type: String,
22
+ },
23
+ fixtureLength: {
24
+ value: {
25
+ type: Number,
26
+ default: 0,
27
+ },
28
+ unit: {
29
+ type: String,
30
+ default: '',
31
+ },
32
+ },
33
+ fixtureWidth: {
34
+ value: {
35
+ type: Number,
36
+ default: 0,
37
+ },
38
+ unit: {
39
+ type: String,
40
+ default: '',
41
+ },
42
+ },
43
+ fixtureStaticLength: {
44
+ value: {
45
+ type: Number,
46
+ default: 0,
47
+ },
48
+ unit: {
49
+ type: String,
50
+ default: '',
51
+ },
52
+ },
53
+ fixtureStaticWidth: {
54
+ value: {
55
+ type: Number,
56
+ default: 0,
57
+ },
58
+ unit: {
59
+ type: String,
60
+ default: '',
61
+ },
62
+ },
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,
171
+ index: true
172
+ },
173
+ fixtureCapacity: {
174
+ type: Number,
175
+ default: 0,
176
+ },
177
+ productBrandName: {
178
+ type: Array,
179
+ },
180
+ productCategory: {
181
+ type: Array
182
+ },
183
+ productSubCategory: {
184
+ type: Array
185
+ },
186
+ status: {
187
+ type: String,
188
+ enum: ['draft', 'complete'],
189
+ default: 'draft',
190
+ },
191
+ crestMapKey: {
192
+ type: String,
193
+ },
194
+ templateIndex: {
195
+ type: Number,
196
+ default: 1,
197
+ },
198
+ templateType: {
199
+ type: String,
200
+ enum: ['master', 'sub'],
201
+ default: 'sub',
202
+ index: true
203
+ },
204
+ masterTemplateId: {
205
+ type: mongoose.Types.ObjectId,
206
+ index: true
207
+ },
208
+ templateGroupName: {
209
+ type: String,
210
+ index: true
211
+ },
212
+ isEdited: {
213
+ type: Boolean,
214
+ }
215
+ },
216
+ {
217
+ strict: true,
218
+ versionKey: false,
219
+ timestamps: true,
220
+ },
221
+ );
222
+
223
+ export default mongoose.model('fixtureConfigDuplicate', fixtureConfigSchema);
@@ -0,0 +1,168 @@
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
+ shelfZone: {
115
+ type: String,
116
+ },
117
+ productPerShelf: {
118
+ type: Number,
119
+ default: 0,
120
+ },
121
+ trayRows: {
122
+ type: Number,
123
+ default: 0,
124
+ },
125
+ label: {
126
+ type: String,
127
+ default: '',
128
+ },
129
+ },
130
+ ],
131
+ vmConfig: [
132
+ {
133
+ vmNumber: {
134
+ type: Number,
135
+ },
136
+ vmHeightmm: {
137
+ type: Number,
138
+ },
139
+ vmWidthmm: {
140
+ type: Number,
141
+ },
142
+ startShelf: {
143
+ type: Number,
144
+ },
145
+ endShelf: {
146
+ type: Number,
147
+ },
148
+ zone: {
149
+ type: String,
150
+ },
151
+ position: {
152
+ type: String,
153
+ },
154
+ },
155
+ ],
156
+ fixtureLibCode:{
157
+ type:String
158
+ },
159
+ },
160
+ {
161
+ strict: true,
162
+ versionKey: false,
163
+ timestamps: true,
164
+ },
165
+ );
166
+
167
+ export default mongoose.model( 'fixtureLibraryDuplicate', fixtureLibrarySchema );
168
+
@@ -0,0 +1,78 @@
1
+ import mongoose from 'mongoose';
2
+
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
+ index:true
21
+ },
22
+ floorId: {
23
+ type: mongoose.Types.ObjectId,
24
+ required: true,
25
+ index:true
26
+ },
27
+ fixtureId: {
28
+ type: mongoose.Types.ObjectId,
29
+ required: true,
30
+ index:true
31
+ },
32
+ shelfNumber: {
33
+ type: Number,
34
+ required: true,
35
+ },
36
+ productBrandName: {
37
+ type: Array,
38
+ },
39
+ productCategory: {
40
+ type: Array
41
+ },
42
+ productSubCategory: {
43
+ type: Array
44
+ },
45
+ zone: {
46
+ type: String
47
+ },
48
+ rfId: {
49
+ type: String
50
+ },
51
+ sectionName: {
52
+ type: String
53
+ },
54
+ shelfType: {
55
+ type: String,
56
+ enum: ['shelf', 'tray'],
57
+ },
58
+ productPerShelf: {
59
+ type: Number,
60
+ default: 0,
61
+ },
62
+ trayRows: {
63
+ type: Number,
64
+ default: 0,
65
+ },
66
+ label: {
67
+ type: String,
68
+ default: '',
69
+ },
70
+ },
71
+ {
72
+ strict: true,
73
+ versionKey: false,
74
+ timestamps: true,
75
+ },
76
+ );
77
+
78
+ export default mongoose.model('fixtureShelfDuplicate', fixtureShelfSchema);
@@ -0,0 +1,62 @@
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
+ pid:{
43
+ type: String,
44
+ },
45
+ rfId: {
46
+ type: String,
47
+ },
48
+ category: {
49
+ type: String,
50
+ },
51
+ productDetails: {
52
+ type: Object,
53
+ },
54
+ },
55
+ {
56
+ strict: true,
57
+ versionKey: false,
58
+ timestamps: true,
59
+ },
60
+ );
61
+
62
+ export default mongoose.model( 'planoMappingDuplicate', planoMappingSchema );
@@ -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( 'planoProductDetailDuplicate', planoProductDetailSchema );
@@ -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( 'planoVmDetailDuplicate', 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( 'planogramDuplicate', planogramSchema );
@@ -0,0 +1,231 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const storeFixtureSchema = 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
+ index:true
21
+ },
22
+ floorId: {
23
+ type: mongoose.Types.ObjectId,
24
+ required: true,
25
+ index:true
26
+ },
27
+ fixtureName: {
28
+ type: String,
29
+ required: true,
30
+ },
31
+ description: {
32
+ type: String,
33
+ },
34
+ fixtureCategory: {
35
+ type: String,
36
+ },
37
+ productBrandName: {
38
+ type: Array,
39
+ },
40
+ productCategory:{
41
+ type:Array
42
+ },
43
+ productSubCategory:{
44
+ type:Array
45
+ },
46
+ fixtureType: {
47
+ type: String,
48
+ enum: [ 'wall', 'floor', 'other' ],
49
+ required: true,
50
+ },
51
+ fixtureLength: {
52
+ value: {
53
+ type: Number,
54
+ default: 0,
55
+ },
56
+ unit: {
57
+ type: String,
58
+ default: '',
59
+ },
60
+ },
61
+ fixtureWidth: {
62
+ value: {
63
+ type: Number,
64
+ default: 0,
65
+ },
66
+ unit: {
67
+ type: String,
68
+ default: '',
69
+ },
70
+ },
71
+ fixtureStaticLength: {
72
+ value: {
73
+ type: Number,
74
+ default: 0,
75
+ },
76
+ unit: {
77
+ type: String,
78
+ default: '',
79
+ },
80
+ },
81
+ fixtureStaticWidth: {
82
+ value: {
83
+ type: Number,
84
+ default: 0,
85
+ },
86
+ unit: {
87
+ type: String,
88
+ default: '',
89
+ },
90
+ },
91
+ fixtureCapacity: {
92
+ type: Number,
93
+ },
94
+ associatedElementType: {
95
+ type: String,
96
+ enum: [ 'wall', 'facade' ],
97
+ },
98
+ associatedElementNumber: {
99
+ type: Number,
100
+ },
101
+ relativePosition: {
102
+ x: {
103
+ type: Number,
104
+ },
105
+ y: {
106
+ type: Number,
107
+ },
108
+ unit: {
109
+ type: String,
110
+ },
111
+ angle:{
112
+ type: Number,
113
+ }
114
+ },
115
+ productResolutionLevel: {
116
+ type: String,
117
+ enum: [ 'L1', 'L2', 'L3', 'L4' ],
118
+ // L1- fixture level, L2- shelf level, L3- section level, L4- product level
119
+ },
120
+ imageUrl: {
121
+ type: String,
122
+ },
123
+ header: {
124
+ height: {
125
+ value: {
126
+ type: Number,
127
+ default: 0,
128
+ },
129
+ unit: {
130
+ type: String,
131
+ default: '',
132
+ },
133
+ },
134
+ label: {
135
+ type: String,
136
+ },
137
+ isEnabled: {
138
+ type: Boolean,
139
+ default: true,
140
+ },
141
+ },
142
+ footer: {
143
+ height: {
144
+ value: {
145
+ type: Number,
146
+ default: 0,
147
+ },
148
+ unit: {
149
+ type: String,
150
+ default: '',
151
+ },
152
+ },
153
+ label: {
154
+ type: String,
155
+ },
156
+ isEnabled: {
157
+ type: Boolean,
158
+ default: true,
159
+ },
160
+ },
161
+ isBodyEnabled: {
162
+ type: Boolean,
163
+ default: true,
164
+ },
165
+ associatedElementFixtureNumber: {
166
+ type: Number,
167
+ },
168
+ vmConfig: [
169
+ {
170
+ vmId: {
171
+ type: mongoose.Types.ObjectId,
172
+ },
173
+ startYPosition: {
174
+ type: Number,
175
+ },
176
+ endYPosition: {
177
+ type: Number,
178
+ },
179
+ xZone: {
180
+ type: String,
181
+ },
182
+ yZone: {
183
+ type: String,
184
+ },
185
+ position: {
186
+ type: String,
187
+ },
188
+ },
189
+ ],
190
+ fixtureLibraryId: {
191
+ type: mongoose.Types.ObjectId,
192
+ index:true
193
+ },
194
+ fixtureConfigId: {
195
+ type: mongoose.Types.ObjectId,
196
+ index:true
197
+ },
198
+ fixtureNumber: {
199
+ type: Number,
200
+ },
201
+ templateIndex: {
202
+ type: Number,
203
+ default: 1,
204
+ },
205
+ isMerchEdited: {
206
+ type: Boolean,
207
+ default: false,
208
+ },
209
+ isVmEdited: {
210
+ type: Boolean,
211
+ default: false,
212
+ },
213
+ masterTemplateId:{
214
+ type: mongoose.Types.ObjectId,
215
+ },
216
+ templateGroupName: {
217
+ type: String
218
+ },
219
+
220
+ },
221
+ {
222
+ strict: true,
223
+ versionKey: false,
224
+ timestamps: true,
225
+ },
226
+ );
227
+
228
+ export default mongoose.model( 'storeFixtureDuplicate', storeFixtureSchema );
229
+
230
+
231
+
@@ -0,0 +1,74 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const storeLayoutSchema = 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
+ floorNumber: {
21
+ type: Number,
22
+ default: 1,
23
+ },
24
+ floorName: {
25
+ type: String,
26
+ required: true,
27
+ },
28
+ layoutPolygon: {
29
+ type: Array,
30
+ default: [],
31
+ },
32
+ createdBy: {
33
+ type: mongoose.Types.ObjectId,
34
+ required: true,
35
+ },
36
+ createdByName: {
37
+ type: String,
38
+ required: true,
39
+ },
40
+ createdByEmail: {
41
+ type: String,
42
+ required: true,
43
+ },
44
+ status: {
45
+ type: String,
46
+ enum: [ 'draft', 'completed' ],
47
+ default: 'draft',
48
+ },
49
+ planoId: {
50
+ type: mongoose.Types.ObjectId,
51
+ required: true,
52
+ index:true
53
+ },
54
+ storeOrder: {
55
+ type: String,
56
+ enum: [ 'LTR', 'RTL' ],
57
+ // LTR - Left to Right, RTL - Right to Left
58
+ },
59
+ isEdited: {
60
+ type: Boolean,
61
+ },
62
+ planoProgress:{
63
+ type:Number,
64
+ default:25
65
+ }
66
+ },
67
+ {
68
+ strict: true,
69
+ versionKey: false,
70
+ timestamps: true,
71
+ },
72
+ );
73
+
74
+ export default mongoose.model( 'storeLayoutDuplicate', storeLayoutSchema );