import 'package:fikoyt_akcali_v1/apps/finans/core/models/finans.model.dart'; import 'package:fikoyt_akcali_v1/apps/finans/core/services/finans.servis.dart'; import 'package:fikoyt_akcali_v1/apps/finans/core/services/kok.servis.dart'; import 'package:fikoyt_akcali_v1/apps/finans/core/services/kok.sinif.dart'; import 'package:fikoyt_ui/fikoyt_ui.dart'; import 'package:isar/isar.dart'; // class KategorilerService111 extends GetxService { // Rx kayit = Rx(Kategori()); // Rx kayitEkleGoster = Rx(false); // Rx guncelle = Rx(false); // FinansServis? finansServis = FikoYTCoreService.servisler.getServis(); // Isar? isar = FikoYTCoreService.servisler.getServis()?.isar; // kayitKontrol() { // kayit.value?.ismi != ""; // } // kaydet({required Kategori kyt, Kategori? ustKyt}) { // isar?.writeTxn(() async { // if (kyt.aciklama == "") { // kyt.aciklama = null; // } // kyt.sahibi.value = finansServis?.aktifKullanici.value; // kyt.ustKategori.value = ustKyt; // await isar?.kategoris.put(kyt); // await kyt.sahibi.save(); // await kyt.ustKategori.save(); // kayit.value = Kategori(); // kayitEkleGoster.value = false; // kayitEkleGoster.refresh(); // kayit.refresh(); // guncelle.refresh(); // }); // } // sil({required Kategori kyt}) { // isar?.writeTxn(() async { // await isar?.kategoris.delete(kyt.id); // kayit.value = Kategori(); // kayitEkleGoster.value = false; // kayitEkleGoster.refresh(); // kayit.refresh(); // guncelle.refresh(); // }); // } // Future> listeAl(int page, int limit, {Kategori? ustKyt}) async { // if (ustKyt != null) { // return await isar?.kategoris // .where() // .filter() // .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) // .ustKategori((q) => q.idEqualTo(ustKyt.id)) // .sortByIsmi() // .offset(page * limit) // .limit(limit) // .findAll() ?? // []; // } else { // return await isar?.kategoris // .where() // .filter() // .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) // .ustKategoriIsNull() // .sortByIsmi() // .offset(page * limit) // .limit(limit) // .findAll() ?? // []; // } // } // List listeAlSync(int page, int limit, {Kategori? ustKyt}) { // if (ustKyt != null) { // return isar?.kategoris // .where() // .filter() // .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) // .ustKategori((q) => q.idEqualTo(ustKyt.id)) // .sortByIsmi() // .offset(page * limit) // .limit(limit) // .findAllSync() ?? // []; // } else { // return isar?.kategoris // .where() // .filter() // .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) // .ustKategoriIsNull() // .sortByIsmi() // .offset(page * limit) // .limit(limit) // .findAllSync() ?? // []; // } // } // Future byId(int id) async { // return await isar?.kategoris // .where() // .filter() // .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) // .idEqualTo(id) // .findFirst(); // } // Kategori? byIdSync(int id) { // return isar?.kategoris // .where() // .filter() // .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) // .idEqualTo(id) // .findFirstSync(); // } // } class KategorilerService extends IsarKokSinif { Rx ustKategori = Rx(null); @override Isar getIsar() => FikoYTCoreService.servisler.getServis()!.isar!; @override IsarCollection get koleksiyon => isar.kategoris; KategorilerService() { sayi = 5; } // @override // void onInit() { // sayi.value = 5; // super.onInit(); // } @override QueryBuilder getQuery() { final aktif = FikoYTCoreService.servisler.getServis()?.aktifKullanici.value; var sorgu = koleksiyon.where().filter().sahibi((q) => q.idEqualTo(aktif?.id ?? -1)); // ustKategori filtresi tek bir yerde kontrol edilir if (ustKategori.value?.id != null) { sorgu = sorgu.and().ustKategori((q) => q.idEqualTo(ustKategori.value!.id)); } else { sorgu = sorgu.and().ustKategoriIsNull(); } // Arama metni varsa ismi'ne göre filtreleme yapılır if (aramaMetni.isNotEmpty) { sorgu = sorgu.and().ismiContains(aramaMetni, caseSensitive: false); } return sorgu; } // @override // QueryBuilder applyAramaFiltre( // QueryBuilder q, // String arama, // ) { // } @override Future iliskileriYukle(List liste) async { for (var h in liste) { await h.ustKategori.load(); await h.sahibi.load(); } } @override Future beforeEkle(Kategori item) async { item.sahibi.value = FikoYTCoreService.servisler.getServis()!.aktifKullanici.value; return item; } @override Future afterEkle(Kategori item) async { await item.sahibi.save(); await item.ustKategori.save(); } } class AltKategorilerService extends IsarKokSinif { Kategori kategori; @override Isar getIsar() => FikoYTCoreService.servisler.getServis()!.isar!; @override IsarCollection get koleksiyon => isar.kategoris; AltKategorilerService({required this.kategori}) { sayi = 5; } // @override // void onInit() { // sayi.value = 3; // super.onInit(); // } @override QueryBuilder getQuery() { final aktif = FikoYTCoreService.servisler.getServis()?.aktifKullanici.value; // ustKategori.value?.ustKategori.loadSync(); var sorgu = kategori.altKategoriler.filter(); // TODO: implement applyAramaFiltre sorgu = sorgu.ustKategori((q) { return q.idEqualTo(kategori.id); }); sorgu = sorgu.ismiContains(aramaMetni, caseSensitive: false); // return q.ismiContains(arama, caseSensitive: false); return sorgu; } // @override // QueryBuilder applyAramaFiltre( // QueryBuilder q, // String arama, // ) { // } @override Future iliskileriYukle(List liste) async { for (var h in liste) { await h.ustKategori.load(); await h.sahibi.load(); } } @override Future beforeEkle(Kategori item) async { item.sahibi.value = FikoYTCoreService.servisler.getServis()!.aktifKullanici.value; return item; } @override Future afterEkle(Kategori item) async { await item.sahibi.save(); await item.ustKategori.save(); } }