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

@@ -45,6 +45,12 @@ const TransactionSchema = CollectionSchema(
name: r'recurringTransaction',
target: r'RecurringTransaction',
single: true,
),
r'account': LinkSchema(
id: -8467990729867616553,
name: r'account',
target: r'Account',
single: true,
)
},
embeddedSchemas: {},
@@ -112,7 +118,7 @@ Id _transactionGetId(Transaction object) {
}
List<IsarLinkBase<dynamic>> _transactionGetLinks(Transaction object) {
return [object.recurringTransaction];
return [object.recurringTransaction, object.account];
}
void _transactionAttach(IsarCollection<dynamic> col, Id id,
@@ -120,6 +126,7 @@ void _transactionAttach(IsarCollection<dynamic> col, Id id,
object.id = id;
object.recurringTransaction.attach(col,
col.isar.collection<RecurringTransaction>(), r'recurringTransaction', id);
object.account.attach(col, col.isar.collection<Account>(), r'account', id);
}
extension TransactionQueryWhereSort
@@ -538,6 +545,20 @@ on QueryBuilder<Transaction, Transaction, QFilterCondition> {
return query.linkLength(r'recurringTransaction', 0, true, 0, true);
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition> account(
FilterQuery<Account> q) {
return QueryBuilder.apply(this, (query) {
return query.link(q, r'account');
});
}
QueryBuilder<Transaction, Transaction, QAfterFilterCondition>
accountIsNull() {
return QueryBuilder.apply(this, (query) {
return query.linkLength(r'account', 0, true, 0, true);
});
}
}
extension TransactionQuerySortBy