Feat: Fügt eine Verknüpfung der Transaktionen mit den Konten hinzu

This commit is contained in:
2025-12-23 01:08:38 +01:00
parent 39323e28ac
commit 673d7de21c
6 changed files with 217 additions and 5 deletions

View File

@@ -53,6 +53,12 @@ const RecurringTransactionSchema = CollectionSchema(
target: r'Transaction',
single: false,
linkName: r'recurringTransaction',
),
r'account': LinkSchema(
id: -6028551496614242115,
name: r'account',
target: r'Account',
single: true,
)
},
embeddedSchemas: {},
@@ -142,7 +148,7 @@ Id _recurringTransactionGetId(RecurringTransaction object) {
List<IsarLinkBase<dynamic>> _recurringTransactionGetLinks(
RecurringTransaction object) {
return [object.transactions];
return [object.transactions, object.account];
}
void _recurringTransactionAttach(IsarCollection<dynamic> col, Id id,
@@ -150,6 +156,7 @@ void _recurringTransactionAttach(IsarCollection<dynamic> col, Id id,
object.id = id;
object.transactions
.attach(col, col.isar.collection<Transaction>(), r'transactions', id);
object.account.attach(col, col.isar.collection<Account>(), r'account', id);
}
extension RecurringTransactionQueryWhereSort
@@ -716,6 +723,22 @@ extension RecurringTransactionQueryLinks on QueryBuilder<RecurringTransaction,
r'transactions', lower, includeLower, upper, includeUpper);
});
}
QueryBuilder<RecurringTransaction,
RecurringTransaction,
QAfterFilterCondition> account(FilterQuery<Account> q) {
return QueryBuilder.apply(this, (query) {
return query.link(q, r'account');
});
}
QueryBuilder<RecurringTransaction,
RecurringTransaction,
QAfterFilterCondition> accountIsNull() {
return QueryBuilder.apply(this, (query) {
return query.linkLength(r'account', 0, true, 0, true);
});
}
}
extension RecurringTransactionQuerySortBy