@reldens/storage 0.89.0 → 0.91.0
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/CLAUDE.md +11 -2
- package/index.js +4 -1
- package/lib/entity-templates/entities-translations.template +3 -0
- package/lib/generators/entities-generation.js +52 -7
- package/lib/generators/entities-translations-generation.js +40 -4
- package/lib/generators/models-generation.js +10 -9
- package/lib/objection-js/objection-js-data-server.js +27 -2
- package/lib/relation-key.js +9 -0
- package/package.json +2 -2
- package/tests/fixtures/{expected-entities-prisma → expected-entities}/entities/test-categories-entity.js +70 -70
- package/tests/fixtures/{expected-entities-prisma → expected-entities}/entities/test-products-entity.js +96 -95
- package/tests/fixtures/{expected-entities-mikro-orm → expected-entities}/entities/test-reviews-entity.js +85 -84
- package/tests/fixtures/{expected-entities-mikro-orm → expected-entities}/entities-config.js +4 -4
- package/tests/fixtures/expected-entities/entities-translations.js +53 -0
- package/tests/run-tests.js +2 -2
- package/tests/utils/test-helpers.js +2 -2
- package/tests/utils/test-runner.js +1 -1
- package/tests/fixtures/expected-entities-mikro-orm/entities/test-categories-entity.js +0 -70
- package/tests/fixtures/expected-entities-mikro-orm/entities/test-products-entity.js +0 -95
- package/tests/fixtures/expected-entities-mikro-orm/entities-translations.js +0 -13
- package/tests/fixtures/expected-entities-objection-js/entities/test-categories-entity.js +0 -70
- package/tests/fixtures/expected-entities-objection-js/entities/test-products-entity.js +0 -95
- package/tests/fixtures/expected-entities-objection-js/entities/test-reviews-entity.js +0 -84
- package/tests/fixtures/expected-entities-objection-js/entities-config.js +0 -17
- package/tests/fixtures/expected-entities-objection-js/entities-translations.js +0 -13
- package/tests/fixtures/expected-entities-prisma/entities/test-reviews-entity.js +0 -84
- package/tests/fixtures/expected-entities-prisma/entities-config.js +0 -17
- package/tests/fixtures/expected-entities-prisma/entities-translations.js +0 -13
|
@@ -1,95 +1,96 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* Reldens - TestProductsEntity
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const { EntityProperties } = require('../../index');
|
|
8
|
-
const { sc } = require('@reldens/utils');
|
|
9
|
-
|
|
10
|
-
class TestProductsEntity extends EntityProperties
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
static propertiesConfig(extraProps)
|
|
14
|
-
{
|
|
15
|
-
let titleProperty = 'name';
|
|
16
|
-
let properties = {
|
|
17
|
-
id: {
|
|
18
|
-
isId: true,
|
|
19
|
-
type: 'number',
|
|
20
|
-
isRequired: true,
|
|
21
|
-
dbType: 'int'
|
|
22
|
-
},
|
|
23
|
-
category_id: {
|
|
24
|
-
type: 'reference',
|
|
25
|
-
reference: 'test_categories',
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
{value:
|
|
65
|
-
{value:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
let
|
|
80
|
-
let
|
|
81
|
-
let
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Reldens - TestProductsEntity
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const { EntityProperties } = require('../../index');
|
|
8
|
+
const { sc } = require('@reldens/utils');
|
|
9
|
+
|
|
10
|
+
class TestProductsEntity extends EntityProperties
|
|
11
|
+
{
|
|
12
|
+
|
|
13
|
+
static propertiesConfig(extraProps)
|
|
14
|
+
{
|
|
15
|
+
let titleProperty = 'name';
|
|
16
|
+
let properties = {
|
|
17
|
+
id: {
|
|
18
|
+
isId: true,
|
|
19
|
+
type: 'number',
|
|
20
|
+
isRequired: true,
|
|
21
|
+
dbType: 'int'
|
|
22
|
+
},
|
|
23
|
+
category_id: {
|
|
24
|
+
type: 'reference',
|
|
25
|
+
reference: 'test_categories',
|
|
26
|
+
alias: 'related_test_categories',
|
|
27
|
+
isRequired: true,
|
|
28
|
+
dbType: 'int'
|
|
29
|
+
},
|
|
30
|
+
[titleProperty]: {
|
|
31
|
+
isRequired: true,
|
|
32
|
+
dbType: 'varchar'
|
|
33
|
+
},
|
|
34
|
+
sku: {
|
|
35
|
+
isRequired: true,
|
|
36
|
+
dbType: 'varchar'
|
|
37
|
+
},
|
|
38
|
+
description: {
|
|
39
|
+
type: 'textarea',
|
|
40
|
+
dbType: 'text'
|
|
41
|
+
},
|
|
42
|
+
price: {
|
|
43
|
+
type: 'number',
|
|
44
|
+
isRequired: true,
|
|
45
|
+
dbType: 'decimal'
|
|
46
|
+
},
|
|
47
|
+
stock_quantity: {
|
|
48
|
+
type: 'number',
|
|
49
|
+
dbType: 'int'
|
|
50
|
+
},
|
|
51
|
+
is_featured: {
|
|
52
|
+
type: 'boolean',
|
|
53
|
+
dbType: 'tinyint'
|
|
54
|
+
},
|
|
55
|
+
metadata: {
|
|
56
|
+
type: 'textarea',
|
|
57
|
+
dbType: 'json'
|
|
58
|
+
},
|
|
59
|
+
tags: {
|
|
60
|
+
dbType: 'varchar'
|
|
61
|
+
},
|
|
62
|
+
status: {
|
|
63
|
+
availableValues: [
|
|
64
|
+
{value: 1, label: 'draft'},
|
|
65
|
+
{value: 2, label: 'published'},
|
|
66
|
+
{value: 3, label: 'archived'}
|
|
67
|
+
],
|
|
68
|
+
dbType: 'enum'
|
|
69
|
+
},
|
|
70
|
+
created_at: {
|
|
71
|
+
type: 'datetime',
|
|
72
|
+
dbType: 'timestamp'
|
|
73
|
+
},
|
|
74
|
+
updated_at: {
|
|
75
|
+
type: 'datetime',
|
|
76
|
+
dbType: 'timestamp'
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
let propertiesKeys = Object.keys(properties);
|
|
80
|
+
let showProperties = propertiesKeys;
|
|
81
|
+
let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
|
|
82
|
+
let listProperties = sc.removeFromArray([...propertiesKeys], ['description', 'metadata']);
|
|
83
|
+
return {
|
|
84
|
+
showProperties,
|
|
85
|
+
editProperties,
|
|
86
|
+
listProperties,
|
|
87
|
+
filterProperties: listProperties,
|
|
88
|
+
properties,
|
|
89
|
+
titleProperty,
|
|
90
|
+
...extraProps
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
module.exports.TestProductsEntity = TestProductsEntity;
|
|
@@ -1,84 +1,85 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* Reldens - TestReviewsEntity
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const { EntityProperties } = require('../../index');
|
|
8
|
-
const { sc } = require('@reldens/utils');
|
|
9
|
-
|
|
10
|
-
class TestReviewsEntity extends EntityProperties
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
static propertiesConfig(extraProps)
|
|
14
|
-
{
|
|
15
|
-
let titleProperty = 'title';
|
|
16
|
-
let properties = {
|
|
17
|
-
id: {
|
|
18
|
-
isId: true,
|
|
19
|
-
type: 'number',
|
|
20
|
-
isRequired: true,
|
|
21
|
-
dbType: 'int'
|
|
22
|
-
},
|
|
23
|
-
product_id: {
|
|
24
|
-
type: 'reference',
|
|
25
|
-
reference: 'test_products',
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
let
|
|
68
|
-
let
|
|
69
|
-
let
|
|
70
|
-
listProperties
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Reldens - TestReviewsEntity
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const { EntityProperties } = require('../../index');
|
|
8
|
+
const { sc } = require('@reldens/utils');
|
|
9
|
+
|
|
10
|
+
class TestReviewsEntity extends EntityProperties
|
|
11
|
+
{
|
|
12
|
+
|
|
13
|
+
static propertiesConfig(extraProps)
|
|
14
|
+
{
|
|
15
|
+
let titleProperty = 'title';
|
|
16
|
+
let properties = {
|
|
17
|
+
id: {
|
|
18
|
+
isId: true,
|
|
19
|
+
type: 'number',
|
|
20
|
+
isRequired: true,
|
|
21
|
+
dbType: 'int'
|
|
22
|
+
},
|
|
23
|
+
product_id: {
|
|
24
|
+
type: 'reference',
|
|
25
|
+
reference: 'test_products',
|
|
26
|
+
alias: 'related_test_products',
|
|
27
|
+
isRequired: true,
|
|
28
|
+
dbType: 'int'
|
|
29
|
+
},
|
|
30
|
+
reviewer_name: {
|
|
31
|
+
isRequired: true,
|
|
32
|
+
dbType: 'varchar'
|
|
33
|
+
},
|
|
34
|
+
reviewer_email: {
|
|
35
|
+
isRequired: true,
|
|
36
|
+
dbType: 'varchar'
|
|
37
|
+
},
|
|
38
|
+
rating: {
|
|
39
|
+
type: 'boolean',
|
|
40
|
+
isRequired: true,
|
|
41
|
+
dbType: 'tinyint'
|
|
42
|
+
},
|
|
43
|
+
[titleProperty]: {
|
|
44
|
+
dbType: 'varchar'
|
|
45
|
+
},
|
|
46
|
+
comment: {
|
|
47
|
+
type: 'textarea',
|
|
48
|
+
dbType: 'text'
|
|
49
|
+
},
|
|
50
|
+
is_verified: {
|
|
51
|
+
type: 'boolean',
|
|
52
|
+
dbType: 'tinyint'
|
|
53
|
+
},
|
|
54
|
+
helpful_count: {
|
|
55
|
+
type: 'number',
|
|
56
|
+
dbType: 'int'
|
|
57
|
+
},
|
|
58
|
+
created_at: {
|
|
59
|
+
type: 'datetime',
|
|
60
|
+
dbType: 'timestamp'
|
|
61
|
+
},
|
|
62
|
+
updated_at: {
|
|
63
|
+
type: 'datetime',
|
|
64
|
+
dbType: 'timestamp'
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
let propertiesKeys = Object.keys(properties);
|
|
68
|
+
let showProperties = propertiesKeys;
|
|
69
|
+
let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
|
|
70
|
+
let listProperties = [...propertiesKeys];
|
|
71
|
+
listProperties.splice(listProperties.indexOf('comment'), 1);
|
|
72
|
+
return {
|
|
73
|
+
showProperties,
|
|
74
|
+
editProperties,
|
|
75
|
+
listProperties,
|
|
76
|
+
filterProperties: listProperties,
|
|
77
|
+
properties,
|
|
78
|
+
titleProperty,
|
|
79
|
+
...extraProps
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
module.exports.TestReviewsEntity = TestReviewsEntity;
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
*
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
const { TestCategoriesEntity } = require('./entities/test-categories-entity');
|
|
8
|
-
const { TestProductsEntity } = require('./entities/test-products-entity');
|
|
7
|
+
const { TestCategoriesEntity } = require('./entities/test-categories-entity');
|
|
8
|
+
const { TestProductsEntity } = require('./entities/test-products-entity');
|
|
9
9
|
const { TestReviewsEntity } = require('./entities/test-reviews-entity');
|
|
10
10
|
|
|
11
11
|
let entitiesConfig = {
|
|
12
|
-
testCategories: TestCategoriesEntity.propertiesConfig(),
|
|
13
|
-
testProducts: TestProductsEntity.propertiesConfig(),
|
|
12
|
+
testCategories: TestCategoriesEntity.propertiesConfig(),
|
|
13
|
+
testProducts: TestProductsEntity.propertiesConfig(),
|
|
14
14
|
testReviews: TestReviewsEntity.propertiesConfig()
|
|
15
15
|
};
|
|
16
16
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Reldens - Entities Translations
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
module.exports.entitiesTranslations = {
|
|
8
|
+
labels: {
|
|
9
|
+
'test_categories': 'Test Categories',
|
|
10
|
+
'test_products': 'Test Products',
|
|
11
|
+
'test_reviews': 'Test Reviews'
|
|
12
|
+
},
|
|
13
|
+
fields: {
|
|
14
|
+
'test_categories': {
|
|
15
|
+
'id': 'ID',
|
|
16
|
+
'name': 'Name',
|
|
17
|
+
'slug': 'Slug',
|
|
18
|
+
'description': 'Description',
|
|
19
|
+
'is_active': 'Is Active',
|
|
20
|
+
'display_order': 'Display Order',
|
|
21
|
+
'created_at': 'Created At',
|
|
22
|
+
'updated_at': 'Updated At'
|
|
23
|
+
},
|
|
24
|
+
'test_products': {
|
|
25
|
+
'id': 'ID',
|
|
26
|
+
'category_id': 'Category ID',
|
|
27
|
+
'name': 'Name',
|
|
28
|
+
'sku': 'Sku',
|
|
29
|
+
'description': 'Description',
|
|
30
|
+
'price': 'Price',
|
|
31
|
+
'stock_quantity': 'Stock Quantity',
|
|
32
|
+
'is_featured': 'Is Featured',
|
|
33
|
+
'metadata': 'Metadata',
|
|
34
|
+
'tags': 'Tags',
|
|
35
|
+
'status': 'Status',
|
|
36
|
+
'created_at': 'Created At',
|
|
37
|
+
'updated_at': 'Updated At'
|
|
38
|
+
},
|
|
39
|
+
'test_reviews': {
|
|
40
|
+
'id': 'ID',
|
|
41
|
+
'product_id': 'Product ID',
|
|
42
|
+
'reviewer_name': 'Reviewer Name',
|
|
43
|
+
'reviewer_email': 'Reviewer Email',
|
|
44
|
+
'rating': 'Rating',
|
|
45
|
+
'title': 'Title',
|
|
46
|
+
'comment': 'Comment',
|
|
47
|
+
'is_verified': 'Is Verified',
|
|
48
|
+
'helpful_count': 'Helpful Count',
|
|
49
|
+
'created_at': 'Created At',
|
|
50
|
+
'updated_at': 'Updated At'
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
package/tests/run-tests.js
CHANGED
|
@@ -45,11 +45,11 @@ class RunTests
|
|
|
45
45
|
}
|
|
46
46
|
if(arg.startsWith('--suite=')){
|
|
47
47
|
this.suite = arg.split('=')[1];
|
|
48
|
-
Logger.info('Suite: '+this.suite
|
|
48
|
+
Logger.info('Suite: '+this.suite);
|
|
49
49
|
}
|
|
50
50
|
if(arg.startsWith('--driver=')){
|
|
51
51
|
this.driver = arg.split('=')[1];
|
|
52
|
-
Logger.info('Driver: '+this.driver
|
|
52
|
+
Logger.info('Driver: '+this.driver);
|
|
53
53
|
}
|
|
54
54
|
if('--skip-cleanup' === arg){
|
|
55
55
|
this.skipCleanup = true;
|
|
@@ -284,7 +284,7 @@ class TestHelpers
|
|
|
284
284
|
{name: '@prisma/client', version: '6.19.2'},
|
|
285
285
|
{name: 'knex', version: '3.1.0'},
|
|
286
286
|
{name: 'mysql', version: '2.18.1'},
|
|
287
|
-
{name: 'mysql2', version: '3.16.
|
|
287
|
+
{name: 'mysql2', version: '3.16.3'},
|
|
288
288
|
{name: 'objection', version: '3.1.5'},
|
|
289
289
|
{name: 'prisma', version: '6.19.2'}
|
|
290
290
|
];
|
|
@@ -584,7 +584,7 @@ class TestHelpers
|
|
|
584
584
|
__dirname,
|
|
585
585
|
'..',
|
|
586
586
|
'fixtures',
|
|
587
|
-
'expected-entities-'+driverName,
|
|
587
|
+
relativePath.startsWith('models/') ? 'expected-entities-'+driverName : 'expected-entities',
|
|
588
588
|
relativePath
|
|
589
589
|
);
|
|
590
590
|
let generatedPath = FileHandler.joinPaths(
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* Reldens - TestCategoriesEntity
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const { EntityProperties } = require('../../index');
|
|
8
|
-
const { sc } = require('@reldens/utils');
|
|
9
|
-
|
|
10
|
-
class TestCategoriesEntity extends EntityProperties
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
static propertiesConfig(extraProps)
|
|
14
|
-
{
|
|
15
|
-
let titleProperty = 'name';
|
|
16
|
-
let properties = {
|
|
17
|
-
id: {
|
|
18
|
-
isId: true,
|
|
19
|
-
type: 'number',
|
|
20
|
-
isRequired: true,
|
|
21
|
-
dbType: 'int'
|
|
22
|
-
},
|
|
23
|
-
[titleProperty]: {
|
|
24
|
-
isRequired: true,
|
|
25
|
-
dbType: 'varchar'
|
|
26
|
-
},
|
|
27
|
-
slug: {
|
|
28
|
-
isRequired: true,
|
|
29
|
-
dbType: 'varchar'
|
|
30
|
-
},
|
|
31
|
-
description: {
|
|
32
|
-
type: 'textarea',
|
|
33
|
-
dbType: 'text'
|
|
34
|
-
},
|
|
35
|
-
is_active: {
|
|
36
|
-
type: 'boolean',
|
|
37
|
-
dbType: 'tinyint'
|
|
38
|
-
},
|
|
39
|
-
display_order: {
|
|
40
|
-
type: 'number',
|
|
41
|
-
dbType: 'int'
|
|
42
|
-
},
|
|
43
|
-
created_at: {
|
|
44
|
-
type: 'datetime',
|
|
45
|
-
dbType: 'timestamp'
|
|
46
|
-
},
|
|
47
|
-
updated_at: {
|
|
48
|
-
type: 'datetime',
|
|
49
|
-
dbType: 'timestamp'
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
let propertiesKeys = Object.keys(properties);
|
|
53
|
-
let showProperties = propertiesKeys;
|
|
54
|
-
let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
|
|
55
|
-
let listProperties = [...propertiesKeys];
|
|
56
|
-
listProperties.splice(listProperties.indexOf('description'), 1);
|
|
57
|
-
return {
|
|
58
|
-
showProperties,
|
|
59
|
-
editProperties,
|
|
60
|
-
listProperties,
|
|
61
|
-
filterProperties: listProperties,
|
|
62
|
-
properties,
|
|
63
|
-
titleProperty,
|
|
64
|
-
...extraProps
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
module.exports.TestCategoriesEntity = TestCategoriesEntity;
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* Reldens - TestProductsEntity
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const { EntityProperties } = require('../../index');
|
|
8
|
-
const { sc } = require('@reldens/utils');
|
|
9
|
-
|
|
10
|
-
class TestProductsEntity extends EntityProperties
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
static propertiesConfig(extraProps)
|
|
14
|
-
{
|
|
15
|
-
let titleProperty = 'name';
|
|
16
|
-
let properties = {
|
|
17
|
-
id: {
|
|
18
|
-
isId: true,
|
|
19
|
-
type: 'number',
|
|
20
|
-
isRequired: true,
|
|
21
|
-
dbType: 'int'
|
|
22
|
-
},
|
|
23
|
-
category_id: {
|
|
24
|
-
type: 'reference',
|
|
25
|
-
reference: 'test_categories',
|
|
26
|
-
isRequired: true,
|
|
27
|
-
dbType: 'int'
|
|
28
|
-
},
|
|
29
|
-
[titleProperty]: {
|
|
30
|
-
isRequired: true,
|
|
31
|
-
dbType: 'varchar'
|
|
32
|
-
},
|
|
33
|
-
sku: {
|
|
34
|
-
isRequired: true,
|
|
35
|
-
dbType: 'varchar'
|
|
36
|
-
},
|
|
37
|
-
description: {
|
|
38
|
-
type: 'textarea',
|
|
39
|
-
dbType: 'text'
|
|
40
|
-
},
|
|
41
|
-
price: {
|
|
42
|
-
type: 'number',
|
|
43
|
-
isRequired: true,
|
|
44
|
-
dbType: 'decimal'
|
|
45
|
-
},
|
|
46
|
-
stock_quantity: {
|
|
47
|
-
type: 'number',
|
|
48
|
-
dbType: 'int'
|
|
49
|
-
},
|
|
50
|
-
is_featured: {
|
|
51
|
-
type: 'boolean',
|
|
52
|
-
dbType: 'tinyint'
|
|
53
|
-
},
|
|
54
|
-
metadata: {
|
|
55
|
-
type: 'textarea',
|
|
56
|
-
dbType: 'json'
|
|
57
|
-
},
|
|
58
|
-
tags: {
|
|
59
|
-
dbType: 'varchar'
|
|
60
|
-
},
|
|
61
|
-
status: {
|
|
62
|
-
availableValues: [
|
|
63
|
-
{value: 1, label: 'draft'},
|
|
64
|
-
{value: 2, label: 'published'},
|
|
65
|
-
{value: 3, label: 'archived'}
|
|
66
|
-
],
|
|
67
|
-
dbType: 'enum'
|
|
68
|
-
},
|
|
69
|
-
created_at: {
|
|
70
|
-
type: 'datetime',
|
|
71
|
-
dbType: 'timestamp'
|
|
72
|
-
},
|
|
73
|
-
updated_at: {
|
|
74
|
-
type: 'datetime',
|
|
75
|
-
dbType: 'timestamp'
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
let propertiesKeys = Object.keys(properties);
|
|
79
|
-
let showProperties = propertiesKeys;
|
|
80
|
-
let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
|
|
81
|
-
let listProperties = sc.removeFromArray([...propertiesKeys], ['description', 'metadata']);
|
|
82
|
-
return {
|
|
83
|
-
showProperties,
|
|
84
|
-
editProperties,
|
|
85
|
-
listProperties,
|
|
86
|
-
filterProperties: listProperties,
|
|
87
|
-
properties,
|
|
88
|
-
titleProperty,
|
|
89
|
-
...extraProps
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
module.exports.TestProductsEntity = TestProductsEntity;
|