@b2y/ecommerce-common 1.0.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.
Files changed (68) hide show
  1. package/README.md +4 -0
  2. package/constants/AppConstants.js +4 -0
  3. package/constants/ReportConstants.js +15 -0
  4. package/constants/StatusMessageConstants.js +21 -0
  5. package/dbconnection/Connect.js +417 -0
  6. package/enum/AddressTypeEnum.js +7 -0
  7. package/enum/BooleanEnum.js +5 -0
  8. package/enum/EntityTypeEnum.js +10 -0
  9. package/enum/GenderEnum.js +7 -0
  10. package/enum/NotificationStatusEnum.js +6 -0
  11. package/enum/NotificationTypeEnum.js +10 -0
  12. package/enum/OrderStatusEnum.js +8 -0
  13. package/enum/PaymentMethodEnum.js +7 -0
  14. package/enum/PaymentStatusEnum.js +7 -0
  15. package/enum/PaymentTypeEnum.js +7 -0
  16. package/enum/PlatformEnum.js +5 -0
  17. package/enum/RegistrationStatusEnum.js +6 -0
  18. package/enum/SortByEnum.js +8 -0
  19. package/index.js +22 -0
  20. package/model/Address.js +114 -0
  21. package/model/AttributeType.js +51 -0
  22. package/model/AttributeValue.js +65 -0
  23. package/model/Banner.js +79 -0
  24. package/model/Brand.js +76 -0
  25. package/model/Cart.js +77 -0
  26. package/model/Category.js +73 -0
  27. package/model/CategoryAttributeType.js +63 -0
  28. package/model/City.js +49 -0
  29. package/model/Colour.js +53 -0
  30. package/model/Country.js +47 -0
  31. package/model/Customer.js +95 -0
  32. package/model/DeviceToken.js +52 -0
  33. package/model/Document.js +71 -0
  34. package/model/DynamicUIComponent.js +53 -0
  35. package/model/Feedback.js +80 -0
  36. package/model/Inventory.js +84 -0
  37. package/model/NotificationHistory.js +68 -0
  38. package/model/Order.js +95 -0
  39. package/model/OrderItem.js +99 -0
  40. package/model/OrderItemHistory.js +70 -0
  41. package/model/OrderStatus.js +49 -0
  42. package/model/Payment.js +101 -0
  43. package/model/PaymentMethod.js +37 -0
  44. package/model/PaymentStatus.js +37 -0
  45. package/model/PaymentType.js +37 -0
  46. package/model/Permission.js +55 -0
  47. package/model/Product.js +83 -0
  48. package/model/ProductGroup.js +48 -0
  49. package/model/ProductSpecification.js +66 -0
  50. package/model/ProductVariant.js +76 -0
  51. package/model/ProductVariantAttribute.js +59 -0
  52. package/model/Role.js +61 -0
  53. package/model/RolePermissionMapping.js +63 -0
  54. package/model/SpecificationType.js +42 -0
  55. package/model/State.js +56 -0
  56. package/model/Store.js +117 -0
  57. package/model/StoreUserMapping.js +44 -0
  58. package/model/Tenant.js +91 -0
  59. package/model/User.js +150 -0
  60. package/model/WishList.js +63 -0
  61. package/package.json +27 -0
  62. package/utility/AppUtil.js +58 -0
  63. package/utility/DateUtil.js +55 -0
  64. package/utility/ExcelUtil.js +125 -0
  65. package/utility/OrderTimeFilterUtil.js +86 -0
  66. package/utility/QueryUtil.js +262 -0
  67. package/utility/Razorpay.js +67 -0
  68. package/utility/VariantPriceUtil.js +55 -0
