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),
);
}