diff --git a/src/main/java/com/example/RealMatch/notification/application/service/NotificationChannelResolver.java b/src/main/java/com/example/RealMatch/notification/application/service/NotificationChannelResolver.java
index 0a268d11..4436c5f1 100644
--- a/src/main/java/com/example/RealMatch/notification/application/service/NotificationChannelResolver.java
+++ b/src/main/java/com/example/RealMatch/notification/application/service/NotificationChannelResolver.java
@@ -14,15 +14,20 @@
/**
* NotificationKind별 즉시 발송 채널을 결정한다.
*
- * PRD §5.2 기준:
- * - PROPOSAL_RECEIVED : PUSH만 (이메일은 1일 후 스케줄러에서 별도 처리)
- * - PROPOSAL_SENT : PUSH만
- * - CAMPAIGN_APPLIED : PUSH만
- * - CAMPAIGN_MATCHED : PUSH + EMAIL (매칭 직후 즉시 이메일)
- * - CAMPAIGN_COMPLETED: PUSH + EMAIL (데모데이 이후)
- * - SETTLEMENT_READY : PUSH만
- * - AUTO_CONFIRMED : EMAIL만 (데모데이 이후)
- * - CHAT_MESSAGE : PUSH만
+ *
PRD §5.2 기준:
+ *
+ * - PROPOSAL_RECEIVED : PUSH + EMAIL (현재는 즉시 발송. 데모데이 이후에는 이메일만 1일 후 스케줄러로 변경 예정)
+ * - PROPOSAL_SENT : PUSH만
+ * - CAMPAIGN_APPLIED : PUSH만
+ * - CAMPAIGN_MATCHED : PUSH + EMAIL (매칭 직후 즉시 이메일)
+ * - CAMPAIGN_COMPLETED: PUSH + EMAIL (데모데이 이후)
+ * - SETTLEMENT_READY : PUSH만
+ * - AUTO_CONFIRMED : EMAIL만 (데모데이 이후)
+ * - CHAT_MESSAGE : PUSH만
+ *
+ *
+ * TODO(데모데이 이후): PROPOSAL_RECEIVED 이메일은 즉시 발송 대신, 1일 경과 + 미읽음(isRead=false)인 건만
+ * 스케줄러에서 조회 후 이메일 발송하도록 변경. (PRD §5.2 이메일 ①)
*/
@Component
public class NotificationChannelResolver {
@@ -32,8 +37,9 @@ public class NotificationChannelResolver {
static {
Map> map = new EnumMap<>(NotificationKind.class);
+ // 현재: 제안 수신 시 푸시 + 이메일 즉시 발송. 데모데이 이후 이메일은 1일 후 스케줄러로 전환 예정(TODO)
map.put(NotificationKind.PROPOSAL_RECEIVED,
- EnumSet.of(NotificationChannel.PUSH));
+ EnumSet.of(NotificationChannel.PUSH, NotificationChannel.EMAIL));
map.put(NotificationKind.PROPOSAL_SENT,
EnumSet.of(NotificationChannel.PUSH));
map.put(NotificationKind.CAMPAIGN_APPLIED,
diff --git a/src/test/java/com/example/RealMatch/notification/application/service/NotificationChannelResolverTest.java b/src/test/java/com/example/RealMatch/notification/application/service/NotificationChannelResolverTest.java
index 693bbe53..6fd07a73 100644
--- a/src/test/java/com/example/RealMatch/notification/application/service/NotificationChannelResolverTest.java
+++ b/src/test/java/com/example/RealMatch/notification/application/service/NotificationChannelResolverTest.java
@@ -20,13 +20,13 @@ class NotificationChannelResolverTest {
private final NotificationChannelResolver resolver = new NotificationChannelResolver();
@Test
- @DisplayName("PROPOSAL_RECEIVED는 PUSH만 반환")
- void resolveChannels_shouldReturnPushOnly_whenProposalReceived() {
+ @DisplayName("PROPOSAL_RECEIVED는 PUSH와 EMAIL을 반환")
+ void resolveChannels_shouldReturnPushAndEmail_whenProposalReceived() {
// when
Set channels = resolver.resolveChannels(NotificationKind.PROPOSAL_RECEIVED);
// then
- assertThat(channels).containsExactly(NotificationChannel.PUSH);
+ assertThat(channels).containsExactlyInAnyOrder(NotificationChannel.PUSH, NotificationChannel.EMAIL);
}
@Test