From 5213dee94b58f630a7ce9543f2027d4547ba0b9d Mon Sep 17 00:00:00 2001 From: SJ Kim Date: Sat, 1 Aug 2026 16:13:57 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20DeepLinkFactory=EC=97=90=20=EB=94=A5?= =?UTF-8?q?=EB=A7=81=ED=81=AC=20=EC=A0=95=EC=B1=85=20=EB=AC=B8=EC=84=9C?= =?UTF-8?q?=EC=9D=98=20=EC=A0=84=EC=B2=B4=20=ED=99=94=EB=A9=B4=20=EB=9D=BC?= =?UTF-8?q?=EC=9A=B0=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 딥링크 정책 가이드(Notion)에 정의된 17개 screen을 DeepLinkFactory의 static 메서드로 채워, 딥링크 패턴의 관리 주체를 DB가 아닌 코드로 이동. feedback 라우트의 tab 파라미터는 FeedbackTab enum으로 타입 안전하게 처리. Co-Authored-By: Claude Sonnet 5 --- .../deeplink/DeepLinkFactory.java | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/src/main/java/com/LetMeDoWith/LetMeDoWith/application/notification/deeplink/DeepLinkFactory.java b/src/main/java/com/LetMeDoWith/LetMeDoWith/application/notification/deeplink/DeepLinkFactory.java index 39e20892..32644bd4 100644 --- a/src/main/java/com/LetMeDoWith/LetMeDoWith/application/notification/deeplink/DeepLinkFactory.java +++ b/src/main/java/com/LetMeDoWith/LetMeDoWith/application/notification/deeplink/DeepLinkFactory.java @@ -10,7 +10,94 @@ public class DeepLinkFactory { private static final String SCHEME = "letmedowith://"; private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE; + public static String home() { + return SCHEME + "home"; + } + public static String home(LocalDate date) { return SCHEME + "home?date=" + date.format(DATE_FORMATTER); } + + public static String feed() { + return SCHEME + "feed"; + } + + public static String mypage() { + return SCHEME + "mypage"; + } + + public static String feedback() { + return SCHEME + "feedback"; + } + + public static String feedback(FeedbackTab tab) { + return SCHEME + "feedback?tab=" + tab.getValue(); + } + + public static String realtimeNag() { + return SCHEME + "realtime-nag"; + } + + public static String notification() { + return SCHEME + "notification"; + } + + public static String myInfo() { + return SCHEME + "myinfo"; + } + + public static String setting() { + return SCHEME + "setting"; + } + + public static String settingMyInfo() { + return SCHEME + "setting/myinfo"; + } + + public static String settingNotification() { + return SCHEME + "setting/notification"; + } + + public static String settingNotice() { + return SCHEME + "setting/notice"; + } + + public static String settingNoticeDetail(Long id) { + return SCHEME + "setting/notice/detail?id=" + id; + } + + public static String settingPolicy() { + return SCHEME + "setting/policy"; + } + + public static String settingAccount() { + return SCHEME + "setting/account"; + } + + public static String settingBadge() { + return SCHEME + "setting/badge"; + } + + public static String receivedFeedback(Long dowithTaskId) { + return SCHEME + "received-feedback?dowithTaskId=" + dowithTaskId; + } + + public static String cheerCollection(Long dowithTaskId) { + return SCHEME + "cheer-collection?dowithTaskId=" + dowithTaskId; + } + + public enum FeedbackTab { + RECEIVE("receive"), + SEND("send"); + + private final String value; + + FeedbackTab(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + } }