product verity

This commit is contained in:
morteza-mortezai
2025-11-29 08:52:05 +03:30
parent e54fc58b37
commit 37ecf9f449
35 changed files with 741 additions and 529 deletions
+6 -16
View File
@@ -2,9 +2,7 @@ import { EventEmitter } from "events";
import { HydratedDocument, Types } from "mongoose";
import { ColorModel } from "../modules/category/models/color.model";
import { MeterageModel } from "../modules/category/models/meterage.model";
import { SizeModel } from "../modules/category/models/size.model";
import { ThemeValueModel } from "../modules/category/models/themeValue.model";
import { IPriceHistory } from "../modules/product/models/Abstraction/IPriceHistory";
import { PriceHistoryModel } from "../modules/product/models/priceHistory.model";
import { ProductObserveModel } from "../modules/product/models/productObserve.model";
@@ -24,9 +22,7 @@ type PriceDetails = {
retail_price: number;
variantId: string;
isSpecial?: boolean;
colorId?: number;
sizeId?: number;
meterageId?: number;
themeValueId?: string;
};
type historyDetail = { shop: string; selling_price: number; retail_price: number };
@@ -66,7 +62,7 @@ class PriceChangeEventService extends EventEmitter {
try {
const title = await this.findVariantTitle(priceDetails);
const now = TimeService.getCurrentPersianDate();
const { colorId, sizeId, meterageId, product, ...history } = priceDetails;
const { themeValueId, product, ...history } = priceDetails;
const existingHistory = await PriceHistoryModel.findOne({ title, product });
@@ -137,15 +133,9 @@ class PriceChangeEventService extends EventEmitter {
}
//**** */
private async findVariantTitle(priceDetails: PriceDetails): Promise<string> {
if (priceDetails.colorId) {
const color = await ColorModel.findById(priceDetails.colorId).lean();
return color?.name || "Unknown color";
} else if (priceDetails.sizeId) {
const size = await SizeModel.findById(priceDetails.sizeId).lean();
return size?.value || "Unknown size";
} else if (priceDetails.meterageId) {
const meterage = await MeterageModel.findById(priceDetails.meterageId).lean();
return meterage?.value || "Unknown meterage";
if (priceDetails.themeValueId) {
const themeValue = await ThemeValueModel.findById(priceDetails.themeValueId).lean();
return themeValue?.name || "Unknown variant";
}
return "";
}