home_controller.dart 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import 'package:flutter_riverpod/flutter_riverpod.dart';
  2. import '../../app.dart';
  3. class HomeSummary {
  4. final int expensePending;
  5. final int overtimePending;
  6. final int vehiclePending;
  7. final int logCount;
  8. final int announcementCount;
  9. final int announcementUnread;
  10. final int totalCount;
  11. const HomeSummary({
  12. required this.expensePending,
  13. required this.overtimePending,
  14. required this.vehiclePending,
  15. required this.logCount,
  16. required this.announcementCount,
  17. this.announcementUnread = 0,
  18. required this.totalCount,
  19. });
  20. factory HomeSummary.fromJson(dynamic json) {
  21. final map = json as Map<String, dynamic>;
  22. return HomeSummary(
  23. expensePending: map['expensePending'] as int? ?? 0,
  24. overtimePending: map['overtimePending'] as int? ?? 0,
  25. vehiclePending: map['vehiclePending'] as int? ?? 0,
  26. logCount: map['logCount'] as int? ?? 0,
  27. announcementCount: map['announcementCount'] as int? ?? 0,
  28. announcementUnread: map['announcementUnread'] as int? ?? 0,
  29. totalCount: map['totalCount'] as int? ?? 0,
  30. );
  31. }
  32. }
  33. final homeSummaryProvider = FutureProvider<HomeSummary>((ref) async {
  34. final client = ref.read(apiClientProvider);
  35. final response =
  36. await client.get('/home/summary', fromJsonT: HomeSummary.fromJson);
  37. return response.data!;
  38. });