Docs: Schreib Docs

This commit is contained in:
2025-12-25 16:32:50 +01:00
parent 05a5bddf09
commit 8a612fc27c
7 changed files with 109 additions and 93 deletions

View File

@@ -5,55 +5,74 @@ import 'time_frame_enum.dart';
part 'drift_database.g.dart';
/// Eine Tabelle für Konten.
class Accounts extends Table {
/// Eindeutige ID des Kontos
IntColumn get id => integer().autoIncrement()();
/// Name des Kontos
TextColumn get name => text().withDefault(const Constant(''))();
}
/// Eine Tabelle für einzelne Transaktionen.
class Transactions extends Table {
/// Eindeutige ID der Transaktion
IntColumn get id => integer().autoIncrement()();
/// Name/Beschreibung der Transaktion
TextColumn get name => text().withDefault(const Constant(''))();
/// Datum der Transaktion
DateTimeColumn get date => dateTime().nullable()();
RealColumn get amount => real().withDefault(const Constant(0.0))();
/// Betrag der Transaktion
RealColumn get amount => real().withDefault(const Constant(0))();
/// Fremdschlüssel zum zugehörigen Konto
IntColumn get accountId => integer().references(Accounts, #id)();
/// Fremdschlüssel zur zugehörigen wiederkehrenden Transaktion,
/// falls vorhanden
IntColumn get recurringTransactionId =>
integer().nullable().references(RecurringTransactions, #id)();
}
/// Eine Tabelle für wiederkehrende Transaktionen.
class RecurringTransactions extends Table {
/// Eindeutige ID der wiederkehrenden Transaktion
IntColumn get id => integer().autoIncrement()();
/// Name/Beschreibung der wiederkehrenden Transaktion
TextColumn get name => text().withDefault(const Constant(''))();
/// Startdatum der wiederkehrenden Transaktion
DateTimeColumn get startDate => dateTime().nullable()();
/// Zeitlicher Rahmen für die Wiederholung
IntColumn get timeFrame => intEnum<TimeFrameEnum>()();
RealColumn get amount => real().withDefault(const Constant(0.0))();
/// Betrag der wiederkehrenden Transaktion
RealColumn get amount => real().withDefault(const Constant(0))();
/// Fremdschlüssel zum zugehörigen Konto
IntColumn get accountId => integer().references(Accounts, #id)();
}
/// Hauptklasse für die Drift-Datenbank der Anwendung.
@DriftDatabase(tables: [Accounts, Transactions, RecurringTransactions])
class AppDatabase extends _$AppDatabase {
/// Erstellt eine neue Datenbankinstanz
AppDatabase() : super(_openConnection());
@override
int get schemaVersion => 1;
static QueryExecutor _openConnection() {
return driftDatabase(
name: 'dragon_ledger',
web: DriftWebOptions(
sqlite3Wasm: Uri.parse('sqlite3.wasm'),
driftWorker: Uri.parse('drift_worker.js'),
),
);
}
/// Öffnet die Datenbankverbindung
static QueryExecutor _openConnection() => driftDatabase(
name: 'dragon_ledger',
web: DriftWebOptions(
sqlite3Wasm: Uri.parse('sqlite3.wasm'),
driftWorker: Uri.parse('drift_worker.js'),
),
);
}