권혁성
f74767563f
feat: FCM 사용자별 타겟 알림 발송 기능 추가
- today_issues 테이블에 target_user_id 컬럼 추가 (마이그레이션)
- TodayIssue 모델: target_user_id 필드, targetUser 관계, forUser/targetedTo 스코프 추가
- TodayIssue 모델: 기안 상태 뱃지 상수 추가 (BADGE_DRAFT_APPROVED/REJECTED/COMPLETED)
- TodayIssueObserverService: createIssueWithFcm, sendFcmNotification, getEnabledUserTokens에 targetUserId 파라미터 추가
- TodayIssueObserverService: handleApprovalStepChange - 결재자에게만 발송
- TodayIssueObserverService: handleApprovalStatusChange 추가 - 기안자에게만 발송
- ApprovalIssueObserver 신규 생성 및 AppServiceProvider에 등록
- i18n: 기안 승인/반려/완료 알림 메시지 추가
결재요청은 결재자(ApprovalStep.user_id)에게만,
기안 승인/반려는 기안자(Approval.drafter_id)에게만 FCM 발송
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 13:57:46 +09:00
..
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-19 20:23:30 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-27 15:17:30 +09:00
2026-01-20 20:51:42 +09:00
2025-12-19 14:52:53 +09:00
2026-01-13 19:49:06 +09:00
2025-11-06 17:45:49 +09:00
2025-12-16 21:57:07 +09:00
2025-12-18 13:51:40 +09:00
2026-01-23 10:05:50 +09:00
2026-01-15 17:14:04 +09:00
2026-01-15 20:23:07 +09:00
2026-01-23 21:32:23 +09:00
2025-12-17 21:02:20 +09:00
2026-01-16 15:38:52 +09:00
2025-12-22 15:30:38 +09:00
2026-01-22 23:18:33 +09:00
2026-01-26 20:29:22 +09:00
2025-12-26 01:32:07 +09:00
2026-01-22 23:19:05 +09:00
2025-11-14 13:45:54 +09:00
2025-11-06 17:45:49 +09:00
2026-01-27 15:17:30 +09:00
2025-11-06 17:45:49 +09:00
2025-11-06 17:45:49 +09:00
2025-11-06 17:45:49 +09:00
2026-01-27 22:39:04 +09:00
2025-12-22 15:30:38 +09:00
2026-01-02 11:15:05 +09:00
2026-01-22 09:47:29 +09:00
2025-12-18 11:23:35 +09:00
2025-12-26 15:00:57 +09:00
2026-01-15 17:14:04 +09:00
2026-01-14 20:29:00 +09:00
2026-01-26 20:29:22 +09:00
2025-11-06 17:45:49 +09:00
2026-01-26 20:29:22 +09:00
2026-01-15 17:14:04 +09:00
2025-11-06 17:45:49 +09:00
2025-11-10 22:09:28 +09:00
2025-11-10 22:09:28 +09:00
2025-12-09 09:39:41 +09:00
2026-01-15 08:52:53 +09:00
2025-12-18 14:21:37 +09:00
2026-01-27 13:55:12 +09:00
2026-01-20 20:43:38 +09:00
2026-01-11 23:29:32 +09:00
2025-12-26 15:48:06 +09:00
2025-12-26 18:58:43 +09:00
2026-01-22 22:47:59 +09:00
2026-01-20 20:43:38 +09:00
2025-12-09 20:18:32 +09:00
2025-12-02 22:55:10 +09:00
2025-12-29 17:31:09 +09:00
2025-12-09 09:39:41 +09:00
2025-12-22 17:42:59 +09:00
2026-01-26 20:29:22 +09:00
2025-12-19 16:53:49 +09:00
2025-12-18 10:56:16 +09:00
2025-11-06 17:45:49 +09:00
2025-12-18 16:20:29 +09:00
2025-12-19 16:14:04 +09:00
2026-01-13 19:49:06 +09:00
2026-01-09 22:19:11 +09:00
2026-01-08 20:23:52 +09:00
2026-01-20 20:43:38 +09:00
2026-01-20 20:43:38 +09:00
2026-01-23 09:08:37 +09:00
2026-01-13 19:49:06 +09:00
2026-01-13 19:49:06 +09:00
2026-01-26 20:29:22 +09:00
2025-11-11 18:03:11 +09:00
2025-12-17 22:51:17 +09:00
2026-01-15 17:14:04 +09:00
2026-01-22 23:19:05 +09:00
2025-11-06 17:45:49 +09:00
2026-01-26 20:29:22 +09:00
2026-01-13 19:49:06 +09:00
2026-01-09 16:34:59 +09:00
2026-01-21 20:46:53 +09:00
2026-01-26 20:29:22 +09:00
2025-12-30 22:27:08 +09:00
2026-01-19 20:53:36 +09:00
2025-11-06 17:45:49 +09:00
2025-11-06 17:45:49 +09:00
2025-11-06 17:45:49 +09:00
2025-11-06 17:45:49 +09:00
2025-12-30 22:58:50 +09:00
2026-01-26 20:29:22 +09:00
2025-11-14 14:09:53 +09:00
2025-12-29 21:04:32 +09:00
2026-01-28 13:57:46 +09:00
2026-01-28 13:57:46 +09:00
2025-12-22 17:42:59 +09:00
2026-01-26 20:29:22 +09:00
2025-12-26 15:46:31 +09:00
2026-01-22 23:18:33 +09:00
2026-01-15 17:14:04 +09:00
2026-01-26 20:29:22 +09:00
2026-01-20 16:14:46 +09:00
2025-12-17 20:46:37 +09:00