sending the food, pick drop, navigation and other details in the verifyPayment api
This commit is contained in:
@@ -2519,6 +2519,142 @@ export class ItineraryService {
|
||||
select: {
|
||||
id: true,
|
||||
activityTitle: true,
|
||||
ActivityFoodCost: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
foodTypesId: true,
|
||||
baseAmount: true,
|
||||
totalAmount: true,
|
||||
ActivityFoodTaxes: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
taxPer: true,
|
||||
taxAmount: true,
|
||||
taxes: {
|
||||
select: {
|
||||
id: true,
|
||||
taxName: true,
|
||||
taxPer: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
ActivityTrainers: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
baseAmount: true,
|
||||
totalAmount: true,
|
||||
ActivityTrainerTaxes: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
taxPer: true,
|
||||
taxAmount: true,
|
||||
taxes: {
|
||||
select: {
|
||||
id: true,
|
||||
taxName: true,
|
||||
taxPer: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
ActivityNavigationModes: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
navigationModeName: true,
|
||||
navigationModesBasePrice: true,
|
||||
navigationModesTotalPrice: true,
|
||||
ActivityNavigationModesTaxes: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
taxPer: true,
|
||||
taxAmount: true,
|
||||
taxes: {
|
||||
select: {
|
||||
id: true,
|
||||
taxName: true,
|
||||
taxPer: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
ActivityPickUpDetails: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
isPickUp: true,
|
||||
locationLat: true,
|
||||
locationLong: true,
|
||||
locationAddress: true,
|
||||
transportBasePrice: true,
|
||||
transportTotalPrice: true,
|
||||
activityPickUpTransportTaxes: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
taxPer: true,
|
||||
taxAmount: true,
|
||||
taxes: {
|
||||
select: {
|
||||
id: true,
|
||||
taxName: true,
|
||||
taxPer: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
activityPickUpTransports: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
transportModeXid: true,
|
||||
transportMode: {
|
||||
select: {
|
||||
id: true,
|
||||
transportModeName: true,
|
||||
transportModeIcon: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
ActivityEquipments: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
equipmentName: true,
|
||||
equipmentBasePrice: true,
|
||||
equipmentTotalPrice: true,
|
||||
ActivityEquipmentTaxes: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
taxPer: true,
|
||||
taxAmount: true,
|
||||
taxes: {
|
||||
select: {
|
||||
id: true,
|
||||
taxName: true,
|
||||
taxPer: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
venue: {
|
||||
@@ -2566,6 +2702,88 @@ export class ItineraryService {
|
||||
},
|
||||
},
|
||||
},
|
||||
itineraryActivitySelections: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
itineraryMemberXid: true,
|
||||
isFoodOpted: true,
|
||||
isTrainerOpted: true,
|
||||
isInActivityNavigationOpted: true,
|
||||
activityNavigationMode: {
|
||||
select: {
|
||||
id: true,
|
||||
navigationModeName: true,
|
||||
navigationModesBasePrice: true,
|
||||
navigationModesTotalPrice: true,
|
||||
ActivityNavigationModesTaxes: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
taxPer: true,
|
||||
taxAmount: true,
|
||||
taxes: {
|
||||
select: {
|
||||
id: true,
|
||||
taxName: true,
|
||||
taxPer: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
selectedFoodTypes: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
activityFoodTypeXid: true,
|
||||
activityFoodType: {
|
||||
select: {
|
||||
id: true,
|
||||
foodTypeXid: true,
|
||||
foodType: {
|
||||
select: {
|
||||
id: true,
|
||||
foodTypeName: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
selectedEquipments: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
activityEquipmentXid: true,
|
||||
activityEquipment: {
|
||||
select: {
|
||||
id: true,
|
||||
equipmentName: true,
|
||||
equipmentBasePrice: true,
|
||||
equipmentTotalPrice: true,
|
||||
ActivityEquipmentTaxes: {
|
||||
where: { isActive: true, deletedAt: null },
|
||||
select: {
|
||||
id: true,
|
||||
taxPer: true,
|
||||
taxAmount: true,
|
||||
taxes: {
|
||||
select: {
|
||||
id: true,
|
||||
taxName: true,
|
||||
taxPer: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -2582,6 +2800,81 @@ export class ItineraryService {
|
||||
|
||||
const bookedActivities = await Promise.all(
|
||||
itinerary.ItineraryActivities.map(async (activity) => {
|
||||
const activitySelection =
|
||||
activity.itineraryActivitySelections?.find(
|
||||
(selection) => selection.itineraryMemberXid === itineraryMember.id,
|
||||
) ?? null;
|
||||
|
||||
const selectedFoodTypes = activitySelection?.selectedFoodTypes ?? [];
|
||||
const selectedEquipments = activitySelection?.selectedEquipments ?? [];
|
||||
const selectedNavigationMode =
|
||||
activitySelection?.activityNavigationMode ?? null;
|
||||
|
||||
const foodDetails = selectedFoodTypes.map((selectedFoodType) => {
|
||||
const matchedCost =
|
||||
activity.activity?.ActivityFoodCost.find(
|
||||
(cost) => cost.foodTypesId === selectedFoodType.activityFoodType.foodTypeXid,
|
||||
) ?? activity.activity?.ActivityFoodCost?.[0] ?? null;
|
||||
|
||||
return matchedCost
|
||||
? {
|
||||
id: selectedFoodType.id,
|
||||
activityFoodTypeXid: selectedFoodType.activityFoodTypeXid,
|
||||
foodTypeXid: selectedFoodType.activityFoodType.foodTypeXid,
|
||||
foodTypeName: selectedFoodType.activityFoodType.foodType.foodTypeName,
|
||||
baseAmount: Number(matchedCost.baseAmount) || 0,
|
||||
totalAmount: Number(matchedCost.totalAmount) || 0,
|
||||
taxes: mapCheckoutTaxes(matchedCost.ActivityFoodTaxes ?? []),
|
||||
}
|
||||
: {
|
||||
id: selectedFoodType.id,
|
||||
activityFoodTypeXid: selectedFoodType.activityFoodTypeXid,
|
||||
foodTypeXid: selectedFoodType.activityFoodType.foodTypeXid,
|
||||
foodTypeName: selectedFoodType.activityFoodType.foodType.foodTypeName,
|
||||
baseAmount: 0,
|
||||
totalAmount: 0,
|
||||
taxes: [],
|
||||
};
|
||||
});
|
||||
|
||||
const equipmentDetails = selectedEquipments.map((selectedEquipment) => ({
|
||||
id: selectedEquipment.id,
|
||||
activityEquipmentXid: selectedEquipment.activityEquipmentXid,
|
||||
equipmentName: selectedEquipment.activityEquipment.equipmentName,
|
||||
baseAmount: Number(selectedEquipment.activityEquipment.equipmentBasePrice) || 0,
|
||||
totalAmount: Number(selectedEquipment.activityEquipment.equipmentTotalPrice) || 0,
|
||||
taxes: mapCheckoutTaxes(
|
||||
selectedEquipment.activityEquipment.ActivityEquipmentTaxes ?? [],
|
||||
),
|
||||
}));
|
||||
|
||||
const navigationDetails = selectedNavigationMode
|
||||
? {
|
||||
id: selectedNavigationMode.id,
|
||||
navigationModeName: selectedNavigationMode.navigationModeName,
|
||||
baseAmount: Number(selectedNavigationMode.navigationModesBasePrice) || 0,
|
||||
totalAmount: Number(selectedNavigationMode.navigationModesTotalPrice) || 0,
|
||||
taxes: mapCheckoutTaxes(
|
||||
selectedNavigationMode.ActivityNavigationModesTaxes ?? [],
|
||||
),
|
||||
}
|
||||
: null;
|
||||
|
||||
const pickupDetails = (activity.activity?.ActivityPickUpDetails ?? []).map(
|
||||
(pickUpDetail) => ({
|
||||
id: pickUpDetail.id,
|
||||
isPickUp: pickUpDetail.isPickUp,
|
||||
locationLat: pickUpDetail.locationLat,
|
||||
locationLong: pickUpDetail.locationLong,
|
||||
locationAddress: pickUpDetail.locationAddress,
|
||||
baseAmount: Number(pickUpDetail.transportBasePrice) || 0,
|
||||
totalAmount: Number(pickUpDetail.transportTotalPrice) || 0,
|
||||
taxes: mapCheckoutTaxes(
|
||||
pickUpDetail.activityPickUpTransportTaxes ?? [],
|
||||
),
|
||||
}),
|
||||
);
|
||||
|
||||
if (
|
||||
activity.itineraryType !== 'ACTIVITY' ||
|
||||
!activity.activityXid ||
|
||||
@@ -2597,6 +2890,10 @@ export class ItineraryService {
|
||||
startTime: activity.startTime,
|
||||
endTime: activity.endTime,
|
||||
},
|
||||
foodDetails,
|
||||
equipmentDetails,
|
||||
navigationDetails,
|
||||
pickupDetails,
|
||||
skipped: true,
|
||||
reason: 'not_bookable_activity',
|
||||
};
|
||||
@@ -2626,6 +2923,10 @@ export class ItineraryService {
|
||||
startTime: activity.startTime,
|
||||
endTime: activity.endTime,
|
||||
},
|
||||
foodDetails,
|
||||
equipmentDetails,
|
||||
navigationDetails,
|
||||
pickupDetails,
|
||||
skipped: false,
|
||||
alreadyBooked: true,
|
||||
checkInCode: existingDetail.offlineCode,
|
||||
@@ -2860,6 +3161,10 @@ export class ItineraryService {
|
||||
startTime: activity.startTime,
|
||||
endTime: activity.endTime,
|
||||
},
|
||||
foodDetails,
|
||||
equipmentDetails,
|
||||
navigationDetails,
|
||||
pickupDetails,
|
||||
skipped: false,
|
||||
alreadyBooked: false,
|
||||
checkInCode: detail.offlineCode,
|
||||
|
||||
Reference in New Issue
Block a user