diff --git a/backend/src/modules/project/project-member.service.ts b/backend/src/modules/project/project-member.service.ts index be780e6..26901f2 100644 --- a/backend/src/modules/project/project-member.service.ts +++ b/backend/src/modules/project/project-member.service.ts @@ -120,7 +120,11 @@ export class ProjectMemberService { recipientIds: [user.id], actorId: actingUserId, type: 'member.invited', - payload: { projectId: project.id, projectName: project.name }, + payload: { + projectId: project.id, + projectName: project.name, + actorName: await this.actorName(actingUserId), + }, }); return this.toResponse(saved); } @@ -160,6 +164,7 @@ export class ProjectMemberService { projectId: project.id, projectName: project.name, roleType: member.roleType, + actorName: await this.actorName(actingUserId), }, }); return this.toResponse(member); @@ -194,7 +199,11 @@ export class ProjectMemberService { recipientIds: [targetUserId], actorId: actingUserId, type: 'member.removed', - payload: { projectId: project.id, projectName: project.name }, + payload: { + projectId: project.id, + projectName: project.name, + actorName: await this.actorName(actingUserId), + }, }); } @@ -227,6 +236,12 @@ export class ProjectMemberService { return project; } + // 행위자 표시 이름 — 알림 payload 의 actorName 용. 없으면 '' (프론트가 '누군가'로 폴백) + private async actorName(userId: string): Promise { + const user = await this.userService.findById(userId); + return user?.name ?? ''; + } + private async getMemberOrThrow( projectId: string, userId: string,