@@ -0,0 +1,99 @@
1
+ const { DataTypes } = require('sequelize');
2
+
3
+ module.exports = (sequelize) => {
4
+ return sequelize.define('OrderItem', {
5
+ OrderItemID: {
6
+ type: DataTypes.UUID,
7
+ primaryKey: true,
8
+ allowNull: false,
9
+ defaultValue: DataTypes.UUIDV4
10
+ },
11
+ TenantID: {
12
+ type: DataTypes.UUID,
13
+ allowNull: false,
14
+ references: {
15
+ model: 'Tenant',
16
+ key: 'TenantID'
17
+ },
18
+ onDelete: 'CASCADE',
19
+ onUpdate: 'CASCADE'
20
+ },
21
+ OrderID: {
22
+ type: DataTypes.UUID,
23
+ allowNull: false,
24
+ references: {
25
+ model: 'Order',
26
+ key: 'OrderID'
27
+ },
28
+ onDelete: 'CASCADE',
29
+ onUpdate: 'CASCADE'
30
+ },
31
+ ProductVariantID: {
32
+ type: DataTypes.UUID,
33
+ allowNull: false,
34
+ references: {
35
+ model: 'ProductVariant',
36
+ key: 'ProductVariantID'
37
+ },
38
+ onDelete: 'RESTRICT',
39
+ onUpdate: 'CASCADE'
40
+ },
41
+ StoreID:{
42
+ type: DataTypes.UUID,
43
+ allowNull: false,
44
+ references: {
45
+ model: 'Store',
46
+ key: 'StoreID'
47
+ },
48
+ onDelete: 'RESTRICT',
49
+ onUpdate: 'CASCADE'
50
+ },
51
+ Quantity: {
52
+ type: DataTypes.INTEGER,
53
+ allowNull: false
54
+ },
55
+ Price: {
56
+ type: DataTypes.DECIMAL,
57
+ allowNull: false
58
+ },
59
+ TotalPrice: {
60
+ type: DataTypes.DECIMAL,
61
+ allowNull: false
62
+ },
63
+ ExpectedDeliveryDate: {
64
+ type: DataTypes.DATE,
65
+ allowNull: false
66
+ },
67
+ OrderStatusID: {
68
+ type: DataTypes.INTEGER,
69
+ allowNull: false,
70
+ references: {
71
+ model: 'OrderStatus',
72
+ key: 'OrderStatusID'
73
+ },
74
+ onDelete: 'RESTRICT',
75
+ onUpdate: 'CASCADE'
76
+ },
77
+ CreatedBy: {
78
+ type: DataTypes.UUID,
79
+ allowNull: false
80
+ },
81
+ CreatedAt: {
82
+ type: DataTypes.DATE,
83
+ allowNull: false,
84
+ defaultValue: DataTypes.NOW
85
+ },
86
+ UpdatedBy: {
87
+ type: DataTypes.UUID,
88
+ allowNull: false
89
+ },
90
+ UpdatedAt: {
91
+ type: DataTypes.DATE,
92
+ allowNull: false,
93
+ defaultValue: DataTypes.NOW
94
+ }
95
+ }, {
96
+ tableName: 'OrderItem',
97
+ timestamps: false
98
+ });
99
+ };
@@ -0,0 +1,70 @@
1
+ const { DataTypes } = require('sequelize');
2
+
3
+ module.exports = (sequelize) => {
4
+ return sequelize.define('OrderItemHistory', {
5
+ OrderItemHistoryID: {
6
+ type: DataTypes.UUID,
7
+ primaryKey: true,
8
+ allowNull: false,
9
+ defaultValue: DataTypes.UUIDV4
10
+ },
11
+ TenantID: {
12
+ type: DataTypes.UUID,
13
+ allowNull: false,
14
+ references: {
15
+ model: 'Tenant',
16
+ key: 'TenantID'
17
+ },
18
+ onDelete: 'CASCADE',
19
+ onUpdate: 'CASCADE'
20
+ },
21
+ OrderItemID: {
22
+ type: DataTypes.UUID,
23
+ allowNull: false,
24
+ references: {
25
+ model: 'OrderItem',
26
+ key: 'OrderItemID'
27
+ },
28
+ onDelete: 'CASCADE',
29
+ onUpdate: 'CASCADE'
30
+ },
31
+ OrderStatusID: {
32
+ type: DataTypes.INTEGER,
33
+ allowNull: false,
34
+ references: {
35
+ model: 'OrderStatus',
36
+ key: 'OrderStatusID'
37
+ },
38
+ onDelete: 'RESTRICT',
39
+ onUpdate: 'CASCADE'
40
+ },
41
+ Remarks: {
42
+ type: DataTypes.TEXT
43
+ },
44
+ ChangedOn: {
45
+ type: DataTypes.DATE,
46
+ allowNull: false
47
+ },
48
+ CreatedBy: {
49
+ type: DataTypes.UUID,
50
+ allowNull: false
51
+ },
52
+ CreatedAt: {
53
+ type: DataTypes.DATE,
54
+ allowNull: false,
55
+ defaultValue: DataTypes.NOW
56
+ },
57
+ UpdatedBy: {
58
+ type: DataTypes.UUID,
59
+ allowNull: false
60
+ },
61
+ UpdatedAt: {
62
+ type: DataTypes.DATE,
63
+ allowNull: false,
64
+ defaultValue: DataTypes.NOW
65
+ }
66
+ }, {
67
+ tableName: 'OrderItemHistory',
68
+ timestamps: false
69
+ });
70
+ };
@@ -0,0 +1,49 @@
1
+ const { DataTypes } = require('sequelize');
2
+ module.exports = (sequelize) => {
3
+ return sequelize.define('OrderStatus', {
4
+ OrderStatusID: {
5
+ type: DataTypes.INTEGER,
6
+ primaryKey: true,
7
+ allowNull: false
8
+ },
9
+ OrderStatus: {
10
+ type: DataTypes.STRING(50),
11
+ allowNull: false
12
+ },
13
+ ColourID: {
14
+ type: DataTypes.INTEGER,
15
+ allowNull: false,
16
+ references: {
17
+ model: 'Colour',
18
+ key: 'ColourID'
19
+ },
20
+ onDelete: 'NO ACTION',
21
+ onUpdate: 'CASCADE'
22
+ },
23
+ SortOrder: {
24
+ type: DataTypes.INTEGER,
25
+ allowNull: false
26
+ },
27
+ CreatedBy: {
28
+ type: DataTypes.UUID,
29
+ allowNull: false
30
+ },
31
+ CreatedAt: {
32
+ type: DataTypes.DATE,
33
+ allowNull: false,
34
+ defaultValue: DataTypes.NOW
35
+ },
36
+ UpdatedBy: {
37
+ type: DataTypes.UUID,
38
+ allowNull: false
39
+ },
40
+ UpdatedAt: {
41
+ type: DataTypes.DATE,
42
+ allowNull: false,
43
+ defaultValue: DataTypes.NOW
44
+ }
45
+ }, {
46
+ tableName: 'OrderStatus',
47
+ timestamps: false
48
+ });
49
+ };
@@ -0,0 +1,101 @@
1
+ const { DataTypes } = require('sequelize');
2
+ module.exports = (sequelize) => {
3
+ return sequelize.define('Payment', {
4
+ PaymentID: {
5
+ type: DataTypes.UUID,
6
+ primaryKey: true,
7
+ allowNull: false,
8
+ defaultValue: DataTypes.UUIDV4
9
+ },
10
+ TenantID: {
11
+ type: DataTypes.UUID,
12
+ allowNull: false,
13
+ references: {
14
+ model: 'Tenant',
15
+ key: 'TenantID'
16
+ },
17
+ onDelete: 'CASCADE',
18
+ onUpdate: 'CASCADE'
19
+ },
20
+ OrderID: {
21
+ type: DataTypes.UUID,
22
+ allowNull: false,
23
+ references: {
24
+ model: 'Order',
25
+ key: 'OrderID'
26
+ },
27
+ onDelete: 'CASCADE',
28
+ onUpdate: 'CASCADE'
29
+ },
30
+ PaymentRefID: {
31
+ type: DataTypes.STRING(100),
32
+ allowNull: false
33
+ },
34
+ PaymentDate: {
35
+ type: DataTypes.DATE,
36
+ allowNull: false
37
+ },
38
+ PaymentAttempts: {
39
+ type: DataTypes.INTEGER,
40
+ defaultValue: 0
41
+ },
42
+ Amount: {
43
+ type: DataTypes.DECIMAL(10, 2),
44
+ allowNull: false
45
+ },
46
+ PaymentTypeID: {
47
+ type: DataTypes.INTEGER,
48
+ allowNull: false,
49
+ references: {
50
+ model: 'PaymentType',
51
+ key: 'PaymentTypeID'
52
+ },
53
+ onDelete: 'RESTRICT',
54
+ onUpdate: 'CASCADE'
55
+ },
56
+ PaymentMethodID: {
57
+ type: DataTypes.INTEGER,
58
+ allowNull: true,
59
+ references: {
60
+ model: 'PaymentMethod',
61
+ key: 'PaymentMethodID'
62
+ },
63
+ onDelete: 'RESTRICT',
64
+ onUpdate: 'CASCADE'
65
+ },
66
+ PaymentStatusID: {
67
+ type: DataTypes.INTEGER,
68
+ allowNull: false,
69
+ references: {
70
+ model: 'PaymentStatus',
71
+ key: 'PaymentStatusID'
72
+ },
73
+ onDelete: 'RESTRICT',
74
+ onUpdate: 'CASCADE'
75
+ },
76
+ MaskedCardNumber: {
77
+ type: DataTypes.STRING(20)
78
+ },
79
+ CreatedBy: {
80
+ type: DataTypes.UUID,
81
+ allowNull: false
82
+ },
83
+ CreatedAt: {
84
+ type: DataTypes.DATE,
85
+ allowNull: false,
86
+ defaultValue: DataTypes.NOW
87
+ },
88
+ UpdatedBy: {
89
+ type: DataTypes.UUID,
90
+ allowNull: false
91
+ },
92
+ UpdatedAt: {
93
+ type: DataTypes.DATE,
94
+ allowNull: false,
95
+ defaultValue: DataTypes.NOW
96
+ }
97
+ }, {
98
+ tableName: 'Payment',
99
+ timestamps: false
100
+ });
101
+ };
@@ -0,0 +1,37 @@
1
+ const { DataTypes } = require('sequelize');
2
+
3
+ module.exports = (sequelize) => {
4
+ return sequelize.define('PaymentMethod', {
5
+ PaymentMethodID: {
6
+ type: DataTypes.INTEGER,
7
+ primaryKey: true,
8
+ allowNull: false
9
+ },
10
+ PaymentMethodName: {
11
+ type: DataTypes.STRING(100),
12
+ allowNull: false,
13
+ unique: true
14
+ },
15
+ CreatedBy: {
16
+ type: DataTypes.UUID,
17
+ allowNull: false
18
+ },
19
+ CreatedAt: {
20
+ type: DataTypes.DATE,
21
+ allowNull: false,
22
+ defaultValue: DataTypes.NOW
23
+ },
24
+ UpdatedBy: {
25
+ type: DataTypes.UUID,
26
+ allowNull: false
27
+ },
28
+ UpdatedAt: {
29
+ type: DataTypes.DATE,
30
+ allowNull: false,
31
+ defaultValue: DataTypes.NOW
32
+ }
33
+ }, {
34
+ tableName: 'PaymentMethod',
35
+ timestamps: false
36
+ });
37
+ };
@@ -0,0 +1,37 @@
1
+ const { DataTypes } = require('sequelize');
2
+
3
+ module.exports = (sequelize) => {
4
+ return sequelize.define('PaymentStatus', {
5
+ PaymentStatusID: {
6
+ type: DataTypes.INTEGER,
7
+ primaryKey: true,
8
+ allowNull: false
9
+ },
10
+ PaymentStatusName: {
11
+ type: DataTypes.STRING(100),
12
+ allowNull: false,
13
+ unique: true
14
+ },
15
+ CreatedBy: {
16
+ type: DataTypes.UUID,
17
+ allowNull: false
18
+ },
19
+ CreatedAt: {
20
+ type: DataTypes.DATE,
21
+ allowNull: false,
22
+ defaultValue: DataTypes.NOW
23
+ },
24
+ UpdatedBy: {
25
+ type: DataTypes.UUID,
26
+ allowNull: false
27
+ },
28
+ UpdatedAt: {
29
+ type: DataTypes.DATE,
30
+ allowNull: false,
31
+ defaultValue: DataTypes.NOW
32
+ }
33
+ }, {
34
+ tableName: 'PaymentStatus',
35
+ timestamps: false
36
+ });
37
+ };
@@ -0,0 +1,37 @@
1
+ const { DataTypes } = require('sequelize');
2
+
3
+ module.exports = (sequelize) => {
4
+ return sequelize.define('PaymentType', {
5
+ PaymentTypeID: {
6
+ type: DataTypes.INTEGER,
7
+ primaryKey: true,
8
+ allowNull: false
9
+ },
10
+ PaymentTypeName: {
11
+ type: DataTypes.STRING(100),
12
+ allowNull: false,
13
+ unique: true
14
+ },
15
+ CreatedBy: {
16
+ type: DataTypes.UUID,
17
+ allowNull: false
18
+ },
19
+ CreatedAt: {
20
+ type: DataTypes.DATE,
21
+ allowNull: false,
22
+ defaultValue: DataTypes.NOW
23
+ },
24
+ UpdatedBy: {
25
+ type: DataTypes.UUID,
26
+ allowNull: false
27
+ },
28
+ UpdatedAt: {
29
+ type: DataTypes.DATE,
30
+ allowNull: false,
31
+ defaultValue: DataTypes.NOW
32
+ }
33
+ }, {
34
+ tableName: 'PaymentType',
35
+ timestamps: false
36
+ });
37
+ };
@@ -0,0 +1,55 @@
1
+ const { DataTypes } = require('sequelize');
2
+
3
+ module.exports = (sequelize) => {
4
+ return sequelize.define('Permission', {
5
+ PermissionID: {
6
+ type: DataTypes.UUID,
7
+ primaryKey: true,
8
+ allowNull: false,
9
+ defaultValue: DataTypes.UUIDV4
10
+ },
11
+ TenantID: {
12
+ type: DataTypes.UUID,
13
+ allowNull: false,
14
+ references: {
15
+ model: 'Tenant',
16
+ key: 'TenantID'
17
+ },
18
+ onDelete: 'CASCADE',
19
+ onUpdate: 'CASCADE'
20
+ },
21
+ Module: {
22
+ type: DataTypes.STRING(100),
23
+ allowNull: false
24
+ },
25
+ Name: {
26
+ type: DataTypes.STRING(255),
27
+ allowNull: false
28
+ },
29
+ IsChecked: {
30
+ type: DataTypes.BOOLEAN,
31
+ defaultValue: false
32
+ },
33
+ CreatedBy: {
34
+ type: DataTypes.UUID,
35
+ allowNull: false
36
+ },
37
+ CreatedAt: {
38
+ type: DataTypes.DATE,
39
+ allowNull: false,
40
+ defaultValue: DataTypes.NOW
41
+ },
42
+ UpdatedBy: {
43
+ type: DataTypes.UUID,
44
+ allowNull: false
45
+ },
46
+ UpdatedAt: {
47
+ type: DataTypes.DATE,
48
+ allowNull: false,
49
+ defaultValue: DataTypes.NOW
50
+ }
51
+ }, {
52
+ tableName: 'Permission',
53
+ timestamps: false
54
+ });
55
+ };
@@ -0,0 +1,83 @@
1
+ const { DataTypes } = require('sequelize');
2
+
3
+ module.exports = (sequelize) => {
4
+ return sequelize.define('Product', {
5
+ ProductID: {
6
+ type: DataTypes.UUID,
7
+ primaryKey: true,
8
+ allowNull: false,
9
+ defaultValue: DataTypes.UUIDV4
10
+ },
11
+ TenantID: {
12
+ type: DataTypes.UUID,
13
+ allowNull: false,
14
+ references: {
15
+ model: 'Tenant',
16
+ key: 'TenantID'
17
+ },
18
+ onDelete: 'CASCADE',
19
+ onUpdate: 'CASCADE'
20
+ },
21
+ ProductName: {
22
+ type: DataTypes.STRING(255),
23
+ allowNull: false,
24
+ unique: true
25
+ },
26
+ ProductDescription: {
27
+ type: DataTypes.TEXT
28
+ },
29
+ BrandID: {
30
+ type: DataTypes.UUID,
31
+ references: {
32
+ model: 'Brand',
33
+ key: 'BrandID'
34
+ },
35
+ onDelete: 'SET NULL',
36
+ onUpdate: 'CASCADE'
37
+ },
38
+ CategoryID: {
39
+ type: DataTypes.UUID,
40
+ references: {
41
+ model: 'Category',
42
+ key: 'CategoryID'
43
+ },
44
+ onDelete: 'SET NULL',
45
+ onUpdate: 'CASCADE'
46
+ },
47
+ IsActive: {
48
+ type: DataTypes.BOOLEAN,
49
+ defaultValue: true
50
+ },
51
+ ProductGroupID: {
52
+ type: DataTypes.UUID,
53
+ allowNull: true,
54
+ references: {
55
+ model: 'ProductGroup',
56
+ key: 'ProductGroupID'
57
+ },
58
+ onDelete: 'SET NULL',
59
+ onUpdate: 'CASCADE'
60
+ },
61
+ CreatedBy: {
62
+ type: DataTypes.UUID,
63
+ allowNull: false
64
+ },
65
+ CreatedAt: {
66
+ type: DataTypes.DATE,
67
+ allowNull: false,
68
+ defaultValue: DataTypes.NOW
69
+ },
70
+ UpdatedBy: {
71
+ type: DataTypes.UUID,
72
+ allowNull: false
73
+ },
74
+ UpdatedAt: {
75
+ type: DataTypes.DATE,
76
+ allowNull: false,
77
+ defaultValue: DataTypes.NOW
78
+ }
79
+ }, {
80
+ tableName: 'Product',
81
+ timestamps: false
82
+ });
83
+ };
@@ -0,0 +1,48 @@
1
+ const { DataTypes } = require('sequelize');
2
+
3
+ module.exports = (sequelize) => {
4
+ return sequelize.define('ProductGroup', {
5
+ ProductGroupID: {
6
+ type: DataTypes.UUID,
7
+ defaultValue: DataTypes.UUIDV4,
8
+ primaryKey: true
9
+ },
10
+ ProductGroupName: {
11
+ type: DataTypes.STRING(255),
12
+ allowNull: false
13
+ },
14
+ ProductGroupCode: {
15
+ type: DataTypes.STRING(50),
16
+ allowNull: false
17
+ },
18
+ TenantID: {
19
+ type: DataTypes.UUID,
20
+ allowNull: false,
21
+ references: {
22
+ model: 'Tenant',
23
+ key: 'TenantID'
24
+ }
25
+ },
26
+ IsActive: {
27
+ type: DataTypes.BOOLEAN,
28
+ defaultValue: true
29
+ },
30
+ CreatedAt: {
31
+ type: DataTypes.DATE,
32
+ defaultValue: DataTypes.NOW
33
+ },
34
+ UpdatedAt: {
35
+ type: DataTypes.DATE,
36
+ defaultValue: DataTypes.NOW
37
+ },
38
+ CreatedBy: {
39
+ type: DataTypes.INTEGER,
40
+ },
41
+ UpdatedBy: {
42
+ type: DataTypes.INTEGER,
43
+ }
44
+ }, {
45
+ tableName: 'ProductGroup',
46
+ timestamps: false
47
+ });
48
+ };
@@ -0,0 +1,66 @@
1
+ const { DataTypes } = require('sequelize');
2
+
3
+ module.exports = (sequelize) => {
4
+ return sequelize.define('ProductSpecification', {
5
+ ProductID: {
6
+ type: DataTypes.UUID,
7
+ primaryKey: true,
8
+ allowNull: false,
9
+ references: {
10
+ model: 'Product',
11
+ key: 'ProductID'
12
+ },
13
+ onDelete: 'CASCADE',
14
+ onUpdate: 'CASCADE'
15
+ },
16
+ SpecificationTypeID: {
17
+ type: DataTypes.UUID,
18
+ primaryKey: true,
19
+ allowNull: false,
20
+ references: {
21
+ model: 'SpecificationType',
22
+ key: 'SpecificationTypeID'
23
+ },
24
+ onDelete: 'CASCADE',
25
+ onUpdate: 'CASCADE'
26
+ },
27
+ TenantID: {
28
+ type: DataTypes.UUID,
29
+ allowNull: false,
30
+ references: {
31
+ model: 'Tenant',
32
+ key: 'TenantID'
33
+ },
34
+ onDelete: 'CASCADE',
35
+ onUpdate: 'CASCADE'
36
+ },
37
+ Value: {
38
+ type: DataTypes.STRING(255),
39
+ allowNull: false
40
+ },
41
+ Unit: {
42
+ type: DataTypes.STRING(50)
43
+ },
44
+ CreatedBy: {
45
+ type: DataTypes.UUID,
46
+ allowNull: false
47
+ },
48
+ CreatedAt: {
49
+ type: DataTypes.DATE,
50
+ allowNull: false,
51
+ defaultValue: DataTypes.NOW
52
+ },
53
+ UpdatedBy: {
54
+ type: DataTypes.UUID,
55
+ allowNull: false
56
+ },
57
+ UpdatedAt: {
58
+ type: DataTypes.DATE,
59
+ allowNull: false,
60
+ defaultValue: DataTypes.NOW
61
+ }
62
+ }, {
63
+ tableName: 'ProductSpecification',
64
+ timestamps: false
65
+ });
66
+ };