backup_state.model.dart 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import 'dart:convert';
  2. import 'package:dio/dio.dart';
  3. import 'package:immich_mobile/shared/models/server_info.model.dart';
  4. enum BackUpProgressEnum { idle, inProgress, done }
  5. class BackUpState {
  6. final BackUpProgressEnum backupProgress;
  7. final int totalAssetCount;
  8. final int assetOnDatabase;
  9. final int backingUpAssetCount;
  10. final double progressInPercentage;
  11. final CancelToken cancelToken;
  12. final ServerInfo serverInfo;
  13. BackUpState({
  14. required this.backupProgress,
  15. required this.totalAssetCount,
  16. required this.assetOnDatabase,
  17. required this.backingUpAssetCount,
  18. required this.progressInPercentage,
  19. required this.cancelToken,
  20. required this.serverInfo,
  21. });
  22. BackUpState copyWith({
  23. BackUpProgressEnum? backupProgress,
  24. int? totalAssetCount,
  25. int? assetOnDatabase,
  26. int? backingUpAssetCount,
  27. double? progressInPercentage,
  28. CancelToken? cancelToken,
  29. ServerInfo? serverInfo,
  30. }) {
  31. return BackUpState(
  32. backupProgress: backupProgress ?? this.backupProgress,
  33. totalAssetCount: totalAssetCount ?? this.totalAssetCount,
  34. assetOnDatabase: assetOnDatabase ?? this.assetOnDatabase,
  35. backingUpAssetCount: backingUpAssetCount ?? this.backingUpAssetCount,
  36. progressInPercentage: progressInPercentage ?? this.progressInPercentage,
  37. cancelToken: cancelToken ?? this.cancelToken,
  38. serverInfo: serverInfo ?? this.serverInfo,
  39. );
  40. }
  41. @override
  42. String toString() {
  43. return 'BackUpState(backupProgress: $backupProgress, totalAssetCount: $totalAssetCount, assetOnDatabase: $assetOnDatabase, backingUpAssetCount: $backingUpAssetCount, progressInPercentage: $progressInPercentage, cancelToken: $cancelToken, serverInfo: $serverInfo)';
  44. }
  45. @override
  46. bool operator ==(Object other) {
  47. if (identical(this, other)) return true;
  48. return other is BackUpState &&
  49. other.backupProgress == backupProgress &&
  50. other.totalAssetCount == totalAssetCount &&
  51. other.assetOnDatabase == assetOnDatabase &&
  52. other.backingUpAssetCount == backingUpAssetCount &&
  53. other.progressInPercentage == progressInPercentage &&
  54. other.cancelToken == cancelToken &&
  55. other.serverInfo == serverInfo;
  56. }
  57. @override
  58. int get hashCode {
  59. return backupProgress.hashCode ^
  60. totalAssetCount.hashCode ^
  61. assetOnDatabase.hashCode ^
  62. backingUpAssetCount.hashCode ^
  63. progressInPercentage.hashCode ^
  64. cancelToken.hashCode ^
  65. serverInfo.hashCode;
  66. }
  67. }