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

55 lines
1.1 KiB
Dart

import 'dart:io';
import 'package:flutter/services.dart';
import 'package:mime/mime.dart';
import 'package:path/path.dart' as p;
class FilesModel {
final String path;
late String? name;
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, {
this.name,
this.isRecorded = false,
this.audio,
this.image,
this.network,
this.bytes,
this.duration,
}) {
name = name ?? p.basename(path);
extname = path.isNotEmpty
? p.extension(path)
: name != null
? p.extension(name!)
: '';
main = File(path);
}
bool isAudio() {
return audio ??
(lookupMimeType(path)?.startsWith('audio/') ?? false) ||
(lookupMimeType(path)?.startsWith('video/') ?? false);
}
bool isImage() {
return image ??
lookupMimeType(path)?.startsWith('image/') ??
false || path.contains(".png");
}
bool isNetwork() {
return network ?? path.startsWith('blob:') || path.startsWith('/uploads');
}
}