Files
superport/lib/data/models/lookups/lookup_data.dart
JiWoong Sul 844c7bd92f
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
feat: 대시보드에 라이선스 만료 요약 및 Lookup 데이터 캐싱 시스템 구현
- 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>
2025-08-08 14:42:20 +09:00

35 lines
1.3 KiB
Dart

import 'package:freezed_annotation/freezed_annotation.dart';
part 'lookup_data.freezed.dart';
part 'lookup_data.g.dart';
@freezed
class LookupData with _$LookupData {
const factory LookupData({
@JsonKey(name: 'equipment_types') required List<LookupItem> equipmentTypes,
@JsonKey(name: 'equipment_statuses') required List<LookupItem> equipmentStatuses,
@JsonKey(name: 'license_types') required List<LookupItem> licenseTypes,
@JsonKey(name: 'manufacturers') required List<LookupItem> manufacturers,
@JsonKey(name: 'user_roles') required List<LookupItem> userRoles,
@JsonKey(name: 'company_statuses') required List<LookupItem> companyStatuses,
@JsonKey(name: 'warehouse_types') required List<LookupItem> warehouseTypes,
}) = _LookupData;
factory LookupData.fromJson(Map<String, dynamic> json) =>
_$LookupDataFromJson(json);
}
@freezed
class LookupItem with _$LookupItem {
const factory LookupItem({
required String code,
required String name,
String? description,
@JsonKey(name: 'display_order') int? displayOrder,
@JsonKey(name: 'is_active') @Default(true) bool isActive,
Map<String, dynamic>? metadata,
}) = _LookupItem;
factory LookupItem.fromJson(Map<String, dynamic> json) =>
_$LookupItemFromJson(json);
}