@b2y/ecommerce-common 1.4.1 → 1.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.
Files changed (99) hide show
  1. package/.idea/ecommerce-common.iml +11 -11
  2. package/.idea/modules.xml +7 -7
  3. package/.idea/vcs.xml +5 -5
  4. package/README.md +4 -4
  5. package/constants/AppConstants.js +16 -16
  6. package/constants/AuditConstants.js +16 -0
  7. package/constants/ReportConstants.js +14 -14
  8. package/constants/StatusMessageConstants.js +61 -61
  9. package/controller/LocationController.js +144 -144
  10. package/controller/SubscriptionAbstractController.js +91 -91
  11. package/controller/TenantAbstractController.js +152 -152
  12. package/controller/TenantSettingsAbstractController.js +259 -259
  13. package/dbconnection/Connect.js +498 -498
  14. package/enum/AccessModeEnum.js +8 -8
  15. package/enum/ActionByTypeEnum.js +4 -4
  16. package/enum/AddressTypeEnum.js +6 -6
  17. package/enum/BillingCycleEnum.js +5 -5
  18. package/enum/BooleanEnum.js +4 -4
  19. package/enum/BulkImportStatusEnum.js +6 -6
  20. package/enum/DimensionUnitEnum.js +5 -5
  21. package/enum/EntityTypeEnum.js +12 -12
  22. package/enum/FeatureTypeEnum.js +6 -6
  23. package/enum/GenderEnum.js +7 -7
  24. package/enum/NotificationStatusEnum.js +5 -5
  25. package/enum/NotificationTypeEnum.js +9 -9
  26. package/enum/OrderActionStatusEnum.js +7 -7
  27. package/enum/OrderStatusEnum.js +8 -8
  28. package/enum/PackageBoxTypeEnum.js +6 -6
  29. package/enum/PaymentMethodEnum.js +6 -6
  30. package/enum/PaymentStatusEnum.js +6 -6
  31. package/enum/PaymentTypeEnum.js +6 -6
  32. package/enum/PlatformEnum.js +4 -4
  33. package/enum/ReasonTypeEnum.js +6 -6
  34. package/enum/RegistrationStatusEnum.js +5 -5
  35. package/enum/SortByEnum.js +7 -7
  36. package/enum/SubscriptionStatusEnum.js +7 -7
  37. package/enum/WeightUnitEnum.js +6 -6
  38. package/index.js +29 -28
  39. package/model/Address.js +95 -95
  40. package/model/AttributeType.js +50 -50
  41. package/model/AttributeValue.js +64 -64
  42. package/model/Banner.js +78 -78
  43. package/model/Brand.js +76 -76
  44. package/model/Cart.js +76 -76
  45. package/model/Category.js +72 -72
  46. package/model/CategoryAttributeType.js +62 -62
  47. package/model/Colour.js +52 -52
  48. package/model/Customer.js +98 -94
  49. package/model/DeviceToken.js +51 -51
  50. package/model/Document.js +73 -73
  51. package/model/DynamicUIComponent.js +52 -52
  52. package/model/Feedback.js +79 -79
  53. package/model/Inventory.js +87 -87
  54. package/model/NotificationHistory.js +67 -67
  55. package/model/Order.js +84 -84
  56. package/model/OrderActionReason.js +99 -99
  57. package/model/OrderItem.js +98 -98
  58. package/model/OrderItemHistory.js +69 -69
  59. package/model/OrderStatus.js +48 -48
  60. package/model/PackagingBox.js +78 -78
  61. package/model/Payment.js +101 -101
  62. package/model/PaymentMethod.js +36 -36
  63. package/model/PaymentStatus.js +36 -36
  64. package/model/PaymentType.js +36 -36
  65. package/model/Permission.js +45 -55
  66. package/model/Product.js +97 -97
  67. package/model/ProductGroup.js +48 -48
  68. package/model/ProductImport.js +55 -55
  69. package/model/ProductImportFailureAudits.js +57 -57
  70. package/model/ProductSpecification.js +65 -65
  71. package/model/ProductVariant.js +111 -111
  72. package/model/ProductVariantAttribute.js +58 -58
  73. package/model/ReasonContextMapping.js +70 -70
  74. package/model/ReasonMaster.js +74 -74
  75. package/model/Role.js +61 -61
  76. package/model/RolePermissionMapping.js +63 -63
  77. package/model/SpecificationType.js +41 -41
  78. package/model/Store.js +99 -99
  79. package/model/StoreUserMapping.js +44 -44
  80. package/model/SubscriptionFeature.js +53 -53
  81. package/model/SubscriptionPlan.js +70 -70
  82. package/model/SubscriptionPlanFeature.js +48 -48
  83. package/model/Tenant.js +91 -91
  84. package/model/TenantSettings.js +47 -47
  85. package/model/TenantSubscription.js +73 -73
  86. package/model/User.js +132 -132
  87. package/model/WishList.js +62 -62
  88. package/package.json +30 -30
  89. package/scripts/QueryBuilder.js +162 -162
  90. package/utility/AppUtil.js +69 -69
  91. package/utility/DateUtil.js +55 -55
  92. package/utility/ExcelUtil.js +125 -125
  93. package/utility/LocationUtility.js +130 -130
  94. package/utility/OrderTimeFilterUtil.js +88 -88
  95. package/utility/PdfUtil.js +67 -67
  96. package/utility/QueryUtil.js +261 -261
  97. package/utility/Razorpay.js +65 -65
  98. package/utility/ResolveAccessMode.js +61 -61
  99. package/utility/VariantPriceUtil.js +54 -54
