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

@@ -9,6 +9,7 @@ import '../data/datasources/remote/equipment_remote_datasource.dart';
import '../data/datasources/remote/company_remote_datasource.dart';
import '../data/datasources/remote/user_remote_datasource.dart';
import '../data/datasources/remote/license_remote_datasource.dart';
import '../data/datasources/remote/lookup_remote_datasource.dart';
import '../data/datasources/remote/warehouse_remote_datasource.dart';
import '../services/auth_service.dart';
import '../services/dashboard_service.dart';
@@ -16,6 +17,7 @@ import '../services/equipment_service.dart';
import '../services/company_service.dart';
import '../services/user_service.dart';
import '../services/license_service.dart';
import '../services/lookup_service.dart';
import '../services/warehouse_service.dart';
/// GetIt 인스턴스
@@ -52,6 +54,9 @@ Future<void> setupDependencies() async {
getIt.registerLazySingleton<LicenseRemoteDataSource>(
() => LicenseRemoteDataSourceImpl(apiClient: getIt()),
);
getIt.registerLazySingleton<LookupRemoteDataSource>(
() => LookupRemoteDataSourceImpl(getIt()),
);
getIt.registerLazySingleton<WarehouseRemoteDataSource>(
() => WarehouseRemoteDataSourceImpl(apiClient: getIt()),
);
@@ -75,6 +80,9 @@ Future<void> setupDependencies() async {
getIt.registerLazySingleton<LicenseService>(
() => LicenseService(getIt()),
);
getIt.registerLazySingleton<LookupService>(
() => LookupService(getIt()),
);
getIt.registerLazySingleton<WarehouseService>(
() => WarehouseService(),
);