diff --git a/docs/20260712_DM룸_푸시문구_수정/plan-task.md b/docs/20260712_DM룸_푸시문구_수정/plan-task.md new file mode 100644 index 00000000..78263952 --- /dev/null +++ b/docs/20260712_DM룸_푸시문구_수정/plan-task.md @@ -0,0 +1,13 @@ +# DM룸 푸시문구 수정 구현 계획 + +## 시나리오 +1. Happy path: 상대방이 DM Room에 입장하지 않은 상태에서 WebSocket 텍스트 메시지를 보내면 `FcmEvent.messageKey`가 `message.fcm.dm_received`이다. +2. Edge: `message.fcm.dm_received`가 KO/EN/JA에서 조회되고, 기존 `message.fcm.text_received` 한국어 문구는 그대로다. +3. Adjacent regression: DM 음성 메시지 푸시는 계속 `message.fcm.voice_received`를 사용한다. + +## 작업 +1. RED: `SodaMessageSourceTest`에 DM 전용 키 다국어 조회와 기존 키 보존 테스트를 추가한다. +2. RED: `UserCreatorChatServiceTest`에 DM 텍스트 푸시 키와 음성 푸시 키 회귀 assertion을 추가한다. +3. GREEN: `SodaMessageSource`에 `message.fcm.dm_received` 다국어 메시지를 추가한다. +4. GREEN: `UserCreatorChatService.publishMessagePush`의 텍스트 분기만 새 키로 바꾼다. +5. VERIFY: 관련 테스트와 lint를 실행한다. diff --git a/docs/20260712_DM룸_푸시문구_수정/prd.md b/docs/20260712_DM룸_푸시문구_수정/prd.md new file mode 100644 index 00000000..7c552f70 --- /dev/null +++ b/docs/20260712_DM룸_푸시문구_수정/prd.md @@ -0,0 +1,20 @@ +# DM룸 푸시문구 수정 PRD + +## 목적 +DM Room에서 텍스트 메시지를 보냈을 때 상대방이 해당 채팅방에 입장하지 않은 상태라면 발송되는 푸시 본문을 DM 전용 문구로 분리한다. + +## 요구사항 +- 기존 `message.fcm.text_received` 메시지는 변경하지 않는다. +- DM 텍스트 푸시는 새 메시지 키를 사용한다. +- 새 한국어 문구는 기존 문구의 `문자메시지가`를 `DM이`로 바꾼다. +- 새 메시지 키는 한국어, 영어, 일본어를 모두 제공한다. +- DM 음성 메시지 푸시는 기존 `message.fcm.voice_received`를 유지한다. + +## 비범위 +- FCM 발송 구조, deep link, 수신자 선정 로직은 변경하지 않는다. +- 기존 일반 메시지 푸시 문구는 변경하지 않는다. + +## 성공 기준 +- 오프라인 DM 텍스트 메시지 푸시 이벤트가 새 DM 메시지 키를 사용한다. +- `message.fcm.text_received`는 기존 값으로 남아 있다. +- 새 DM 메시지 키가 `Lang.KO`, `Lang.EN`, `Lang.JA`에서 조회된다.