@@ -1,88 +1,88 @@
1
- const AppConstants = require('../constants/AppConstants');
2
- class OrderTimeFilterUtil {
3
- static getDateRange(filter) {
4
- if (!filter) return null;
5
-
6
- const today = new Date();
7
- let startDate, endDate;
8
-
9
- switch (filter.toLowerCase()) {
10
- case AppConstants.LAST_30DAYS.toLowerCase():
11
- startDate = new Date(today);
12
- startDate.setDate(today.getDate() - 30);
13
- startDate.setHours(0, 0, 0, 0);
14
- endDate = new Date(today);
15
- endDate.setHours(23, 59, 59, 999);
16
- break;
17
-
18
- case AppConstants.LAST_6MONTHS.toLowerCase():
19
- startDate = new Date(today);
20
- startDate.setMonth(today.getMonth() - 6);
21
- startDate.setHours(0, 0, 0, 0);
22
- endDate = new Date(today);
23
- endDate.setHours(23, 59, 59, 999);
24
- break;
25
-
26
- case AppConstants.OLDER.toLowerCase():
27
- startDate = new Date(1970, 0, 1);
28
- endDate = new Date(today);
29
- break;
30
-
31
- default:
32
- const year = parseInt(filter);
33
- if (!isNaN(year)) {
34
- return this.getYearRange(year);
35
- }
36
- return null;
37
- }
38
-
39
- return { startDate, endDate };
40
- }
41
-
42
- static getYearRange(year) {
43
- const today = new Date();
44
- const startDate = new Date(year, 0, 1);
45
-
46
- if (year === today.getFullYear()) {
47
- const endDate = new Date(today);
48
- endDate.setHours(23, 59, 59, 999);
49
- return { startDate, endDate };
50
- }
51
-
52
- return {
53
- startDate,
54
- endDate: new Date(year, 11, 31, 23, 59, 59, 999)
55
- };
56
- }
57
-
58
- static isValidFilter(filter) {
59
- if (!filter) return false;
60
-
61
- const validFilters = [
62
- AppConstants.LAST_30DAYS.toLowerCase(),
63
- AppConstants.LAST_6MONTHS.toLowerCase(),
64
- AppConstants.OLDER.toLowerCase()
65
- ];
66
-
67
- if (validFilters.includes(filter.toLowerCase())) {
68
- return true;
69
- }
70
-
71
- const year = parseInt(filter);
72
- const currentYear = new Date().getFullYear();
73
- return !isNaN(year) && year <= currentYear && year;
74
- }
75
-
76
- static buildWhereCondition(filter, Sequelize) {
77
- const dateRange = this.getDateRange(filter);
78
- if (!dateRange) return null;
79
-
80
- return {
81
- [Sequelize.Op.gte]: dateRange.startDate,
82
- [Sequelize.Op.lte]: dateRange.endDate
83
- };
84
- }
85
-
86
- }
87
- module.exports = OrderTimeFilterUtil;
88
-
1
+ const AppConstants = require('../constants/AppConstants');
2
+ class OrderTimeFilterUtil {
3
+ static getDateRange(filter) {
4
+ if (!filter) return null;
5
+
6
+ const today = new Date();
7
+ let startDate, endDate;
8
+
9
+ switch (filter.toLowerCase()) {
10
+ case AppConstants.LAST_30DAYS.toLowerCase():
11
+ startDate = new Date(today);
12
+ startDate.setDate(today.getDate() - 30);
13
+ startDate.setHours(0, 0, 0, 0);
14
+ endDate = new Date(today);
15
+ endDate.setHours(23, 59, 59, 999);
16
+ break;
17
+
18
+ case AppConstants.LAST_6MONTHS.toLowerCase():
19
+ startDate = new Date(today);
20
+ startDate.setMonth(today.getMonth() - 6);
21
+ startDate.setHours(0, 0, 0, 0);
22
+ endDate = new Date(today);
23
+ endDate.setHours(23, 59, 59, 999);
24
+ break;
25
+
26
+ case AppConstants.OLDER.toLowerCase():
27
+ startDate = new Date(1970, 0, 1);
28
+ endDate = new Date(today);
29
+ break;
30
+
31
+ default:
32
+ const year = parseInt(filter);
33
+ if (!isNaN(year)) {
34
+ return this.getYearRange(year);
35
+ }
36
+ return null;
37
+ }
38
+
39
+ return { startDate, endDate };
40
+ }
41
+
42
+ static getYearRange(year) {
43
+ const today = new Date();
44
+ const startDate = new Date(year, 0, 1);
45
+
46
+ if (year === today.getFullYear()) {
47
+ const endDate = new Date(today);
48
+ endDate.setHours(23, 59, 59, 999);
49
+ return { startDate, endDate };
50
+ }
51
+
52
+ return {
53
+ startDate,
54
+ endDate: new Date(year, 11, 31, 23, 59, 59, 999)
55
+ };
56
+ }
57
+
58
+ static isValidFilter(filter) {
59
+ if (!filter) return false;
60
+
61
+ const validFilters = [
62
+ AppConstants.LAST_30DAYS.toLowerCase(),
63
+ AppConstants.LAST_6MONTHS.toLowerCase(),
64
+ AppConstants.OLDER.toLowerCase()
65
+ ];
66
+
67
+ if (validFilters.includes(filter.toLowerCase())) {
68
+ return true;
69
+ }
70
+
71
+ const year = parseInt(filter);
72
+ const currentYear = new Date().getFullYear();
73
+ return !isNaN(year) && year <= currentYear && year;
74
+ }
75
+
76
+ static buildWhereCondition(filter, Sequelize) {
77
+ const dateRange = this.getDateRange(filter);
78
+ if (!dateRange) return null;
79
+
80
+ return {
81
+ [Sequelize.Op.gte]: dateRange.startDate,
82
+ [Sequelize.Op.lte]: dateRange.endDate
83
+ };
84
+ }
85
+
86
+ }
87
+ module.exports = OrderTimeFilterUtil;
88
+
@@ -1,68 +1,68 @@
1
- // utils/PdfUtil.js
2
- const puppeteer = require('puppeteer');
3
-
4
- class PdfUtil {
5
- constructor(options = {}) {
6
- this.defaultOptions = {
7
- format: 'A4',
8
- printBackground: true,
9
- margin: {
10
- top: '20px',
11
- right: '20px',
12
- bottom: '20px',
13
- left: '20px'
14
- },
15
- ...options
16
- };
17
- }
18
-
19
- /**
20
- * Generate PDF from HTML content
21
- * @param {string} htmlContent - Complete HTML content to convert to PDF
22
- * @param {object} pdfOptions - Optional PDF generation options (overrides defaults)
23
- * @returns {Buffer} PDF buffer
24
- */
25
- async generatePDFFromHTML(htmlContent, pdfOptions = {}) {
26
- let browser;
27
- try {
28
- // Launch puppeteer
29
- const launchOptions = {
30
- headless: true,
31
- args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage']
32
- };
33
- // Use system browser when configured (e.g. Docker); otherwise fall back to Puppeteer's bundled Chrome
34
- if (process.env.PUPPETEER_EXECUTABLE_PATH) {
35
- launchOptions.executablePath = process.env.PUPPETEER_EXECUTABLE_PATH || '/usr/bin/chromium';
36
- }
37
- browser = await puppeteer.launch(launchOptions);
38
- const page = await browser.newPage();
39
-
40
- // Set content and wait for any resources to load
41
- await page.setContent(htmlContent, { waitUntil: 'networkidle0' });
42
-
43
- // Merge default options with provided options
44
- const finalOptions = { ...this.defaultOptions, ...pdfOptions };
45
-
46
- // Generate PDF
47
- const pdfBuffer = await page.pdf(finalOptions);
48
-
49
- return pdfBuffer;
50
-
51
- } catch (error) {
52
- throw error;
53
- } finally {
54
- if (browser) {
55
- await browser.close();
56
- }
57
- }
58
- }
59
-
60
- /**
61
- * Generate PDF with custom page settings
62
- */
63
- async generatePDFWithCustomSettings(htmlContent, settings) {
64
- return this.generatePDFFromHTML(htmlContent, settings);
65
- }
66
- }
67
-
1
+ // utils/PdfUtil.js
2
+ const puppeteer = require('puppeteer');
3
+
4
+ class PdfUtil {
5
+ constructor(options = {}) {
6
+ this.defaultOptions = {
7
+ format: 'A4',
8
+ printBackground: true,
9
+ margin: {
10
+ top: '20px',
11
+ right: '20px',
12
+ bottom: '20px',
13
+ left: '20px'
14
+ },
15
+ ...options
16
+ };
17
+ }
18
+
19
+ /**
20
+ * Generate PDF from HTML content
21
+ * @param {string} htmlContent - Complete HTML content to convert to PDF
22
+ * @param {object} pdfOptions - Optional PDF generation options (overrides defaults)
23
+ * @returns {Buffer} PDF buffer
24
+ */
25
+ async generatePDFFromHTML(htmlContent, pdfOptions = {}) {
26
+ let browser;
27
+ try {
28
+ // Launch puppeteer
29
+ const launchOptions = {
30
+ headless: true,
31
+ args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage']
32
+ };
33
+ // Use system browser when configured (e.g. Docker); otherwise fall back to Puppeteer's bundled Chrome
34
+ if (process.env.PUPPETEER_EXECUTABLE_PATH) {
35
+ launchOptions.executablePath = process.env.PUPPETEER_EXECUTABLE_PATH || '/usr/bin/chromium';
36
+ }
37
+ browser = await puppeteer.launch(launchOptions);
38
+ const page = await browser.newPage();
39
+
40
+ // Set content and wait for any resources to load
41
+ await page.setContent(htmlContent, { waitUntil: 'networkidle0' });
42
+
43
+ // Merge default options with provided options
44
+ const finalOptions = { ...this.defaultOptions, ...pdfOptions };
45
+
46
+ // Generate PDF
47
+ const pdfBuffer = await page.pdf(finalOptions);
48
+
49
+ return pdfBuffer;
50
+
51
+ } catch (error) {
52
+ throw error;
53
+ } finally {
54
+ if (browser) {
55
+ await browser.close();
56
+ }
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Generate PDF with custom page settings
62
+ */
63
+ async generatePDFWithCustomSettings(htmlContent, settings) {
64
+ return this.generatePDFFromHTML(htmlContent, settings);
65
+ }
66
+ }
67
+
68
68
  module.exports = PdfUtil;