From c96e3b0c1aac4822096f0592c940b593a32569ed Mon Sep 17 00:00:00 2001 From: Mayank Mishra Date: Wed, 18 Mar 2026 12:45:59 +0530 Subject: [PATCH] sending the energyLevel details also in the getUserItineraryDetails service --- .../user/services/itinerary.service.ts | 47 ++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/src/modules/user/services/itinerary.service.ts b/src/modules/user/services/itinerary.service.ts index 1ba3de4..02cb987 100644 --- a/src/modules/user/services/itinerary.service.ts +++ b/src/modules/user/services/itinerary.service.ts @@ -190,7 +190,7 @@ export class ItineraryService { constructor(private prisma: PrismaClient) {} async getUserItineraryDetails(userXid: number) { - const [userLocation, activityEntries, travellerType] = await Promise.all([ + const [userLocation, activityEntries, travellerType, energyLevel] = await Promise.all([ this.prisma.userAddressDetails.findFirst({ where: { userXid, @@ -264,6 +264,17 @@ export class ItineraryService { checkInAddress: true, checkInLat: true, checkInLong: true, + activityType: { + select: { + energyLevel: { + select: { + id: true, + energyLevelName: true, + energyIcon: true, + }, + }, + }, + }, ActivitiesMedia: { where: { isActive: true, @@ -297,6 +308,21 @@ export class ItineraryService { id: 'asc', }, }), + this.prisma.energyLevels.findMany({ + where: { + isActive: true, + deletedAt: null, + }, + select: { + id: true, + energyLevelName: true, + energyIcon: true, + energyColor: true, + }, + orderBy: { + id: 'asc', + } + }) ]); const formattedActivities = await Promise.all( @@ -325,6 +351,18 @@ export class ItineraryService { coverImagePresignedUrl: await attachPresignedUrl( coverImage?.mediaFileName, ), + energyLevel: entry.Activities?.activityType?.energyLevel + ? { + id: entry.Activities.activityType.energyLevel.id, + energyLevelName: + entry.Activities.activityType.energyLevel.energyLevelName, + energyIcon: + entry.Activities.activityType.energyLevel.energyIcon, + energyIconPresignedUrl: await attachPresignedUrl( + entry.Activities.activityType.energyLevel.energyIcon, + ), + } + : null, media: await attachMediaWithPresignedUrl( entry.Activities?.ActivitiesMedia ?? [], ), @@ -334,10 +372,17 @@ export class ItineraryService { ); const latestAddedActivity = formattedActivities[0] ?? null; + const formattedMasterEnergyLevels = await Promise.all( + energyLevel.map(async (item) => ({ + ...item, + energyIconPresignedUrl: await attachPresignedUrl(item.energyIcon), + })), + ); return { userLocation, travellerType, + energyLevel: formattedMasterEnergyLevels, bucketCount: formattedActivities.filter((item) => item.isBucket).length, interestedCount: formattedActivities.filter((item) => !item.isBucket).length, latestAddedActivityCoverImage: