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 json) { final count = json['_count'] as Map?; 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 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), ); }