Feat: Fügt IsarService und Repositories hinzu

This commit is contained in:
2025-12-22 03:33:37 +01:00
parent 277800a578
commit 92fec89333
4 changed files with 364 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
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<Isar> getDatabase() async {
if (_isar == null) {
await _initializeDatabase();
}
return _isar!;
}
/// Initialisiert die Datenbank
Future<void> _initializeDatabase() async {
final Directory dir = await getApplicationDocumentsDirectory();
_isar = await Isar.open([
AccountSchema,
TransactionSchema,
RecurringTransactionSchema,
], directory: dir.path);
}
}