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

@@ -10,24 +10,24 @@ class RecurringTransactionRepository {
/// Fügt eine neue wiederkehrende Transaktion zur Datenbank hinzu
Future<RecurringTransaction?> add(
final RecurringTransactionsCompanion recurringTransaction,
final RecurringTransactionsCompanion recurringTransaction,
) async {
final int id = await _db.into(_db.recurringTransactions).insert(
recurringTransaction);
final int id = await _db
.into(_db.recurringTransactions)
.insert(recurringTransaction);
return find(id);
}
/// Entfernt eine wiederkehrende Transaktion aus der Datenbank
Future<int> remove(final RecurringTransaction recurringTransaction) async {
return (_db.delete(_db.recurringTransactions)
..where((t) => t.id.equals(recurringTransaction.id))).go();
}
Future<int> remove(final RecurringTransaction recurringTransaction) =>
(_db.delete(
_db.recurringTransactions,
)..where((final t) => t.id.equals(recurringTransaction.id))).go();
/// Sucht eine wiederkehrende Transaktion anhand seiner Id aus der Datenbank
Future<RecurringTransaction?> find(final int id) async {
return (_db.select(_db.recurringTransactions)
..where((t) => t.id.equals(id))).getSingleOrNull();
}
Future<RecurringTransaction?> find(final int id) => (_db.select(
_db.recurringTransactions,
)..where((final t) => t.id.equals(id))).getSingleOrNull();
/// Sucht wiederkehrende Transaktionen anhand der gegebenen Parameter
/// aus der Datenbank
@@ -44,70 +44,69 @@ class RecurringTransactionRepository {
final double? amountMin,
final double? amountMax,
final String? orderBy,
}) async {
final query = _db.select(_db.recurringTransactions);
}) {
final SimpleSelectStatement<
$RecurringTransactionsTable,
RecurringTransaction
>
query = _db.select(_db.recurringTransactions);
if (id != null) {
query.where((t) => t.id.equals(id));
query.where((final t) => t.id.equals(id));
}
if (name != null && name.isNotEmpty) {
query.where((t) => t.name.like('%$name%'));
query.where((final t) => t.name.like('%$name%'));
}
if (startDate != null) {
query.where((t) => t.startDate.equals(startDate));
query.where((final t) => t.startDate.equals(startDate));
}
if (startDateAfter != null) {
query.where((t) => t.startDate.isBiggerThanValue(startDateAfter));
query.where((final t) => t.startDate.isBiggerThanValue(startDateAfter));
}
if (startDateBefore != null) {
query.where((t) => t.startDate.isSmallerThanValue(startDateBefore));
query.where((final t) => t.startDate.isSmallerThanValue(startDateBefore));
}
if (startDateFrom != null && startDateTo != null) {
query.where((t) =>
t.startDate.isBetweenValues(startDateFrom, startDateTo));
query.where(
(final t) => t.startDate.isBetweenValues(startDateFrom, startDateTo),
);
}
if (timeFrame != null) {
query.where((t) => t.timeFrame.equals(timeFrame.index));
query.where((final t) => t.timeFrame.equals(timeFrame.index));
}
if (amount != null) {
query.where((t) => t.amount.equals(amount));
query.where((final t) => t.amount.equals(amount));
}
if (amountMin != null) {
query.where((t) => t.amount.isBiggerThanValue(amountMin));
query.where((final t) => t.amount.isBiggerThanValue(amountMin));
}
if (amountMax != null) {
query.where((t) => t.amount.isSmallerThanValue(amountMax));
query.where((final t) => t.amount.isSmallerThanValue(amountMax));
}
if (orderBy != null) {
switch (orderBy) {
case 'nameAsc':
query.orderBy([(t) => OrderingTerm.asc(t.name)]);
break;
query.orderBy([(final t) => OrderingTerm.asc(t.name)]);
case 'nameDesc':
query.orderBy([(t) => OrderingTerm.desc(t.name)]);
break;
query.orderBy([(final t) => OrderingTerm.desc(t.name)]);
case 'amountAsc':
query.orderBy([(t) => OrderingTerm.asc(t.amount)]);
break;
query.orderBy([(final t) => OrderingTerm.asc(t.amount)]);
case 'amountDesc':
query.orderBy([(t) => OrderingTerm.desc(t.amount)]);
break;
query.orderBy([(final t) => OrderingTerm.desc(t.amount)]);
case 'startDateAsc':
query.orderBy([(t) => OrderingTerm.asc(t.startDate)]);
break;
query.orderBy([(final t) => OrderingTerm.asc(t.startDate)]);
case 'startDateDesc':
query.orderBy([(t) => OrderingTerm.desc(t.startDate)]);
break;
query.orderBy([(final t) => OrderingTerm.desc(t.startDate)]);
}
}