sending the energyLevel details also in the getUserItineraryDetails service

This commit is contained in:
2026-03-18 12:45:59 +05:30
parent f23b93801c
commit c96e3b0c1a

View File

@@ -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: