mirror of
https://github.com/immich-app/immich.git
synced 2025-11-20 08:42:35 +09:00
Some checks are pending
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Docker / pre-job (push) Waiting to run
Docker / Re-Tag ML () (push) Blocked by required conditions
Docker / Re-Tag ML (-armnn) (push) Blocked by required conditions
Docker / Re-Tag ML (-cuda) (push) Blocked by required conditions
Docker / Re-Tag ML (-openvino) (push) Blocked by required conditions
Docker / Re-Tag ML (-rknn) (push) Blocked by required conditions
Docker / Re-Tag ML (-rocm) (push) Blocked by required conditions
Docker / Re-Tag Server () (push) Blocked by required conditions
Docker / Build and Push ML (armnn, linux/arm64, -armnn) (push) Blocked by required conditions
Docker / Build and Push ML (cpu, ) (push) Blocked by required conditions
Docker / Build and Push ML (cuda, linux/amd64, -cuda) (push) Blocked by required conditions
Docker / Build and Push ML (openvino, linux/amd64, -openvino) (push) Blocked by required conditions
Docker / Build and Push ML (rknn, linux/arm64, -rknn) (push) Blocked by required conditions
Docker / Build and Push ML (rocm, linux/amd64, {"linux/amd64": "mich"}, -rocm) (push) Blocked by required conditions
Docker / Build and Push Server (push) Blocked by required conditions
Docker / Docker Build & Push Server Success (push) Blocked by required conditions
Docker / Docker Build & Push ML Success (push) Blocked by required conditions
Docs build / pre-job (push) Waiting to run
Docs build / Docs Build (push) Blocked by required conditions
Static Code Analysis / pre-job (push) Waiting to run
Static Code Analysis / Run Dart Code Analysis (push) Blocked by required conditions
Static Code Analysis / zizmor (push) Waiting to run
Test / pre-job (push) Waiting to run
Test / Test & Lint Server (push) Blocked by required conditions
Test / Unit Test CLI (push) Blocked by required conditions
Test / Unit Test CLI (Windows) (push) Blocked by required conditions
Test / Lint Web (push) Blocked by required conditions
Test / Test Web (push) Blocked by required conditions
Test / Test i18n (push) Blocked by required conditions
Test / End-to-End Lint (push) Blocked by required conditions
Test / Medium Tests (Server) (push) Blocked by required conditions
Test / End-to-End Tests (Server & CLI) (ubuntu-24.04-arm) (push) Blocked by required conditions
Test / End-to-End Tests (Server & CLI) (ubuntu-latest) (push) Blocked by required conditions
Test / End-to-End Tests (Web) (ubuntu-24.04-arm) (push) Blocked by required conditions
Test / End-to-End Tests (Web) (ubuntu-latest) (push) Blocked by required conditions
Test / End-to-End Tests Success (push) Blocked by required conditions
Test / Unit Test Mobile (push) Blocked by required conditions
Test / Unit Test ML (push) Blocked by required conditions
Test / .github Files Formatting (push) Blocked by required conditions
Test / ShellCheck (push) Waiting to run
Test / OpenAPI Clients (push) Waiting to run
Test / SQL Schema Checks (push) Waiting to run
96 lines
2.6 KiB
Dart
96 lines
2.6 KiB
Dart
// ignore_for_file: public_member_api_docs, sort_constructors_first
|
|
import 'dart:convert';
|
|
|
|
class CurrentUploadAsset {
|
|
final String id;
|
|
final DateTime fileCreatedAt;
|
|
final String fileName;
|
|
final String fileType;
|
|
final int? fileSize;
|
|
final bool? iCloudAsset;
|
|
|
|
const CurrentUploadAsset({
|
|
required this.id,
|
|
required this.fileCreatedAt,
|
|
required this.fileName,
|
|
required this.fileType,
|
|
this.fileSize,
|
|
this.iCloudAsset,
|
|
});
|
|
|
|
@pragma('vm:prefer-inline')
|
|
bool get isIcloudAsset => iCloudAsset != null && iCloudAsset!;
|
|
|
|
CurrentUploadAsset copyWith({
|
|
String? id,
|
|
DateTime? fileCreatedAt,
|
|
String? fileName,
|
|
String? fileType,
|
|
int? fileSize,
|
|
bool? iCloudAsset,
|
|
}) {
|
|
return CurrentUploadAsset(
|
|
id: id ?? this.id,
|
|
fileCreatedAt: fileCreatedAt ?? this.fileCreatedAt,
|
|
fileName: fileName ?? this.fileName,
|
|
fileType: fileType ?? this.fileType,
|
|
fileSize: fileSize ?? this.fileSize,
|
|
iCloudAsset: iCloudAsset ?? this.iCloudAsset,
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toMap() {
|
|
return <String, dynamic>{
|
|
'id': id,
|
|
'fileCreatedAt': fileCreatedAt.millisecondsSinceEpoch,
|
|
'fileName': fileName,
|
|
'fileType': fileType,
|
|
'fileSize': fileSize,
|
|
'iCloudAsset': iCloudAsset,
|
|
};
|
|
}
|
|
|
|
factory CurrentUploadAsset.fromMap(Map<String, dynamic> map) {
|
|
return CurrentUploadAsset(
|
|
id: map['id'] as String,
|
|
fileCreatedAt: DateTime.fromMillisecondsSinceEpoch(map['fileCreatedAt'] as int),
|
|
fileName: map['fileName'] as String,
|
|
fileType: map['fileType'] as String,
|
|
fileSize: map['fileSize'] as int,
|
|
iCloudAsset: map['iCloudAsset'] != null ? map['iCloudAsset'] as bool : null,
|
|
);
|
|
}
|
|
|
|
String toJson() => json.encode(toMap());
|
|
|
|
factory CurrentUploadAsset.fromJson(String source) =>
|
|
CurrentUploadAsset.fromMap(json.decode(source) as Map<String, dynamic>);
|
|
|
|
@override
|
|
String toString() {
|
|
return 'CurrentUploadAsset(id: $id, fileCreatedAt: $fileCreatedAt, fileName: $fileName, fileType: $fileType, fileSize: $fileSize, iCloudAsset: $iCloudAsset)';
|
|
}
|
|
|
|
@override
|
|
bool operator ==(covariant CurrentUploadAsset other) {
|
|
if (identical(this, other)) return true;
|
|
|
|
return other.id == id &&
|
|
other.fileCreatedAt == fileCreatedAt &&
|
|
other.fileName == fileName &&
|
|
other.fileType == fileType &&
|
|
other.fileSize == fileSize &&
|
|
other.iCloudAsset == iCloudAsset;
|
|
}
|
|
|
|
@override
|
|
int get hashCode {
|
|
return id.hashCode ^
|
|
fileCreatedAt.hashCode ^
|
|
fileName.hashCode ^
|
|
fileType.hashCode ^
|
|
fileSize.hashCode ^
|
|
iCloudAsset.hashCode;
|
|
}
|
|
}
|