hmmmm part 2
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
import type { Order } from "@/database/entities/order.entity";
|
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 { OrderResponse } from "@/modules/order/order.types";
|
||||||
import type { PackageMapper } from "@/modules/package/package.mapper";
|
import type { PackageMapper } from "@/modules/package/package.mapper";
|
||||||
import type { PartnerMapper } from "@/modules/partner/partner.mapper";
|
import type { PartnerMapper } from "@/modules/partner/partner.mapper";
|
||||||
@@ -11,44 +10,11 @@ export class OrderMapper {
|
|||||||
) {}
|
) {}
|
||||||
|
|
||||||
public mapEntityToResponse(order: Order): OrderResponse {
|
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 {
|
return {
|
||||||
id: order.id,
|
id: order.id,
|
||||||
package: this.packageMapper.mapDetailEntityToResponse(order.package),
|
package: this.packageMapper.mapDetailEntityToResponse(order.package),
|
||||||
name: order.name,
|
name: order.name,
|
||||||
whatsapp: order.whatsapp,
|
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,
|
expired_at: order.expiredAt,
|
||||||
purchased_at: order.purchasedAt,
|
purchased_at: order.purchasedAt,
|
||||||
finished_at: order.finishedAt,
|
finished_at: order.finishedAt,
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
import type { RoomType } from "@/database/enums/room-type.enum";
|
|
||||||
import type {
|
import type {
|
||||||
orderParamsSchema,
|
orderParamsSchema,
|
||||||
orderRequestSchema,
|
orderRequestSchema,
|
||||||
} from "@/modules/order/order.schemas";
|
} from "@/modules/order/order.schemas";
|
||||||
import type { PackageDetailResponse } from "@/modules/package/package.types";
|
import type { PackageDetailResponse } from "@/modules/package/package.types";
|
||||||
import type { PartnerResponse } from "@/modules/partner/partner.types";
|
|
||||||
import z from "zod";
|
import z from "zod";
|
||||||
|
|
||||||
export type OrderRequest = z.infer<typeof orderRequestSchema>;
|
export type OrderRequest = z.infer<typeof orderRequestSchema>;
|
||||||
@@ -16,13 +14,6 @@ export type OrderResponse = {
|
|||||||
package: PackageDetailResponse;
|
package: PackageDetailResponse;
|
||||||
name: string;
|
name: string;
|
||||||
whatsapp: string;
|
whatsapp: string;
|
||||||
details: {
|
|
||||||
room_type: RoomType;
|
|
||||||
price: number;
|
|
||||||
}[];
|
|
||||||
total_price: number;
|
|
||||||
is_verified: boolean;
|
|
||||||
partner: PartnerResponse | null;
|
|
||||||
expired_at: Date | null;
|
expired_at: Date | null;
|
||||||
purchased_at: Date | null;
|
purchased_at: Date | null;
|
||||||
finished_at: Date | null;
|
finished_at: Date | null;
|
||||||
|
|||||||
Reference in New Issue
Block a user