feat: 대시보드에 라이선스 만료 요약 및 Lookup 데이터 캐싱 시스템 구현
Some checks failed
Flutter Test & Quality Check / Test on macos-latest (push) Has been cancelled
Flutter Test & Quality Check / Test on ubuntu-latest (push) Has been cancelled
Flutter Test & Quality Check / Build APK (push) Has been cancelled

- License Expiry Summary API 연동 완료
  - 30/60/90일 내 만료 예정 라이선스 요약 표시
  - 대시보드 상단에 알림 카드로 통합
  - 만료 임박 순서로 색상 구분 (빨강/주황/노랑)

- Lookup 데이터 전역 캐싱 시스템 구축
  - LookupService 및 RemoteDataSource 생성
  - 전체 lookup 데이터 일괄 로드 및 캐싱
  - 타입별 필터링 지원

- 새로운 모델 추가
  - LicenseExpirySummary (Freezed)
  - LookupData, LookupCategory, LookupItem 모델

- CLAUDE.md 문서 업데이트
  - 미사용 API 활용 계획 추가
  - 구현 우선순위 정의

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
JiWoong Sul
2025-08-08 14:42:20 +09:00
parent 740a691406
commit 844c7bd92f
15 changed files with 2105 additions and 4 deletions

View File

@@ -118,6 +118,58 @@ Infrastructure:
priority: LOW
```
## 🔌 Unused Backend API Integration Plan
### 현재 백엔드에 구현되었으나 프론트엔드에서 미사용 중인 API
#### 1. `/overview/license-expiry` - 라이선스 만료 요약
**용도**: 30일/60일/90일 내 만료 예정인 라이선스 요약 정보 제공
**활용 계획**:
- **위치**: Dashboard 화면 상단 알림 배너
- **구현 방법**:
- 만료 임박 라이선스 카운트를 배지로 표시
- 클릭 시 상세 라이선스 목록으로 이동
- 관리자/매니저 권한일 때만 표시
- **예상 효과**: 라이선스 갱신 누락 방지, 사전 대응 가능
#### 2. `/lookups` - 전체 조회 데이터
**용도**: 시스템 전체 드롭다운/셀렉트 박스용 마스터 데이터 제공
**활용 계획**:
- **위치**: 앱 초기화 시 한 번 호출하여 캐싱
- **구현 방법**:
- `LookupService` 생성하여 전역 상태 관리
- 장비 타입, 상태 코드, 제조사 목록 등 일괄 관리
- 각 화면에서 개별 API 호출 대신 캐시된 데이터 사용
- **예상 효과**: API 호출 횟수 감소, 응답 속도 향상
#### 3. `/lookups/type` - 타입별 조회 데이터
**용도**: 특정 타입의 조회 데이터만 선택적으로 가져오기
**활용 계획**:
- **위치**: 대량 데이터 입력 화면 (장비 일괄 등록, Excel 임포트)
- **구현 방법**:
- 필요한 타입만 선택적으로 로드
- 동적 폼 생성 시 활용
- 타입별 유효성 검증 규칙 적용
- **예상 효과**: 메모리 사용량 최적화, 동적 UI 구성 가능
#### 4. `/health` - 시스템 상태 체크
**용도**: API 서버 상태 및 DB 연결 상태 확인
**활용 계획**:
- **위치**:
- 로그인 화면 하단 (서버 상태 인디케이터)
- 관리자 대시보드 (시스템 모니터링 위젯)
- **구현 방법**:
- 30초 간격 폴링으로 서버 상태 모니터링
- 연결 실패 시 자동 재시도 및 사용자 알림
- 서버 점검 시간 사전 공지 표시
- **예상 효과**: 시스템 안정성 향상, 장애 조기 감지
### 구현 우선순위
1. **Phase 1 (1주차)**: `/overview/license-expiry` - 대시보드 통합
2. **Phase 2 (2주차)**: `/lookups` - 전역 캐싱 시스템 구축
3. **Phase 3 (3주차)**: `/health` - 시스템 모니터링 구현
4. **Phase 4 (4주차)**: `/lookups/type` - 동적 폼 시스템 구축
## 📋 TODO List
### Immediate (This Week)
@@ -125,18 +177,22 @@ Infrastructure:
- [ ] 대시보드 차트 구현 (Chart.js 통합)
- [ ] 시리얼 번호 중복 체크 백엔드 구현
- [ ] 권한 체크 누락 화면 수정
- [ ] `/overview/license-expiry` API 연동 (대시보드 알림 배너)
### Short Term (This Month)
- [ ] 장비 대여/반납 기능 구현
- [ ] 고급 검색 필터 구현
- [ ] Excel 내보내기 기능
- [ ] 성능 최적화 (가상 스크롤링)
- [ ] `/lookups` API 활용한 전역 캐싱 시스템 구축
- [ ] `/health` API 활용한 서버 상태 모니터링
### Long Term
- [ ] 모바일 앱 최적화
- [ ] 푸시 알림 시스템
- [ ] 다국어 지원 (영어)
- [ ] 대시보드 커스터마이징
- [ ] `/lookups/type` API 활용한 동적 폼 시스템
## 🔑 Key Decisions
@@ -194,5 +250,5 @@ API Source Code: /Users/maximilian.j.sul/Documents/flutter/superport_api
**Project Stage**: Development (70% Complete)
**Next Milestone**: Beta Release (2025-02-01)
**Last Updated**: 2025-01-08
**Version**: 3.0
**Last Updated**: 2025-01-09
**Version**: 3.1