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.sinif.dart'; import 'package:fikoyt_ui/fikoyt_ui.dart'; import 'package:isar/isar.dart'; class EtiketlerService extends GetxService { Rx kayit = Rx(Etiket()); 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 Etiket kyt, Etiket? ustKyt}) { isar?.writeTxn(() async { if (kyt.aciklama == "") { kyt.aciklama = null; } kyt.sahibi.value = finansServis?.aktifKullanici.value; await isar?.etikets.put(kyt); await kyt.sahibi.save(); kayit.value = Etiket(); kayitEkleGoster.value = false; kayitEkleGoster.refresh(); kayit.refresh(); guncelle.refresh(); }); } sil({required Etiket kyt}) { isar?.writeTxn(() async { await isar?.etikets.delete(kyt.id); kayit.value = Etiket(); kayitEkleGoster.value = false; kayitEkleGoster.refresh(); kayit.refresh(); guncelle.refresh(); }); } Future> listeAl(int page, int limit, {Etiket? ustKyt}) async { if (ustKyt != null) { return await isar?.etikets .where() .filter() .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) .sortByIsmi() .offset(page * limit) .limit(limit) .findAll() ?? []; } else { return await isar?.etikets .where() .filter() .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) .sortByIsmi() .offset(page * limit) .limit(limit) .findAll() ?? []; } } List listeAlSync(int page, int limit, {Etiket? ustKyt}) { if (ustKyt != null) { return isar?.etikets .where() .filter() .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) .sortByIsmi() .offset(page * limit) .limit(limit) .findAllSync() ?? []; } else { return isar?.etikets .where() .filter() .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) .sortByIsmi() .offset(page * limit) .limit(limit) .findAllSync() ?? []; } } Future byId(int id) async { return await isar?.etikets .where() .filter() .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) .idEqualTo(id) .findFirst(); } Etiket? byIdSync(int id) { return isar?.etikets .where() .filter() .sahibi((q) => q.idEqualTo(finansServis?.aktifKullanici.value?.id ?? -1)) .idEqualTo(id) .findFirstSync(); } } class AltKategorilerService extends IsarKokSinif { Etiket 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.sahibi.load(); } } @override Future beforeEkle(Etiket item) async { item.sahibi.value = FikoYTCoreService.servisler.getServis()!.aktifKullanici.value; return item; } @override Future afterEkle(Etiket item) async { await item.sahibi.save(); } }