48 lines
1.2 KiB
Dart
48 lines
1.2 KiB
Dart
class DriveFolder {
|
|
const DriveFolder({
|
|
required this.id,
|
|
required this.name,
|
|
this.childCount = 0,
|
|
this.fileCount = 0,
|
|
});
|
|
final String id;
|
|
final String name;
|
|
final int childCount;
|
|
final int fileCount;
|
|
|
|
factory DriveFolder.fromJson(Map<String, dynamic> json) {
|
|
final count = json['_count'] as Map<String, dynamic>?;
|
|
return DriveFolder(
|
|
id: json['id'] as String,
|
|
name: json['name'] as String,
|
|
childCount: count?['children'] as int? ?? 0,
|
|
fileCount: count?['files'] as int? ?? 0,
|
|
);
|
|
}
|
|
}
|
|
|
|
class DriveFile {
|
|
const DriveFile({
|
|
required this.id,
|
|
required this.name,
|
|
required this.mimeType,
|
|
required this.sizeBytes,
|
|
required this.createdAt,
|
|
});
|
|
final String id;
|
|
final String name;
|
|
final String mimeType;
|
|
final int sizeBytes;
|
|
final DateTime createdAt;
|
|
bool get isImage => mimeType.startsWith('image/');
|
|
bool get isVideo => mimeType.startsWith('video/');
|
|
|
|
factory DriveFile.fromJson(Map<String, dynamic> json) => DriveFile(
|
|
id: json['id'] as String,
|
|
name: json['originalName'] as String,
|
|
mimeType: json['mimeType'] as String,
|
|
sizeBytes: json['sizeBytes'] as int,
|
|
createdAt: DateTime.parse(json['createdAt'] as String),
|
|
);
|
|
}
|