From 6a7588c3d42033fb55128c9ae0028a8d3c4bcfb3 Mon Sep 17 00:00:00 2001 From: DragonSlayer_14 Date: Fri, 2 Jan 2026 01:03:06 +0100 Subject: [PATCH] =?UTF-8?q?Feat:=20F=C3=BCgt=20eine=20Tabelle=20f=C3=BCr?= =?UTF-8?q?=20Synchronisationsstatusmeldungen=20hinzu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/Entities/drift_database.dart | 22 +++++++++++++-- lib/Entities/drift_database.g.dart | 42 +++++++++++++--------------- lib/Entities/sync_log_type_enum.dart | 15 ++++++++++ 3 files changed, 53 insertions(+), 26 deletions(-) create mode 100644 lib/Entities/sync_log_type_enum.dart diff --git a/lib/Entities/drift_database.dart b/lib/Entities/drift_database.dart index ba1ea19..712c929 100644 --- a/lib/Entities/drift_database.dart +++ b/lib/Entities/drift_database.dart @@ -1,6 +1,7 @@ import 'package:drift/drift.dart'; import 'package:drift_flutter/drift_flutter.dart'; +import 'sync_log_type_enum.dart'; import 'time_frame_enum.dart'; part 'drift_database.g.dart'; @@ -13,7 +14,7 @@ class Accounts extends Table { /// Name des Kontos TextColumn get name => text().withDefault(const Constant(''))(); - /// Wann das Konto das letzte mal geupdated wurde. + /// Wann das Konto das letzte mal geupdated wurde DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)(); } @@ -42,7 +43,7 @@ class Transactions extends Table { IntColumn get recurringTransactionId => integer().nullable().references(RecurringTransactions, #id)(); - /// Wann die Transaktion das letzte mal geupdated wurde. + /// Wann die Transaktion das letzte mal geupdated wurde DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)(); } @@ -66,7 +67,22 @@ class RecurringTransactions extends Table { /// Fremdschlüssel zum zugehörigen Konto IntColumn get accountId => integer().references(Accounts, #id)(); - /// Wann die wiederkehrende Transaktion das letzte mal geupdated wurde. + /// Wann die wiederkehrende Transaktion das letzte mal geupdated wurde + DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)(); +} + +/// Eine Tabelle um den Status der Synchronisation zu loggen +class SyncLog extends Table { + /// Eindeutige ID des SyncLogs + IntColumn get id => integer().autoIncrement()(); + + /// Der Typ des SyncLogs + IntColumn get type => intEnum()(); + + /// Die Beschreibung der Eintragung des SyncLogs + TextColumn get description => text().withDefault(const Constant(''))(); + + /// Wann dieser SyncLog das letzte mal geupdated wurde DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)(); } diff --git a/lib/Entities/drift_database.g.dart b/lib/Entities/drift_database.g.dart index 5dbe1cb..540bd7a 100644 --- a/lib/Entities/drift_database.g.dart +++ b/lib/Entities/drift_database.g.dart @@ -43,7 +43,6 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { requiredDuringInsert: false, defaultValue: currentDateAndTime, ); - @override List get $columns => [id, name, updatedAt]; @override @@ -110,9 +109,8 @@ class Account extends DataClass implements Insertable { /// Name des Kontos final String name; - /// Wann das Konto das letzte mal geupdated wurde. + /// Wann das Konto das letzte mal geupdated wurde final DateTime updatedAt; - const Account({ required this.id, required this.name, @@ -172,8 +170,9 @@ class Account extends DataClass implements Insertable { @override String toString() { return (StringBuffer('Account(') - ..write('id: $id, ')..write('name: $name, ')..write( - 'updatedAt: $updatedAt') + ..write('id: $id, ') + ..write('name: $name, ') + ..write('updatedAt: $updatedAt') ..write(')')) .toString(); } @@ -245,8 +244,9 @@ class AccountsCompanion extends UpdateCompanion { @override String toString() { return (StringBuffer('AccountsCompanion(') - ..write('id: $id, ')..write('name: $name, ')..write( - 'updatedAt: $updatedAt') + ..write('id: $id, ') + ..write('name: $name, ') + ..write('updatedAt: $updatedAt') ..write(')')) .toString(); } @@ -467,7 +467,7 @@ class RecurringTransaction extends DataClass /// Fremdschlüssel zum zugehörigen Konto final int accountId; - /// Wann die wiederkehrende Transaktion das letzte mal geupdated wurde. + /// Wann die wiederkehrende Transaktion das letzte mal geupdated wurde final DateTime updatedAt; const RecurringTransaction({ required this.id, @@ -579,9 +579,8 @@ class RecurringTransaction extends DataClass ..write('id: $id, ') ..write('name: $name, ') ..write('startDate: $startDate, ') - ..write('timeFrame: $timeFrame, ') - ..write('amount: $amount, ')..write('accountId: $accountId, ')..write( - 'updatedAt: $updatedAt') + ..write('timeFrame: $timeFrame, ')..write('amount: $amount, ')..write( + 'accountId: $accountId, ')..write('updatedAt: $updatedAt') ..write(')')) .toString(); } @@ -705,9 +704,8 @@ class RecurringTransactionsCompanion ..write('id: $id, ') ..write('name: $name, ') ..write('startDate: $startDate, ') - ..write('timeFrame: $timeFrame, ') - ..write('amount: $amount, ')..write('accountId: $accountId, ')..write( - 'updatedAt: $updatedAt') + ..write('timeFrame: $timeFrame, ')..write('amount: $amount, ')..write( + 'accountId: $accountId, ')..write('updatedAt: $updatedAt') ..write(')')) .toString(); } @@ -961,7 +959,7 @@ class Transaction extends DataClass implements Insertable { /// falls vorhanden final int? recurringTransactionId; - /// Wann die Transaktion das letzte mal geupdated wurde. + /// Wann die Transaktion das letzte mal geupdated wurde final DateTime updatedAt; const Transaction({ required this.id, @@ -1079,10 +1077,9 @@ class Transaction extends DataClass implements Insertable { String toString() { return (StringBuffer('Transaction(') ..write('id: $id, ') - ..write('name: $name, ') - ..write('date: $date, ')..write('amount: $amount, ')..write( - 'checked: $checked, ') - ..write('accountId: $accountId, ')..write( + ..write('name: $name, ')..write('date: $date, ')..write( + 'amount: $amount, ')..write('checked: $checked, ')..write( + 'accountId: $accountId, ')..write( 'recurringTransactionId: $recurringTransactionId, ')..write( 'updatedAt: $updatedAt') ..write(')')) @@ -1225,10 +1222,9 @@ class TransactionsCompanion extends UpdateCompanion { String toString() { return (StringBuffer('TransactionsCompanion(') ..write('id: $id, ') - ..write('name: $name, ') - ..write('date: $date, ')..write('amount: $amount, ')..write( - 'checked: $checked, ') - ..write('accountId: $accountId, ')..write( + ..write('name: $name, ')..write('date: $date, ')..write( + 'amount: $amount, ')..write('checked: $checked, ')..write( + 'accountId: $accountId, ')..write( 'recurringTransactionId: $recurringTransactionId, ')..write( 'updatedAt: $updatedAt') ..write(')')) diff --git a/lib/Entities/sync_log_type_enum.dart b/lib/Entities/sync_log_type_enum.dart new file mode 100644 index 0000000..59ee1a0 --- /dev/null +++ b/lib/Entities/sync_log_type_enum.dart @@ -0,0 +1,15 @@ +/// Eine Enum um den Typ der Lognachrichten +/// für den Synchronisationsstatus festzulegen +enum SyncLogTypeEnum { + /// Eine Info + info, + + /// Ein Fehler + error, + + /// Der Start des Prozesses + start, + + /// Das Ende des Prozesses + end, +}