hmmmm part 2
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
import type { Order } from "@/database/entities/order.entity";
|
||||
import { RoomType } from "@/database/enums/room-type.enum";
|
||||
import type { OrderResponse } from "@/modules/order/order.types";
|
||||
import type { PackageMapper } from "@/modules/package/package.mapper";
|
||||
import type { PartnerMapper } from "@/modules/partner/partner.mapper";
|
||||
@@ -11,44 +10,11 @@ export class OrderMapper {
|
||||
) {}
|
||||
|
||||
public mapEntityToResponse(order: Order): OrderResponse {
|
||||
const details: OrderResponse["details"] = [];
|
||||
let totalPrice = 0;
|
||||
for (const detail of order.details) {
|
||||
let price = 0;
|
||||
switch (detail.roomType) {
|
||||
case RoomType.double:
|
||||
price = order.package.doublePrice;
|
||||
break;
|
||||
case RoomType.triple:
|
||||
price = order.package.triplePrice;
|
||||
break;
|
||||
case RoomType.quad:
|
||||
price = order.package.quadPrice;
|
||||
break;
|
||||
case RoomType.infant:
|
||||
price = order.package.infantPrice ?? 0;
|
||||
break;
|
||||
}
|
||||
|
||||
details.push({
|
||||
price,
|
||||
room_type: detail.roomType,
|
||||
});
|
||||
|
||||
totalPrice += price;
|
||||
}
|
||||
|
||||
return {
|
||||
id: order.id,
|
||||
package: this.packageMapper.mapDetailEntityToResponse(order.package),
|
||||
name: order.name,
|
||||
whatsapp: order.whatsapp,
|
||||
details,
|
||||
total_price: totalPrice,
|
||||
is_verified: order.verification === null,
|
||||
partner: order.partner
|
||||
? this.partnerMapper.mapEntityToResponse(order.partner)
|
||||
: null,
|
||||
expired_at: order.expiredAt,
|
||||
purchased_at: order.purchasedAt,
|
||||
finished_at: order.finishedAt,
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
import type { RoomType } from "@/database/enums/room-type.enum";
|
||||
import type {
|
||||
orderParamsSchema,
|
||||
orderRequestSchema,
|
||||
} from "@/modules/order/order.schemas";
|
||||
import type { PackageDetailResponse } from "@/modules/package/package.types";
|
||||
import type { PartnerResponse } from "@/modules/partner/partner.types";
|
||||
import z from "zod";
|
||||
|
||||
export type OrderRequest = z.infer<typeof orderRequestSchema>;
|
||||
@@ -16,13 +14,6 @@ export type OrderResponse = {
|
||||
package: PackageDetailResponse;
|
||||
name: string;
|
||||
whatsapp: string;
|
||||
details: {
|
||||
room_type: RoomType;
|
||||
price: number;
|
||||
}[];
|
||||
total_price: number;
|
||||
is_verified: boolean;
|
||||
partner: PartnerResponse | null;
|
||||
expired_at: Date | null;
|
||||
purchased_at: Date | null;
|
||||
finished_at: Date | null;
|
||||
|
||||
Reference in New Issue
Block a user