오늘 이슈(TodayIssue) 기능 구현
- TodayIssue 모델 및 마이그레이션 추가 - TodayIssueController, TodayIssueService 구현 - TodayIssueObserverService 및 Observer 패턴 적용 - DailyReportService 연동 - Swagger API 문서 업데이트 - 라우트 추가
This commit is contained in:
@@ -1,3 +1,42 @@
|
||||
## 2026-01-21 (화) - TodayIssue 헤더 알림 API (Phase 3 완료)
|
||||
|
||||
### 작업 목표
|
||||
- TodayIssue + 알림 시스템 통합 Phase 3: 헤더 알림 API 구현
|
||||
- 읽지 않은 이슈 목록/개수 조회, 읽음 처리 API 구현
|
||||
|
||||
### 수정된 파일
|
||||
| 파일명 | 설명 |
|
||||
|--------|------|
|
||||
| `app/Services/TodayIssueService.php` | getUnreadList(), getUnreadCount(), markAllAsRead() 추가 |
|
||||
| `app/Http/Controllers/Api/V1/TodayIssueController.php` | unread(), unreadCount(), markAsRead(), markAllAsRead() 추가 |
|
||||
| `routes/api.php` | 4개 엔드포인트 추가 |
|
||||
| `lang/ko/message.php` | today_issue.marked_as_read, all_marked_as_read 메시지 추가 |
|
||||
| `app/Swagger/v1/TodayIssueApi.php` | 4개 엔드포인트 + 스키마 문서화 |
|
||||
| `app/Swagger/v1/ComprehensiveAnalysisApi.php` | 스키마 이름 충돌 해결 (TodayIssueItem → ComprehensiveTodayIssueItem) |
|
||||
|
||||
### API 엔드포인트
|
||||
| Method | Endpoint | 설명 |
|
||||
|--------|----------|------|
|
||||
| GET | `/api/v1/today-issues/unread` | 읽지 않은 이슈 목록 (헤더 알림 드롭다운용) |
|
||||
| GET | `/api/v1/today-issues/unread/count` | 읽지 않은 이슈 개수 (헤더 뱃지용) |
|
||||
| POST | `/api/v1/today-issues/{id}/read` | 단일 이슈 읽음 처리 |
|
||||
| POST | `/api/v1/today-issues/read-all` | 모든 이슈 읽음 처리 |
|
||||
|
||||
### 검증 완료
|
||||
- [x] Pint 코드 스타일 통과
|
||||
- [x] Swagger 문서 생성 완료
|
||||
- [x] PHP 문법 검증 통과
|
||||
- [x] Service-First 아키텍처 준수
|
||||
- [x] Multi-tenancy (tenant_id 필터링) 적용
|
||||
- [x] i18n 메시지 키 사용
|
||||
|
||||
### 계획 문서
|
||||
- `docs/plans/today-issue-notification-integration-plan.md`
|
||||
- 백엔드 작업 완료 (Phase 1-3: 100%)
|
||||
- Phase 4 (React 헤더 연동)는 프론트엔드 담당
|
||||
|
||||
---
|
||||
|
||||
## 2026-01-11 (토) - Labor(노임관리) API 구현
|
||||
|
||||
### 작업 목표
|
||||
|
||||
Reference in New Issue
Block a user