Feat: Fügt IsarService und Repositories hinzu
This commit is contained in:
40
lib/Services/isar_service.dart
Normal file
40
lib/Services/isar_service.dart
Normal 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user