- 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>
49 lines
2.0 KiB
Dart
49 lines
2.0 KiB
Dart
import 'package:dartz/dartz.dart';
|
|
import 'package:injectable/injectable.dart';
|
|
import 'package:superport/core/errors/failures.dart';
|
|
import 'package:superport/data/datasources/remote/dashboard_remote_datasource.dart';
|
|
import 'package:superport/data/models/dashboard/equipment_status_distribution.dart';
|
|
import 'package:superport/data/models/dashboard/expiring_license.dart';
|
|
import 'package:superport/data/models/dashboard/license_expiry_summary.dart';
|
|
import 'package:superport/data/models/dashboard/overview_stats.dart';
|
|
import 'package:superport/data/models/dashboard/recent_activity.dart';
|
|
|
|
abstract class DashboardService {
|
|
Future<Either<Failure, OverviewStats>> getOverviewStats();
|
|
Future<Either<Failure, List<RecentActivity>>> getRecentActivities();
|
|
Future<Either<Failure, EquipmentStatusDistribution>> getEquipmentStatusDistribution();
|
|
Future<Either<Failure, List<ExpiringLicense>>> getExpiringLicenses({int days = 30});
|
|
Future<Either<Failure, LicenseExpirySummary>> getLicenseExpirySummary();
|
|
}
|
|
|
|
@LazySingleton(as: DashboardService)
|
|
class DashboardServiceImpl implements DashboardService {
|
|
final DashboardRemoteDataSource _remoteDataSource;
|
|
|
|
DashboardServiceImpl(this._remoteDataSource);
|
|
|
|
@override
|
|
Future<Either<Failure, OverviewStats>> getOverviewStats() async {
|
|
return await _remoteDataSource.getOverviewStats();
|
|
}
|
|
|
|
@override
|
|
Future<Either<Failure, List<RecentActivity>>> getRecentActivities() async {
|
|
return await _remoteDataSource.getRecentActivities();
|
|
}
|
|
|
|
@override
|
|
Future<Either<Failure, EquipmentStatusDistribution>> getEquipmentStatusDistribution() async {
|
|
return await _remoteDataSource.getEquipmentStatusDistribution();
|
|
}
|
|
|
|
@override
|
|
Future<Either<Failure, List<ExpiringLicense>>> getExpiringLicenses({int days = 30}) async {
|
|
return await _remoteDataSource.getExpiringLicenses(days: days);
|
|
}
|
|
|
|
@override
|
|
Future<Either<Failure, LicenseExpirySummary>> getLicenseExpirySummary() async {
|
|
return await _remoteDataSource.getLicenseExpirySummary();
|
|
}
|
|
} |