tango-api-schema 2.2.25 → 2.2.27

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
@@ -74,6 +74,12 @@ import nobBillingModel from "./schema/nobBilling.model.js";
74
74
  import storeLayoutModel from "./schema/storeLayout.model.js";
75
75
  import planogramModel from "./schema/planogram.model.js";
76
76
  import emailersModel from "./schema/emailers.model.js";
77
+ import planoMappingModel from './schema/planoMapping.model.js';
78
+ import planoProductModel from './schema/planoProductDetail.model.js';
79
+ import planoComplianceModel from './schema/planoCompliance.model.js';
80
+ import storeFixtureModel from './schema/storeFixture.model.js';
81
+ import fixtureConfigModel from './schema/fixtureConfig.model.js';
82
+ import fixtureShelfModel from './schema/fixtureShelf.model.js';
77
83
 
78
84
  export default {
79
85
  leadModel,
@@ -152,4 +158,10 @@ export default {
152
158
  storeLayoutModel,
153
159
  planogramModel,
154
160
  emailersModel,
161
+ planoMappingModel,
162
+ planoProductModel,
163
+ planoComplianceModel,
164
+ storeFixtureModel,
165
+ fixtureConfigModel,
166
+ fixtureShelfModel,
155
167
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tango-api-schema",
3
- "version": "2.2.25",
3
+ "version": "2.2.27",
4
4
  "description": "tangoEye model schema",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -15,7 +15,7 @@ const emailersSchema = new mongoose.Schema({
15
15
  type: String,
16
16
  },
17
17
  storeIds: {
18
- type: array,
18
+ type: Array,
19
19
  default: [],
20
20
  },
21
21
  status: {
@@ -0,0 +1,57 @@
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
+ required: true,
12
+ },
13
+ fixtureType: {
14
+ type: String,
15
+ enum: [ 'wall', 'floor' ],
16
+ required: true,
17
+ },
18
+ fixtureHeight: {
19
+ value: {
20
+ type: Number,
21
+ required: true,
22
+ },
23
+ unit: {
24
+ type: String,
25
+ default: 'mm',
26
+ },
27
+ },
28
+ fixtureLength: {
29
+ value: {
30
+ type: Number,
31
+ required: true,
32
+ },
33
+ unit: {
34
+ type: String,
35
+ default: 'mm',
36
+ },
37
+ },
38
+ fixtureWidth: {
39
+ value: {
40
+ type: Number,
41
+ default: 914,
42
+ },
43
+ unit: {
44
+ type: String,
45
+ default: 'mm',
46
+ },
47
+ },
48
+
49
+ },
50
+ {
51
+ strict: true,
52
+ versionKey: false,
53
+ timestamps: true,
54
+ },
55
+ );
56
+
57
+ export default mongoose.model( 'fixtureConfig', fixtureConfigSchema );
@@ -0,0 +1,57 @@
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
+ },
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
+
34
+ shelfOrder: {
35
+ type: String,
36
+ enum: [ 'LTR', 'RTL' ],
37
+ // LTR - Left to Right, RTL - Right to Left
38
+ required: true,
39
+ },
40
+ shelfCapacity: {
41
+ type: Number,
42
+ required: true,
43
+ },
44
+ shelfType:{
45
+ type: String,
46
+ enum: [ 'header', 'footer', 'middle' ],
47
+ default:'middle'
48
+ }
49
+ },
50
+ {
51
+ strict: true,
52
+ versionKey: false,
53
+ timestamps: true,
54
+ },
55
+ );
56
+
57
+ export default mongoose.model( 'fixtureShelf', fixtureShelfSchema );
@@ -0,0 +1,55 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ const planoComplianceSchema = 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
+ default:'product'
21
+ },
22
+ planoId: {
23
+ type: mongoose.Types.ObjectId,
24
+ },
25
+ floorId: {
26
+ type: mongoose.Types.ObjectId,
27
+ },
28
+ fixtureId: {
29
+ type: mongoose.Types.ObjectId,
30
+ },
31
+ shelfId: {
32
+ type: mongoose.Types.ObjectId,
33
+ },
34
+ shelfPosition: {
35
+ type: Number,
36
+ },
37
+ productId: {
38
+ type: mongoose.Types.ObjectId,
39
+ },
40
+ rfId: {
41
+ type: String,
42
+ },
43
+ compliance: {
44
+ type: String,
45
+ enum: [ 'misplaced', 'proper' ],
46
+ },
47
+ },
48
+ {
49
+ strict: true,
50
+ versionKey: false,
51
+ timestamps: true,
52
+ },
53
+ );
54
+
55
+ export default mongoose.model( 'planoCompliance', planoComplianceSchema );
@@ -0,0 +1,55 @@
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
+ required: true,
42
+ },
43
+ rfId: {
44
+ type: String,
45
+ required: true,
46
+ },
47
+ },
48
+ {
49
+ strict: true,
50
+ versionKey: false,
51
+ timestamps: true,
52
+ },
53
+ );
54
+
55
+ export default mongoose.model( 'planoMapping', planoMappingSchema );
@@ -0,0 +1,66 @@
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
+ default: 'mm',
32
+ },
33
+ },
34
+ productWidth: {
35
+ value: {
36
+ type: Number,
37
+ },
38
+ unit: {
39
+ type: String,
40
+ default: 'mm',
41
+ },
42
+ },
43
+ productWeight: {
44
+ value: {
45
+ type: Number,
46
+ },
47
+ unit: {
48
+ type: String,
49
+ default: 'g',
50
+ },
51
+ },
52
+ productSize: {
53
+ type: String,
54
+ },
55
+ productImageUrl: {
56
+ type: String,
57
+ },
58
+ },
59
+ {
60
+ strict: false,
61
+ versionKey: false,
62
+ timestamps: true,
63
+ },
64
+ );
65
+
66
+ export default mongoose.model( 'planoProductDetail', planoProductDetailSchema );
@@ -1,53 +1,59 @@
1
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
- }
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' ],
48
+ // L1- floor level, L2- fixture level, L3- fixture-shelf level, L4- fixture-shelf-product level
49
+ default: 'L3',
50
+ }
45
51
  },
