@reldens/storage 0.89.0 → 0.90.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/lib/entity-templates/entities-translations.template +3 -0
- package/lib/generators/entities-generation.js +12 -1
- package/lib/generators/entities-translations-generation.js +40 -4
- package/package.json +1 -1
- 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 +95 -95
- package/tests/fixtures/{expected-entities-mikro-orm → expected-entities}/entities/test-reviews-entity.js +84 -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 +1 -1
- 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
package/CLAUDE.md
CHANGED
|
@@ -191,7 +191,14 @@ npx reldens-storage-prisma --host=<host> --database=<db> --user=<user> --passwor
|
|
|
191
191
|
|
|
192
192
|
**EntitiesTranslationsGeneration** (`lib/generators/entities-translations-generation.js`):
|
|
193
193
|
- Generates `entities-translations.js` file
|
|
194
|
-
- Creates i18n translation keys for entities
|
|
194
|
+
- Creates i18n translation keys for entities and fields
|
|
195
|
+
- Generates two types of translations:
|
|
196
|
+
- Table labels: Human-readable entity names
|
|
197
|
+
- Entity-specific field translations: Field labels per entity
|
|
198
|
+
- Methods:
|
|
199
|
+
- `getTranslationLabels()`: Generates table name translations
|
|
200
|
+
- `getFieldTranslations()`: Generates entity-specific field translations
|
|
201
|
+
- `formatFieldName()`: Converts field names to human-readable labels (e.g., `owner_id` → `Owner ID`)
|
|
195
202
|
|
|
196
203
|
**BaseGenerator** (`lib/generators/base-generator.js`):
|
|
197
204
|
- Base class for all generators
|
|
@@ -255,7 +262,9 @@ All generated files are created in the **generated-entities/** directory:
|
|
|
255
262
|
|
|
256
263
|
**Configuration Files:**
|
|
257
264
|
- entities-config.js (entity relation configuration)
|
|
258
|
-
- entities-translations.js (translation keys)
|
|
265
|
+
- entities-translations.js (translation keys with two sections):
|
|
266
|
+
- `labels`: Table name translations (e.g., `'skills_class_path': 'Class Paths'`)
|
|
267
|
+
- `fields`: Entity-specific field translations (e.g., `'skills_class_path': {'id': 'ID', 'key': 'Key'}`)
|
|
259
268
|
|
|
260
269
|
## Relation Keys Pattern
|
|
261
270
|
|
|
@@ -75,15 +75,26 @@ class EntitiesGeneration extends BaseGenerator
|
|
|
75
75
|
return false;
|
|
76
76
|
}
|
|
77
77
|
Logger.info('Generated entity file: '+fileName);
|
|
78
|
+
let properties = this.buildPropertiesObject(tableData.columns);
|
|
78
79
|
this.generatedEntities[tableName] = {
|
|
79
80
|
entityClassName,
|
|
80
81
|
entityFileName: fileName,
|
|
81
82
|
tableName,
|
|
82
|
-
titleProperty
|
|
83
|
+
titleProperty,
|
|
84
|
+
properties
|
|
83
85
|
};
|
|
84
86
|
return true;
|
|
85
87
|
}
|
|
86
88
|
|
|
89
|
+
buildPropertiesObject(columns)
|
|
90
|
+
{
|
|
91
|
+
let properties = {};
|
|
92
|
+
for(let columnName of Object.keys(columns)){
|
|
93
|
+
properties[columnName] = true;
|
|
94
|
+
}
|
|
95
|
+
return properties;
|
|
96
|
+
}
|
|
97
|
+
|
|
87
98
|
detectPrimaryKeyColumn(columns)
|
|
88
99
|
{
|
|
89
100
|
for(let columnName of Object.keys(columns)){
|
|
@@ -37,10 +37,10 @@ class EntitiesTranslationsGeneration extends BaseGenerator
|
|
|
37
37
|
Logger.critical('Failed to read entities translations template file: '+this.templatePath);
|
|
38
38
|
return false;
|
|
39
39
|
}
|
|
40
|
-
let
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
let allEntities = Object.assign({}, existingEntities, generatedEntities);
|
|
41
|
+
let translationsContent = translationsTemplateContent
|
|
42
|
+
.replace(/{{labels}}/g, this.getTranslationLabels(allEntities))
|
|
43
|
+
.replace(/{{fields}}/g, this.getFieldTranslations(allEntities));
|
|
44
44
|
if(!FileHandler.writeFile(this.entitiesTranslationsPath, translationsContent)){
|
|
45
45
|
Logger.critical('Failed to write entities translations file: '+this.entitiesTranslationsPath);
|
|
46
46
|
return false;
|
|
@@ -130,6 +130,42 @@ class EntitiesTranslationsGeneration extends BaseGenerator
|
|
|
130
130
|
return labels.join(',\n ');
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
+
getFieldTranslations(allEntities)
|
|
134
|
+
{
|
|
135
|
+
let fieldsTranslations = [];
|
|
136
|
+
for(let tableName of Object.keys(allEntities)){
|
|
137
|
+
let entity = allEntities[tableName];
|
|
138
|
+
if(!sc.hasOwn(entity, 'properties')){
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
let entityFields = [];
|
|
142
|
+
for(let fieldName of Object.keys(entity.properties)){
|
|
143
|
+
let formattedName = this.formatFieldName(fieldName);
|
|
144
|
+
entityFields.push('\''+fieldName+'\': \''+formattedName+'\'');
|
|
145
|
+
}
|
|
146
|
+
if(0 === entityFields.length){
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
fieldsTranslations.push(
|
|
150
|
+
'\''+tableName+'\': {\n '+entityFields.join(',\n ')+'\n }'
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
return fieldsTranslations.join(',\n ');
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
formatFieldName(fieldName)
|
|
157
|
+
{
|
|
158
|
+
let formatted = fieldName
|
|
159
|
+
.split('_')
|
|
160
|
+
.map(word => word.charAt(0).toUpperCase()+word.slice(1))
|
|
161
|
+
.join(' ');
|
|
162
|
+
formatted = formatted.replace(/\sId(\s|$)/g, ' ID$1');
|
|
163
|
+
formatted = formatted.replace(/\sAt(\s|$)/g, ' At$1');
|
|
164
|
+
formatted = formatted.replace(/\sKey(\s|$)/g, ' Key$1');
|
|
165
|
+
formatted = formatted.replace(/^Id(\s|$)/g, 'ID$1');
|
|
166
|
+
return formatted;
|
|
167
|
+
}
|
|
168
|
+
|
|
133
169
|
}
|
|
134
170
|
|
|
135
171
|
module.exports.EntitiesTranslationsGeneration = EntitiesTranslationsGeneration;
|
package/package.json
CHANGED
|
@@ -1,70 +1,70 @@
|
|
|
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
|
+
/**
|
|
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 +1,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
|
-
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;
|
|
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;
|
|
@@ -1,84 +1,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
|
-
isRequired: true,
|
|
27
|
-
dbType: 'int'
|
|
28
|
-
},
|
|
29
|
-
reviewer_name: {
|
|
30
|
-
isRequired: true,
|
|
31
|
-
dbType: 'varchar'
|
|
32
|
-
},
|
|
33
|
-
reviewer_email: {
|
|
34
|
-
isRequired: true,
|
|
35
|
-
dbType: 'varchar'
|
|
36
|
-
},
|
|
37
|
-
rating: {
|
|
38
|
-
type: 'boolean',
|
|
39
|
-
isRequired: true,
|
|
40
|
-
dbType: 'tinyint'
|
|
41
|
-
},
|
|
42
|
-
[titleProperty]: {
|
|
43
|
-
dbType: 'varchar'
|
|
44
|
-
},
|
|
45
|
-
comment: {
|
|
46
|
-
type: 'textarea',
|
|
47
|
-
dbType: 'text'
|
|
48
|
-
},
|
|
49
|
-
is_verified: {
|
|
50
|
-
type: 'boolean',
|
|
51
|
-
dbType: 'tinyint'
|
|
52
|
-
},
|
|
53
|
-
helpful_count: {
|
|
54
|
-
type: 'number',
|
|
55
|
-
dbType: 'int'
|
|
56
|
-
},
|
|
57
|
-
created_at: {
|
|
58
|
-
type: 'datetime',
|
|
59
|
-
dbType: 'timestamp'
|
|
60
|
-
},
|
|
61
|
-
updated_at: {
|
|
62
|
-
type: 'datetime',
|
|
63
|
-
dbType: 'timestamp'
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
let propertiesKeys = Object.keys(properties);
|
|
67
|
-
let showProperties = propertiesKeys;
|
|
68
|
-
let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
|
|
69
|
-
let listProperties = [...propertiesKeys];
|
|
70
|
-
listProperties.splice(listProperties.indexOf('comment'), 1);
|
|
71
|
-
return {
|
|
72
|
-
showProperties,
|
|
73
|
-
editProperties,
|
|
74
|
-
listProperties,
|
|
75
|
-
filterProperties: listProperties,
|
|
76
|
-
properties,
|
|
77
|
-
titleProperty,
|
|
78
|
-
...extraProps
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
module.exports.TestReviewsEntity = TestReviewsEntity;
|
|
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
|
+
isRequired: true,
|
|
27
|
+
dbType: 'int'
|
|
28
|
+
},
|
|
29
|
+
reviewer_name: {
|
|
30
|
+
isRequired: true,
|
|
31
|
+
dbType: 'varchar'
|
|
32
|
+
},
|
|
33
|
+
reviewer_email: {
|
|
34
|
+
isRequired: true,
|
|
35
|
+
dbType: 'varchar'
|
|
36
|
+
},
|
|
37
|
+
rating: {
|
|
38
|
+
type: 'boolean',
|
|
39
|
+
isRequired: true,
|
|
40
|
+
dbType: 'tinyint'
|
|
41
|
+
},
|
|
42
|
+
[titleProperty]: {
|
|
43
|
+
dbType: 'varchar'
|
|
44
|
+
},
|
|
45
|
+
comment: {
|
|
46
|
+
type: 'textarea',
|
|
47
|
+
dbType: 'text'
|
|
48
|
+
},
|
|
49
|
+
is_verified: {
|
|
50
|
+
type: 'boolean',
|
|
51
|
+
dbType: 'tinyint'
|
|
52
|
+
},
|
|
53
|
+
helpful_count: {
|
|
54
|
+
type: 'number',
|
|
55
|
+
dbType: 'int'
|
|
56
|
+
},
|
|
57
|
+
created_at: {
|
|
58
|
+
type: 'datetime',
|
|
59
|
+
dbType: 'timestamp'
|
|
60
|
+
},
|
|
61
|
+
updated_at: {
|
|
62
|
+
type: 'datetime',
|
|
63
|
+
dbType: 'timestamp'
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
let propertiesKeys = Object.keys(properties);
|
|
67
|
+
let showProperties = propertiesKeys;
|
|
68
|
+
let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
|
|
69
|
+
let listProperties = [...propertiesKeys];
|
|
70
|
+
listProperties.splice(listProperties.indexOf('comment'), 1);
|
|
71
|
+
return {
|
|
72
|
+
showProperties,
|
|
73
|
+
editProperties,
|
|
74
|
+
listProperties,
|
|
75
|
+
filterProperties: listProperties,
|
|
76
|
+
properties,
|
|
77
|
+
titleProperty,
|
|
78
|
+
...extraProps
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
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;
|
|
@@ -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;
|
|
@@ -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;
|
|
@@ -1,84 +0,0 @@
|
|
|
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
|
-
isRequired: true,
|
|
27
|
-
dbType: 'int'
|
|
28
|
-
},
|
|
29
|
-
reviewer_name: {
|
|
30
|
-
isRequired: true,
|
|
31
|
-
dbType: 'varchar'
|
|
32
|
-
},
|
|
33
|
-
reviewer_email: {
|
|
34
|
-
isRequired: true,
|
|
35
|
-
dbType: 'varchar'
|
|
36
|
-
},
|
|
37
|
-
rating: {
|
|
38
|
-
type: 'boolean',
|
|
39
|
-
isRequired: true,
|
|
40
|
-
dbType: 'tinyint'
|
|
41
|
-
},
|
|
42
|
-
[titleProperty]: {
|
|
43
|
-
dbType: 'varchar'
|
|
44
|
-
},
|
|
45
|
-
comment: {
|
|
46
|
-
type: 'textarea',
|
|
47
|
-
dbType: 'text'
|
|
48
|
-
},
|
|
49
|
-
is_verified: {
|
|
50
|
-
type: 'boolean',
|
|
51
|
-
dbType: 'tinyint'
|
|
52
|
-
},
|
|
53
|
-
helpful_count: {
|
|
54
|
-
type: 'number',
|
|
55
|
-
dbType: 'int'
|
|
56
|
-
},
|
|
57
|
-
created_at: {
|
|
58
|
-
type: 'datetime',
|
|
59
|
-
dbType: 'timestamp'
|
|
60
|
-
},
|
|
61
|
-
updated_at: {
|
|
62
|
-
type: 'datetime',
|
|
63
|
-
dbType: 'timestamp'
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
let propertiesKeys = Object.keys(properties);
|
|
67
|
-
let showProperties = propertiesKeys;
|
|
68
|
-
let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
|
|
69
|
-
let listProperties = [...propertiesKeys];
|
|
70
|
-
listProperties.splice(listProperties.indexOf('comment'), 1);
|
|
71
|
-
return {
|
|
72
|
-
showProperties,
|
|
73
|
-
editProperties,
|
|
74
|
-
listProperties,
|
|
75
|
-
filterProperties: listProperties,
|
|
76
|
-
properties,
|
|
77
|
-
titleProperty,
|
|
78
|
-
...extraProps
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
module.exports.TestReviewsEntity = TestReviewsEntity;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* Reldens - Entities Config
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const { TestCategoriesEntity } = require('./entities/test-categories-entity');
|
|
8
|
-
const { TestProductsEntity } = require('./entities/test-products-entity');
|
|
9
|
-
const { TestReviewsEntity } = require('./entities/test-reviews-entity');
|
|
10
|
-
|
|
11
|
-
let entitiesConfig = {
|
|
12
|
-
testCategories: TestCategoriesEntity.propertiesConfig(),
|
|
13
|
-
testProducts: TestProductsEntity.propertiesConfig(),
|
|
14
|
-
testReviews: TestReviewsEntity.propertiesConfig()
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
module.exports.entitiesConfig = entitiesConfig;
|
|
@@ -1,84 +0,0 @@
|
|
|
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
|
-
isRequired: true,
|
|
27
|
-
dbType: 'int'
|
|
28
|
-
},
|
|
29
|
-
reviewer_name: {
|
|
30
|
-
isRequired: true,
|
|
31
|
-
dbType: 'varchar'
|
|
32
|
-
},
|
|
33
|
-
reviewer_email: {
|
|
34
|
-
isRequired: true,
|
|
35
|
-
dbType: 'varchar'
|
|
36
|
-
},
|
|
37
|
-
rating: {
|
|
38
|
-
type: 'boolean',
|
|
39
|
-
isRequired: true,
|
|
40
|
-
dbType: 'tinyint'
|
|
41
|
-
},
|
|
42
|
-
[titleProperty]: {
|
|
43
|
-
dbType: 'varchar'
|
|
44
|
-
},
|
|
45
|
-
comment: {
|
|
46
|
-
type: 'textarea',
|
|
47
|
-
dbType: 'text'
|
|
48
|
-
},
|
|
49
|
-
is_verified: {
|
|
50
|
-
type: 'boolean',
|
|
51
|
-
dbType: 'tinyint'
|
|
52
|
-
},
|
|
53
|
-
helpful_count: {
|
|
54
|
-
type: 'number',
|
|
55
|
-
dbType: 'int'
|
|
56
|
-
},
|
|
57
|
-
created_at: {
|
|
58
|
-
type: 'datetime',
|
|
59
|
-
dbType: 'timestamp'
|
|
60
|
-
},
|
|
61
|
-
updated_at: {
|
|
62
|
-
type: 'datetime',
|
|
63
|
-
dbType: 'timestamp'
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
let propertiesKeys = Object.keys(properties);
|
|
67
|
-
let showProperties = propertiesKeys;
|
|
68
|
-
let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
|
|
69
|
-
let listProperties = [...propertiesKeys];
|
|
70
|
-
listProperties.splice(listProperties.indexOf('comment'), 1);
|
|
71
|
-
return {
|
|
72
|
-
showProperties,
|
|
73
|
-
editProperties,
|
|
74
|
-
listProperties,
|
|
75
|
-
filterProperties: listProperties,
|
|
76
|
-
properties,
|
|
77
|
-
titleProperty,
|
|
78
|
-
...extraProps
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
module.exports.TestReviewsEntity = TestReviewsEntity;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* Reldens - Entities Config
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const { TestCategoriesEntity } = require('./entities/test-categories-entity');
|
|
8
|
-
const { TestProductsEntity } = require('./entities/test-products-entity');
|
|
9
|
-
const { TestReviewsEntity } = require('./entities/test-reviews-entity');
|
|
10
|
-
|
|
11
|
-
let entitiesConfig = {
|
|
12
|
-
testCategories: TestCategoriesEntity.propertiesConfig(),
|
|
13
|
-
testProducts: TestProductsEntity.propertiesConfig(),
|
|
14
|
-
testReviews: TestReviewsEntity.propertiesConfig()
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
module.exports.entitiesConfig = entitiesConfig;
|