- 자동 로그인 구현: 앱 시작 시 토큰 확인 후 적절한 화면으로 라우팅 - AuthInterceptor 개선: AuthService와 통합하여 토큰 관리 일원화 - 로그아웃 기능 개선: AuthService를 사용한 API 로그아웃 처리 - 대시보드 API 연동: MockDataService에서 실제 API로 완전 전환 - Dashboard DTO 모델 생성 (OverviewStats, RecentActivity 등) - DashboardRemoteDataSource 및 DashboardService 구현 - OverviewController를 ChangeNotifier 패턴으로 개선 - OverviewScreenRedesign에 Provider 패턴 적용 - API 통합 진행 상황 문서 업데이트
23 lines
1019 B
Dart
23 lines
1019 B
Dart
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
|
|
part 'overview_stats.freezed.dart';
|
|
part 'overview_stats.g.dart';
|
|
|
|
@freezed
|
|
class OverviewStats with _$OverviewStats {
|
|
const factory OverviewStats({
|
|
@JsonKey(name: 'total_equipment') required int totalEquipment,
|
|
@JsonKey(name: 'available_equipment') required int availableEquipment,
|
|
@JsonKey(name: 'in_use_equipment') required int inUseEquipment,
|
|
@JsonKey(name: 'maintenance_equipment') required int maintenanceEquipment,
|
|
@JsonKey(name: 'total_companies') required int totalCompanies,
|
|
@JsonKey(name: 'total_users') required int totalUsers,
|
|
@JsonKey(name: 'active_licenses') required int activeLicenses,
|
|
@JsonKey(name: 'expiring_licenses') required int expiringLicenses,
|
|
@JsonKey(name: 'total_rentals') required int totalRentals,
|
|
@JsonKey(name: 'active_rentals') required int activeRentals,
|
|
}) = _OverviewStats;
|
|
|
|
factory OverviewStats.fromJson(Map<String, dynamic> json) =>
|
|
_$OverviewStatsFromJson(json);
|
|
} |