import 'dart:io'; import 'package:isar/isar.dart'; import 'package:path_provider/path_provider.dart'; import '../Entities/account.dart'; import '../Entities/recurring_transaction.dart'; import '../Entities/transaction.dart'; /// Ein Service um auf die Datenbank zuzugreifen class IsarService { /// Gibt eine gültige Instanz der Klasse zurück factory IsarService() => _instance; /// Initialisiert eine neue Instanz dieser Klasse IsarService._internal(); static final _instance = IsarService._internal(); Isar? _isar; /// Gibt die Datenbank zurück. Future getDatabase() async { if (_isar == null) { await _initializeDatabase(); } return _isar!; } /// Initialisiert die Datenbank Future _initializeDatabase() async { final Directory dir = await getApplicationDocumentsDirectory(); _isar = await Isar.open([ AccountSchema, TransactionSchema, RecurringTransactionSchema, ], directory: dir.path); } }