filament_verwaltung/lib/controllers/details_controller.dart
2026-01-15 11:40:09 +01:00

57 lines
1.4 KiB
Dart

import 'package:get/get.dart';
import '../model/filament_model.dart';
import '../helpers/filament_repository.dart';
class DetailsController extends GetxController {
Rx<FilamentModel?> filament = Rx<FilamentModel?>(null);
final isEditing = false.obs;
@override
void onInit() {
if (Get.arguments != null && Get.arguments['filament'] != null) {
filament.value = Get.arguments['filament'];
}
super.onInit();
}
void toggleEdit() {
isEditing.value = !isEditing.value;
}
void updateFilament(FilamentModel updatedFilament) {
FilamentRepository.to.updateFilament(updatedFilament);
filament.value = updatedFilament;
isEditing.value = false;
Get.snackbar(
'Erfolg',
'Filament wurde aktualisiert',
snackPosition: SnackPosition.BOTTOM,
);
}
void deleteFilament() {
if (filament.value != null) {
FilamentRepository.to.deleteFilament(filament.value!.id);
Get.back();
Get.snackbar(
'Gelöscht',
'Filament wurde entfernt',
snackPosition: SnackPosition.BOTTOM,
);
}
}
double get remainingWeight {
if (filament.value == null) return 0;
return filament.value!.weight - filament.value!.weightUsed;
}
double get usagePercentage {
if (filament.value == null || filament.value!.weight == 0) return 0;
return (filament.value!.weightUsed / filament.value!.weight) * 100;
}
@override
void onClose() {}
}