import 'package:fikoyt_akcali_v1/apps/finans/core/models/finans.model.dart' as semalar; import 'package:fikoyt_akcali_v1/apps/finans/core/services/finans.servis.dart'; import 'package:fikoyt_akcali_v1/apps/finans/core/services/para_birimleri_service.dart'; import 'package:fikoyt_ui/fikoyt_ui.dart'; import 'package:isar/isar.dart'; class HesaplarService extends GetxService { Isar? isar; RxBool guncelle = RxBool(false); ParaBirimleriService? logicParaBirimi; Rx hesap = Rx(semalar.Hesap()); FinansServis? finansServis; Rx> hesaplar = Rx>([]); RxInt limit = RxInt(3); RxInt sayi = RxInt(3); @override void onInit() async { super.onInit(); finansServis = FikoYTCoreService.servisler.getServis(); logicParaBirimi = Get.put(ParaBirimleriService()); isar = finansServis?.isar; // TODO: implement onInit await finansServis?.aktifKullanici.value?.hesaplar.load(); } Future> listeAl(int page, int limit) async { hesaplar.value = await finansServis?.aktifKullanici.value?.hesaplar.filter().offset(page * limit).limit(limit).findAll() ?? []; return hesaplar.value; } List listeAlSync(int page, int limit) { hesaplar.value = finansServis?.aktifKullanici.value?.hesaplar.filter().offset(page * limit).limit(limit).findAllSync() ?? []; return hesaplar.value; } Future hesapById(int hesapId) async { return finansServis?.aktifKullanici.value?.hesaplar.filter().idEqualTo(hesapId).findFirst(); } semalar.Hesap? hesapByIdSync(int hesapId) { return finansServis?.aktifKullanici.value?.hesaplar.filter().idEqualTo(hesapId).findFirstSync(); } Future kaydet({semalar.Hesap? hsp, semalar.IHesapTipi hesapTipi = semalar.IHesapTipi.nakit}) async { hsp ??= hesap.value; return isar?.writeTxn(() async { hsp!.hesapTipi = hesapTipi; hsp.sahibi.add(finansServis!.aktifKullanici.value!); int? id = await isar?.hesaps.put(hsp); hsp.sahibi.save(); hsp.paraBirimi.save(); hesap.value = semalar.Hesap(); return id; }); } Future hesapSilById(int hesapId) async { return await isar?.hesaps .where() .filter() .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) .idEqualTo(hesapId) .deleteFirst(); } bool? hesapSilByIdSync(int hesapId) { return isar?.hesaps .where() .filter() .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) .idEqualTo(hesapId) .deleteFirstSync(); } }