53 lines
1.6 KiB
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;
|
|
}
|
|
}
|