diff --git a/src/modules/host/services/host.service.ts b/src/modules/host/services/host.service.ts index e12b86b..a4eda06 100644 --- a/src/modules/host/services/host.service.ts +++ b/src/modules/host/services/host.service.ts @@ -102,6 +102,17 @@ export class HostService { documentType: true, }, }, + accountManager: { + select: { + id: true, + firstName: true, + lastName: true, + emailAddress: true, + mobileNumber: true, + profileImage: true, + userRefNumber: true, + } + }, user: { select: { id: true, @@ -161,7 +172,7 @@ export class HostService { } } } - if (host.user.profileImage) { + if (host.user?.profileImage) { const key = host.user.profileImage.startsWith("http") ? host.user.profileImage.split(".com/")[1] : host.user.profileImage; @@ -169,7 +180,7 @@ export class HostService { host.user.profileImage = await getPresignedUrl(bucket, key); } - if (host.logoPath) { + if (host?.logoPath) { const key = host.logoPath.startsWith('http') ? host.logoPath.split('.com/')[1] : host.logoPath; @@ -177,6 +188,14 @@ export class HostService { host.logoPath = await getPresignedUrl(bucket, key); } + if (host.accountManager?.profileImage) { + const key = host.accountManager.profileImage.startsWith('http') + ? host.accountManager.profileImage.split('.com/')[1] + : host.accountManager.profileImage; + + host.accountManager.profileImage = await getPresignedUrl(bucket, key); + } + if (host.hostParent?.length) { const parent = host.hostParent[0]; // since you allow only 1 parent @@ -365,18 +384,76 @@ export class HostService { }); } - async getAllHostActivity(search?: string, hostXid?: number) { - return await this.prisma.activities.findMany({ + async getAllHostActivity(search?: string, user_xid?: number) { + const hostDetails = await this.prisma.hostHeader.findFirst({ + where: { userXid: user_xid, isActive: true } + }) + + const hostAllActivities = await this.prisma.activities.findMany({ where: { isActive: true, - hostXid: hostXid, + hostXid: hostDetails.id, }, include: { ActivitiesMedia: true, - ActivityAmDetails: true, + ActivityAmDetails: { + select: { + accountManager: { + select: { + id: true, + firstName: true, + lastName: true, + profileImage: true, + emailAddress: true, + roleXid: true, + }, + }, + }, + }, activityType: true, }, }); + + for (const activity of hostAllActivities) { + + /** 1️⃣ Process Activity Media */ + const processedMedia = []; + + for (const media of activity.ActivitiesMedia || []) { + + const key = media.mediaFileName?.startsWith("http") + ? media.mediaFileName.split(".com/")[1] + : media.mediaFileName; + + const presignedUrl = key ? await getPresignedUrl(bucket, key) : null; + + processedMedia.push({ + ...media, + presignedUrl, + }); + } + + activity.ActivitiesMedia = processedMedia; + + /** 2️⃣ Process AM Profile Image */ + const am = activity.ActivityAmDetails?.[0]?.accountManager; + + if (am?.profileImage) { + const key = am.profileImage.startsWith("http") + ? am.profileImage.split(".com/")[1] + : am.profileImage; + + const presignedUrl = await getPresignedUrl(bucket, key); + + activity.ActivityAmDetails[0].accountManager = { + ...am, + profileImage: presignedUrl, + }; + } + } + + + return hostAllActivities; } async acceptMinglarAgreement(user_xid: number) { diff --git a/src/modules/minglaradmin/services/minglar.service.ts b/src/modules/minglaradmin/services/minglar.service.ts index bfc543b..9c1c0be 100644 --- a/src/modules/minglaradmin/services/minglar.service.ts +++ b/src/modules/minglaradmin/services/minglar.service.ts @@ -291,26 +291,26 @@ export class MinglarService { // Process each activity for (const activity of hostActivities) { - /** -------------------------- - * 1️⃣ Process Activity Media - * -------------------------- */ - if (activity.ActivitiesMedia?.length) { - for (const media of activity.ActivitiesMedia) { + /** 1️⃣ Process Activity Media */ + const processedMedia = []; - if (!media.mediaFileName) continue; + for (const media of activity.ActivitiesMedia || []) { - // Extract S3 key if URL or keep raw key - const key = media.mediaFileName.startsWith("http") - ? media.mediaFileName.split(".com/")[1] - : media.mediaFileName; + const key = media.mediaFileName?.startsWith("http") + ? media.mediaFileName.split(".com/")[1] + : media.mediaFileName; - media.mediaFileName = await getPresignedUrl(bucket, key); - } + const presignedUrl = key ? await getPresignedUrl(bucket, key) : null; + + processedMedia.push({ + ...media, + presignedUrl, + }); } - /** -------------------------- - * 2️⃣ Process AM Profile Image - * -------------------------- */ + activity.ActivitiesMedia = processedMedia; + + /** 2️⃣ Process AM Profile Image */ const am = activity.ActivityAmDetails?.[0]?.accountManager; if (am?.profileImage) { @@ -318,10 +318,16 @@ export class MinglarService { ? am.profileImage.split(".com/")[1] : am.profileImage; - am.profileImage = await getPresignedUrl(bucket, key); + const presignedUrl = await getPresignedUrl(bucket, key); + + activity.ActivityAmDetails[0].accountManager = { + ...am, + profileImage: presignedUrl, + }; } } + return hostActivities; } @@ -1577,6 +1583,25 @@ export class MinglarService { locationLat: true, locationLong: true, locationName: true, + pinCode: true, + country: { + select: { + id: true, + countryName: true + } + }, + cities: { + select: { + id: true, + cityName: true, + } + }, + states: { + select: { + id: true, + stateName: true + } + } } }, userDocuments: { @@ -1645,9 +1670,9 @@ export class MinglarService { isActive: true }, data: { - activityInternalStatus: ACTIVITY_INTERNAL_STATUS.PQQ_TO_UPDATE, + activityInternalStatus: ACTIVITY_INTERNAL_STATUS.PQ_TO_UPDATE, activityDisplayStatus: ACTIVITY_DISPLAY_STATUS.ENHANCING, - amInternalStatus: ACTIVITY_AM_INTERNAL_STATUS.PQQ_REJECTED, + amInternalStatus: ACTIVITY_AM_INTERNAL_STATUS.PQ_REJECTED, amDisplayStatus: ACTIVITY_AM_DISPLAY_STATUS.ENHANCING } })