import 'dart:io'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; import 'package:path/path.dart' as p; import 'package:path_provider/path_provider.dart'; import 'modeller/ayarlar.dart'; import 'modeller/bolum.dart'; import 'modeller/film_proje.dart'; import 'modeller/karakter.dart'; import 'modeller/lora_kaydi.dart'; import 'modeller/muzik_sablonu.dart'; import 'modeller/oturum_taslagi.dart'; import 'modeller/sahne.dart'; import 'modeller/uretim_kaydi.dart'; import '../cekirdek/sabitler.dart'; late final Isar isar; final ayarlarProvider = NotifierProvider(AyarlarNotifier.new); Future isarBaslat() async { final dizin = await getApplicationSupportDirectory(); final dbDizini = Directory(p.join(dizin.path, 'fikoyt_studyo_db')); await dbDizini.create(recursive: true); isar = await Isar.open( [ UretimKaydiSchema, MuzikSablonuSchema, AyarlarSchema, OturumTaslagiSchema, LoraKaydiSchema, KarakterSchema, FilmProjeSchema, BolumSchema, SahneSchema, ], directory: dbDizini.path, name: 'fikoyt', ); if (await isar.ayarlars.get(1) == null) { await isar.writeTxn(() => isar.ayarlars.put( Ayarlar()..ciktiKlasoru = Sabitler.varsayilanCiktiKlasoru, )); } } class AyarlarNotifier extends Notifier { @override Ayarlar build() => isar.ayarlars.getSync(1) ?? Ayarlar(); Future guncelle(void Function(Ayarlar a) degistir) async { final a = isar.ayarlars.getSync(1) ?? Ayarlar(); degistir(a); await isar.writeTxn(() => isar.ayarlars.put(a)); state = isar.ayarlars.getSync(1)!; } }