TIFNGK_E41222905/lib/feature/auth/choose_class/choose_class_controller.dart

53 lines
1.6 KiB
Dart

import 'package:epic_story_app/core/routes/epic_routes.dart';
import 'package:epic_story_app/core/utils/epic_log.dart';
import 'package:epic_story_app/domain/entities/children_entity.dart';
import 'package:epic_story_app/domain/usecases/children_usecase.dart';
import 'package:get/get.dart';
class ChooseClassController extends GetxController {
var selectedClass = 0.obs;
late ChildrenEntity argument;
final ChildrenUsecase childrenUsecase;
ChooseClassController({
required this.childrenUsecase,
});
@override
void onInit() {
super.onInit();
argument = Get.arguments;
ever(selectedClass, (classValue) {
EpicLog.info("Selected class changed: $classValue");
});
}
void save() async {
if (selectedClass.value == 0) {
Get.snackbar('Error', 'Pilih kelas terlebih dahulu');
return;
}
var currentChildren = await childrenUsecase.getCurrentChildren();
if (currentChildren == null) return;
var newChildren = currentChildren.copyWith(
gender: argument.gender,
dateBirth: argument.dateBirth,
gradeClass: selectedClass.value,
updatedAt: DateTime.now(),
);
EpicLog.info("gender : ${newChildren.gender}");
EpicLog.info("date birth : ${newChildren.dateBirth}");
EpicLog.info("grade class : ${newChildren.gradeClass}");
await childrenUsecase.addOrUpdateChildrenLocal(children: newChildren);
await childrenUsecase.addOrUpdateChildrenRemote(children: newChildren);
Get.toNamed(EpicRoutes.navigation);
}
void selectClass(int code) {
selectedClass.value = code;
}
}