From a1b30fd21863a4eac10277e12cc9bfbc4b381512 Mon Sep 17 00:00:00 2001 From: chym1217 Date: Mon, 27 Jul 2026 09:56:59 +0900 Subject: [PATCH] =?UTF-8?q?docs(message=5Fbizppurio):=20=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=20=EC=8B=9C=20=EC=B1=84=EB=84=90=20=EC=A0=95=EB=A6=AC=20CHANGE?= =?UTF-8?q?LOG=20=EA=B8=B0=EC=9E=AC=20+=20=EC=95=8C=EB=A6=BC=ED=86=A1=20?= =?UTF-8?q?=EC=97=B0=EB=8F=99=20=EC=A0=80=EC=9E=A5=20=EB=B0=A9=EC=8B=9D=20?= =?UTF-8?q?=EC=A3=BC=EC=84=9D=20=EC=A0=95=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 플러그인 삭제 시 문자·알림톡 채널이 정리되고 재설치 시 복원된다는 사용자 관점 항목을 CHANGELOG 에 추가한다. 알림톡 연동 저장 방식이 "코어 저장 훅 편승"에서 "행 하단 [연결/변경] 버튼 → 우리 연결 모달 → 우리 API 직접 저장"으로 확정됐으나 일부 주석이 옛 설명으로 남아 있어, 실제 구현과 일치하도록 3곳을 정정한다(로직 불변). --- .../sirsoft-message_bizppurio/CHANGELOG.md | 1 + .../RegisterNotificationChannelsListener.php | 6 +++--- .../Services/NotificationBindingService.php | 21 ++++++++++--------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/plugins/_bundled/sirsoft-message_bizppurio/CHANGELOG.md b/plugins/_bundled/sirsoft-message_bizppurio/CHANGELOG.md index 020423cb..c3927f55 100644 --- a/plugins/_bundled/sirsoft-message_bizppurio/CHANGELOG.md +++ b/plugins/_bundled/sirsoft-message_bizppurio/CHANGELOG.md @@ -35,6 +35,7 @@ - 검수 모드로 발송된 문자·알림톡은 발송 이력 화면에 "발송중" 대신 "검수" 라벨로 표시되어, 실제 장애와 검수 도메인 특성을 운영자가 쉽게 구분할 수 있습니다. - 문자·알림톡 발송 시 비즈뿌리오에 실제로 전송한 요청 내용을 이력에 함께 저장합니다. 발송이 실패했을 때 어떤 내용이 전송됐는지 사후에 확인할 수 있습니다. - 알림톡 템플릿이 연결되지 않았거나 문자 템플릿이 없는 등 발송 자체를 시도하지 못한 경우, 관리자 알림 발송 이력 화면에 "성공"이 아닌 "실패"로 정확히 표시됩니다. +- 플러그인을 삭제하면 이 플러그인이 알림 설정에 추가했던 문자·알림톡 채널이 함께 정리됩니다. 메일·사이트 내 알림 등 다른 채널과 알림 자체는 그대로 유지되며, 플러그인을 다시 설치하면 문자·알림톡 채널이 자동으로 복원됩니다. ### Changed diff --git a/plugins/_bundled/sirsoft-message_bizppurio/src/Listeners/RegisterNotificationChannelsListener.php b/plugins/_bundled/sirsoft-message_bizppurio/src/Listeners/RegisterNotificationChannelsListener.php index 95983d24..3754868a 100644 --- a/plugins/_bundled/sirsoft-message_bizppurio/src/Listeners/RegisterNotificationChannelsListener.php +++ b/plugins/_bundled/sirsoft-message_bizppurio/src/Listeners/RegisterNotificationChannelsListener.php @@ -25,9 +25,9 @@ use App\Services\SettingsService; * ChannelManager 에 등록되어야 발화하므로, 드라이버 등록은 ServiceProvider::boot() 가 * 담당한다(이 리스너는 채널 "노출·판정"만 책임진다). * - * 알림톡 탭은 코어 기본 목록·편집 모달을 그대로 사용한다(Phase 6 재설계, 계획서 ⚑⚑ 블록 A). - * 연결 템플릿·SMS 대체 등 알림톡 전용 설정은 코어 편집 모달에 전용 칸을 overlay 로 얹고 - * 코어 저장 훅(core.notification_template.filter_update_data/after_update)에 편승해 저장하므로, + * 알림톡 탭은 코어 기본 목록을 그대로 사용한다(Phase 6 재설계, 계획서 ⚑⚑ 블록 A). + * 연결 템플릿·SMS 대체 등 알림톡 전용 설정은 코어 목록 행 하단에 overlay 로 얹은 + * [연결/변경] 버튼 → 우리 연결 모달 → 우리 API(notification-bindings)로 직접 저장하므로, * 이 리스너는 코어 목록을 숨기는 별도 플래그를 두지 않는다. */ class RegisterNotificationChannelsListener implements HookListenerInterface diff --git a/plugins/_bundled/sirsoft-message_bizppurio/src/Services/NotificationBindingService.php b/plugins/_bundled/sirsoft-message_bizppurio/src/Services/NotificationBindingService.php index edf21004..6bdf291f 100644 --- a/plugins/_bundled/sirsoft-message_bizppurio/src/Services/NotificationBindingService.php +++ b/plugins/_bundled/sirsoft-message_bizppurio/src/Services/NotificationBindingService.php @@ -11,13 +11,13 @@ use Plugins\Sirsoft\MessageBizppurio\Repositories\Contracts\BizppurioNotificatio /** * 이벤트↔알림톡 템플릿 연동(binding) 서비스 (계획서 §6-2, Phase 6 재설계 A). * - * 알림 설정 알림톡 탭은 코어 기본 목록·편집 모달을 그대로 사용한다(⚑⚑ 결정 A). 연결 템플릿· - * SMS 대체는 코어 편집 모달에 얹은 전용 칸에서 입력하고, 코어 [저장] 훅 - * (core.notification_template.filter_update_data/after_update)에 편승해 이 서비스의 - * bind/unbind 로 저장된다(별도 저장 버튼·우리 목록 API 없음). + * 알림 설정 알림톡 탭은 코어 기본 목록을 그대로 사용한다(⚑⚑ 결정 A). 연결 템플릿·SMS 대체는 + * 코어 목록 행 하단에 얹은 [연결/변경] 버튼 → 우리 연결 모달에서 입력하고, 우리 API + * (POST notification-bindings)로 이 서비스의 bind/unbind 를 직접 호출해 저장된다 + * (코어 저장 버튼과 무관). * - * 이 서비스는 (1) 코어 편집 모달 전용 칸이 소비하는 조회 — 승인 템플릿 드롭다운(approvedTemplates) - * 과 현재 연동 맵(all) — 및 (2) 저장 훅 리스너가 호출하는 bind/unbind 를 제공한다. + * 이 서비스는 (1) 연결 모달이 소비하는 조회 — 승인 템플릿 드롭다운(approvedTemplates) + * 과 현재 연동 맵(all) — 및 (2) 연결 모달 저장이 호출하는 bind/unbind 를 제공한다. * * 연결 대상 템플릿 드롭다운은 "발송 가능(승인) 상태" 템플릿만 노출한다 — 미승인 템플릿에 * 연동해도 발송이 거부되기 때문. 승인 판정은 AlimtalkTemplateService 의 배지 매핑(RDY/ACT @@ -173,11 +173,12 @@ class NotificationBindingService } /** - * 코어 편집 모달 전용 칸이 넘긴 값으로 연동을 반영합니다 (저장 훅 편승). + * 연결 모달이 넘긴 값으로 연동을 반영합니다. * - * 코어 알림 템플릿 [저장] 훅(after_update)에서 호출된다. 연결 템플릿 코드가 비어 있으면 - * 연동 해제, 있으면 생성/갱신한다. 이 "빈 값=해제" 규칙 덕분에 편집 모달에서 드롭다운을 - * "연결 안 함"으로 바꾸고 저장하면 코어 저장 한 번으로 해제까지 처리된다. + * 우리 연결 저장 API(NotificationBindingController::store → POST notification-bindings)에서 + * 호출된다. 연결 템플릿 코드가 비어 있으면 연동 해제, 있으면 생성/갱신한다. 이 "빈 값=해제" + * 규칙 덕분에 연결 모달에서 드롭다운을 "연결 안 함"으로 바꾸고 저장하면 저장 한 번으로 + * 해제까지 처리된다. * * @param string $notificationType 코어 notification_definitions.type * @param string|null $templateCode 연결할 카카오 템플릿 코드 (빈 값=해제)