@@ -83,6 +83,44 @@ class SaleFormatDTO {
|
||||
|
||||
//#################################
|
||||
|
||||
class VariantProductCategoryDTO {
|
||||
@Expose()
|
||||
_id: string;
|
||||
|
||||
@Expose()
|
||||
title_fa: string;
|
||||
|
||||
@Expose()
|
||||
theme: string;
|
||||
}
|
||||
|
||||
class VariantProductDTO {
|
||||
@Expose()
|
||||
_id: number;
|
||||
|
||||
@Expose()
|
||||
title_fa: string;
|
||||
|
||||
@Expose()
|
||||
title_en: string;
|
||||
|
||||
@Expose()
|
||||
status: string;
|
||||
|
||||
@Expose()
|
||||
model: string;
|
||||
|
||||
@Expose()
|
||||
@Type(() => ImagesUrlDTO)
|
||||
images: ImagesUrlDTO;
|
||||
|
||||
@Expose()
|
||||
@Type(() => VariantProductCategoryDTO)
|
||||
category: VariantProductCategoryDTO;
|
||||
}
|
||||
|
||||
//#################################
|
||||
|
||||
export class ThemeValueDTO {
|
||||
@Expose()
|
||||
_id: string;
|
||||
@@ -293,6 +331,10 @@ export class ProductVariantDTO {
|
||||
@Type(() => ThemeValueDTO)
|
||||
themeValue?: ThemeValueDTO;
|
||||
|
||||
@Expose()
|
||||
@Type(() => VariantProductDTO)
|
||||
product?: VariantProductDTO;
|
||||
|
||||
public static transformProduct(data: IProductVariant): ProductVariantDTO {
|
||||
const productVariantDTO = plainToInstance(ProductVariantDTO, data, {
|
||||
excludeExtraneousValues: true,
|
||||
|
||||
@@ -110,6 +110,24 @@ export class ProductVariantRepository extends BaseRepository<IProductVariant> {
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
$addFields: {
|
||||
product: {
|
||||
_id: "$product._id",
|
||||
title_fa: "$product.title_fa",
|
||||
title_en: "$product.title_en",
|
||||
status: "$product.status",
|
||||
model: "$product.model",
|
||||
images: "$product.imagesUrl",
|
||||
category: {
|
||||
_id: "$category._id",
|
||||
title_fa: "$category.title_fa",
|
||||
theme: "$category.theme",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
$addFields: {
|
||||
product_id: "$product._id",
|
||||
@@ -120,7 +138,7 @@ export class ProductVariantRepository extends BaseRepository<IProductVariant> {
|
||||
model: "$product.model",
|
||||
category_theme: "$category.theme",
|
||||
category_title_fa: "$category.title_fa",
|
||||
coverImage: "$product.imagesUrl.cover",
|
||||
coverImage: "$product.images.cover",
|
||||
is_variant_active: {
|
||||
$cond: {
|
||||
if: { $eq: ["$market_status", ProductMarketStatus.Marketable] },
|
||||
@@ -147,7 +165,6 @@ export class ProductVariantRepository extends BaseRepository<IProductVariant> {
|
||||
{
|
||||
$project: {
|
||||
category: 0,
|
||||
product: 0,
|
||||
shop: 0,
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user