diff --git a/src/modules/order/DTO/userOrder.dto.ts b/src/modules/order/DTO/userOrder.dto.ts index 52ee893..005fe92 100644 --- a/src/modules/order/DTO/userOrder.dto.ts +++ b/src/modules/order/DTO/userOrder.dto.ts @@ -4,6 +4,7 @@ import { OrderItemDTO } from "./order.dto"; import { OrdersStatus } from "../../../common/enums/order.enum"; import { TimeService } from "../../../utils/time.service"; import { PaymentDTO } from "../../payment/DTO/payment.dto"; +import { ThemeValueDTO } from "../../product/DTO/product.dto"; import { UserDTO } from "../../user/DTO/user.dto"; import { IOrder } from "../models/Abstraction/IOrder"; @@ -54,6 +55,10 @@ export class UserOrderDTO { @Transform(({ value }) => TimeService.convertGregorianToPersian(new Date(value), true)) createdAt: string; + @Expose() + @Type(() => ThemeValueDTO) + themeValue: ThemeValueDTO; + public static transformOrder(data: IOrder): UserOrderDTO { const OrderDTO = plainToClass(UserOrderDTO, data, { excludeExtraneousValues: true, diff --git a/src/modules/order/order.repository.ts b/src/modules/order/order.repository.ts index d8510bd..4a528ef 100644 --- a/src/modules/order/order.repository.ts +++ b/src/modules/order/order.repository.ts @@ -120,7 +120,7 @@ class OrderRepository extends BaseRepository { default: break; } - return this.model.aggregate([ + const orders = await this.model.aggregate([ { $match: matchQuery, }, @@ -207,6 +207,20 @@ class OrderRepository extends BaseRepository { { $unwind: "$shipmentItemVariant", }, + { + $lookup: { + from: "themevalues", + localField: "shipmentItemVariant.themeValue", + foreignField: "_id", + as: "shipmentItemVariant.themeValue", + }, + }, + { + $unwind: { + path: "$shipmentItemVariant.themeValue", + preserveNullAndEmptyArrays: true, + }, + }, { $group: { _id: "$orderItems._id", @@ -274,6 +288,7 @@ class OrderRepository extends BaseRepository { }, }, ]); + return orders; } async getUserOrderDetail(orderId: number, userId: string) {