OTMovilGasfiter/lib/services/image_storage_service.dart
2026-08-02 15:50:25 -04:00

51 lines
1.5 KiB
Dart

import 'dart:io';
import 'package:path/path.dart' as p;
import 'package:path_provider/path_provider.dart';
import 'package:uuid/uuid.dart';
class ImageStorageService {
ImageStorageService({Uuid? uuid}) : _uuid = uuid ?? const Uuid();
final Uuid _uuid;
Future<String> storeImage({
required String sourcePath,
required String workOrderId,
required String taskId,
}) async {
final documents = await getApplicationDocumentsDirectory();
final destinationDirectory = Directory(
p.join(documents.path, 'ot_movil', 'images', workOrderId, taskId),
);
await destinationDirectory.create(recursive: true);
final sourceExtension = p.extension(sourcePath).toLowerCase();
final extension = sourceExtension.isEmpty ? '.jpg' : sourceExtension;
final destinationPath = p.join(
destinationDirectory.path,
'${_uuid.v4()}$extension',
);
await File(sourcePath).copy(destinationPath);
return destinationPath;
}
Future<void> deleteFiles(Iterable<String> paths) async {
for (final path in paths) {
final file = File(path);
if (await file.exists()) {
await file.delete();
}
}
}
Future<void> deleteWorkOrderImages(String workOrderId) async {
final documents = await getApplicationDocumentsDirectory();
final directory = Directory(
p.join(documents.path, 'ot_movil', 'images', workOrderId),
);
if (await directory.exists()) {
await directory.delete(recursive: true);
}
}
}