didvan-app/lib/models/ai/files_model.dart

44 lines
898 B
Dart

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;
FilesModel(
this.path, {
final String? name,
this.isRecorded = false,
this.audio,
this.image,
this.network,
this.bytes,
}) {
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');
}
}