import 'dart:io'; import 'dart:typed_data'; import 'package:mime/mime.dart'; import 'package:path/path.dart' as p; class FilesModel { final String path; late String basename; late String extname; late File main; final bool isRecorded; final bool? audio; final bool? image; final bool? network; final Uint8List? bytes; final Duration? duration; FilesModel( this.path, { final String? name, this.isRecorded = false, this.audio, this.image, this.network, this.bytes, this.duration, }) { basename = name ?? p.basename(path); extname = p.extension(path); main = File(path); } bool isAudio() { return audio ?? lookupMimeType(path)?.startsWith('audio/') ?? false; } bool isImage() { return image ?? lookupMimeType(path)?.startsWith('image/') ?? false; } bool isNetwork() { return network ?? path.startsWith('blob:') || path.startsWith('/uploads'); } }