46
52
  {
47
- strict: true,
48
- versionKey: false,
49
- timestamps: true,
53
+ strict: true,
54
+ versionKey: false,
55
+ timestamps: true,
50
56
  },
51
57
  );
52
-
53
- export default mongoose.model( 'planogram', planogramSchema);
58
+
59
+ export default mongoose.model( 'planogram', planogramSchema );
@@ -0,0 +1,122 @@
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
+ },
21
+ floorId: {
22
+ type: mongoose.Types.ObjectId,
23
+ required: true,
24
+ },
25
+ fixtureName: {
26
+ type: String,
27
+ required: true,
28
+ },
29
+ fixtureCategory: {
30
+ type: String,
31
+ required: true,
32
+ },
33
+ fixtureType: {
34
+ type: String,
35
+ enum: [ 'wall', 'floor' ],
36
+ required: true,
37
+ },
38
+ fixtureHeight: {
39
+ value: {
40
+ type: Number,
41
+ required: true,
42
+ },
43
+ unit: {
44
+ type: String,
45
+ default: 'mm',
46
+ },
47
+ },
48
+ fixtureLength: {
49
+ value: {
50
+ type: Number,
51
+ required: true,
52
+ },
53
+ unit: {
54
+ type: String,
55
+ default: 'mm',
56
+ },
57
+ },
58
+ fixtureWidth: {
59
+ value: {
60
+ type: Number,
61
+ default: 914,
62
+ },
63
+ unit: {
64
+ type: String,
65
+ default: 'mm',
66
+ },
67
+ },
68
+ productPerShelf: {
69
+ type: Number,
70
+ required: true,
71
+ },
72
+ mbq: {
73
+ type: Number,
74
+ },
75
+ fixtureCapacity: {
76
+ type: Number,
77
+ },
78
+ shelfcount: {
79
+ type: Number,
80
+ required: true,
81
+ },
82
+ associatedElementType: {
83
+ type: String,
84
+ enum: [ 'wall', 'facade' ],
85
+ },
86
+ associatedElementNumber: {
87
+ type: Number,
88
+ },
89
+ fixtureId: {
90
+ type: mongoose.Types.ObjectId,
91
+ required: true,
92
+ },
93
+ relativePosition: {
94
+ x: {
95
+ type: Number,
96
+ default: 0,
97
+ },
98
+ y: {
99
+ type: Number,
100
+ default: 0,
101
+ },
102
+ unit: {
103
+ type: String,
104
+ default: 'mm',
105
+ },
106
+ },
107
+ fixtureOrder: {
108
+ type: String,
109
+ enum: [ 'TTB', 'BTT' ],
110
+ // TTB - Top to Bottom, BTT - Bottom to Top
111
+ required: true,
112
+ },
113
+ },
114
+
115
+ {
116
+ strict: true,
117
+ versionKey: false,
118
+ timestamps: true,
119
+ },
120
+ );
121
+
122
+ export default mongoose.model( 'storeFixture', storeFixtureSchema );
@@ -1,61 +1,67 @@
1
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
- }
53
- },
54
- {
55
- strict: true,
56
- versionKey: false,
57
- timestamps: true,
58
- },
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
+ },
53
+ storeOrder: {
54
+ type: String,
55
+ enum: [ 'LTR', 'RTL' ],
56
+ // LTR - Left to Right, RTL - Right to Left
57
+ required: true,
58
+ },
59
+ },
60
+ {
61
+ strict: true,
62
+ versionKey: false,
63
+ timestamps: true,
64
+ },
59
65
  );
60
-
61
- export default mongoose.model( 'storeLayout', storeLayoutSchema);
66
+
67
+ export default mongoose.model( 'storeLayout', storeLayoutSchema );