feat: implement business pricing service and money utilities
- Added `businessPricing.service.js` to handle business customer pricing logic. - Introduced `money.js` for money parsing, formatting, and calculations. - Created `pricing.service.js` to manage variant quoting and promotion application. - Updated validation schemas in `catalogue.schemas.js` and `inventoryMerchandising.schemas.js` for new pricing and inventory features. - Implemented cron job for inventory reservation expiry in `inventoryReservationExpiry.cron.js`. - Created database migrations for catalogue and inventory structures. - Added unit tests for catalogue localization, validation, and inventory merchandising functionalities.
This commit is contained in:
@@ -71,6 +71,29 @@ db.notification = require("./notification/notification.model")(sequelize, DataTy
|
||||
db.userNotification = require("./notification/userNotification.model")(sequelize, DataTypes);
|
||||
db.NotificationDelivery = require("./notification/notificationDelivery.model")(sequelize, DataTypes);
|
||||
|
||||
// Catalogue and localized content
|
||||
db.Brand = require("./catalogue/brand.model")(sequelize, DataTypes);
|
||||
db.Category = require("./catalogue/category.model")(sequelize, DataTypes);
|
||||
db.CategoryTranslation = require("./catalogue/categoryTranslation.model")(sequelize, DataTypes);
|
||||
db.Product = require("./catalogue/product.model")(sequelize, DataTypes);
|
||||
db.ProductTranslation = require("./catalogue/productTranslation.model")(sequelize, DataTypes);
|
||||
db.ProductCategory = require("./catalogue/productCategory.model")(sequelize, DataTypes);
|
||||
db.ProductVariant = require("./catalogue/productVariant.model")(sequelize, DataTypes);
|
||||
db.ProductOption = require("./catalogue/productOption.model")(sequelize, DataTypes);
|
||||
db.ProductOptionValue = require("./catalogue/productOptionValue.model")(sequelize, DataTypes);
|
||||
db.VariantOptionValue = require("./catalogue/variantOptionValue.model")(sequelize, DataTypes);
|
||||
db.ProductAttribute = require("./catalogue/productAttribute.model")(sequelize, DataTypes);
|
||||
db.ProductMedia = require("./catalogue/productMedia.model")(sequelize, DataTypes);
|
||||
db.Collection = require("./catalogue/collection.model")(sequelize, DataTypes);
|
||||
db.CollectionTranslation = require("./catalogue/collectionTranslation.model")(sequelize, DataTypes);
|
||||
db.CollectionProduct = require("./catalogue/collectionProduct.model")(sequelize, DataTypes);
|
||||
db.SizeGuide = require("./catalogue/sizeGuide.model")(sequelize, DataTypes);
|
||||
db.ProductRelation = require("./catalogue/productRelation.model")(sequelize, DataTypes);
|
||||
db.ProductReview = require("./catalogue/productReview.model")(sequelize, DataTypes);
|
||||
db.Warehouse=require("./inventory/warehouse.model")(sequelize,DataTypes);db.InventoryBalance=require("./inventory/inventoryBalance.model")(sequelize,DataTypes);db.InventoryTransaction=require("./inventory/inventoryTransaction.model")(sequelize,DataTypes);db.InventoryReservation=require("./inventory/inventoryReservation.model")(sequelize,DataTypes);db.InventoryTransfer=require("./inventory/inventoryTransfer.model")(sequelize,DataTypes);
|
||||
db.BusinessTier=require("./pricing/businessTier.model")(sequelize,DataTypes);db.VariantBusinessPrice=require("./pricing/variantBusinessPrice.model")(sequelize,DataTypes);db.BusinessPriceTier=require("./pricing/businessPriceTier.model")(sequelize,DataTypes);
|
||||
db.Promotion=require("./merchandising/promotion.model")(sequelize,DataTypes);db.PromotionTarget=require("./merchandising/promotionTarget.model")(sequelize,DataTypes);db.Coupon=require("./merchandising/coupon.model")(sequelize,DataTypes);db.Banner=require("./merchandising/banner.model")(sequelize,DataTypes);db.BannerTranslation=require("./merchandising/bannerTranslation.model")(sequelize,DataTypes);
|
||||
|
||||
/* Associations */
|
||||
Object.keys(db).forEach(model => {
|
||||
if (db[model].associate) {
|
||||
|
||||
Reference in New Issue
Block a user