feat: API 통합 2차 작업 완료

- 자동 로그인 구현: 앱 시작 시 토큰 확인 후 적절한 화면으로 라우팅
- AuthInterceptor 개선: AuthService와 통합하여 토큰 관리 일원화
- 로그아웃 기능 개선: AuthService를 사용한 API 로그아웃 처리
- 대시보드 API 연동: MockDataService에서 실제 API로 완전 전환
  - Dashboard DTO 모델 생성 (OverviewStats, RecentActivity 등)
  - DashboardRemoteDataSource 및 DashboardService 구현
  - OverviewController를 ChangeNotifier 패턴으로 개선
  - OverviewScreenRedesign에 Provider 패턴 적용
- API 통합 진행 상황 문서 업데이트
This commit is contained in:
JiWoong Sul
2025-07-24 15:55:05 +09:00
parent c573096d84
commit a13c485302
24 changed files with 2138 additions and 206 deletions

View File

@@ -0,0 +1,29 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'expiring_license.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
_$ExpiringLicenseImpl _$$ExpiringLicenseImplFromJson(
Map<String, dynamic> json) =>
_$ExpiringLicenseImpl(
id: (json['id'] as num).toInt(),
licenseName: json['license_name'] as String,
companyName: json['company_name'] as String,
expiryDate: DateTime.parse(json['expiry_date'] as String),
daysRemaining: (json['days_remaining'] as num).toInt(),
licenseType: json['license_type'] as String,
);
Map<String, dynamic> _$$ExpiringLicenseImplToJson(
_$ExpiringLicenseImpl instance) =>
<String, dynamic>{
'id': instance.id,
'license_name': instance.licenseName,
'company_name': instance.companyName,
'expiry_date': instance.expiryDate.toIso8601String(),
'days_remaining': instance.daysRemaining,
'license_type': instance.licenseType,
};