payment
Some checks are pending
Backend CI / test (push) Waiting to run
Backend CI / build (push) Blocked by required conditions
Deploy Mnemo Cards / Deploy Backend (push) Waiting to run
Deploy Mnemo Cards / Deploy Web App (push) Blocked by required conditions
Deploy Mnemo Cards / Final Verification (push) Blocked by required conditions
Some checks are pending
Backend CI / test (push) Waiting to run
Backend CI / build (push) Blocked by required conditions
Deploy Mnemo Cards / Deploy Backend (push) Waiting to run
Deploy Mnemo Cards / Deploy Web App (push) Blocked by required conditions
Deploy Mnemo Cards / Final Verification (push) Blocked by required conditions
This commit is contained in:
parent
39eeda7fa7
commit
c2e213d40e
1 changed files with 6 additions and 7 deletions
|
|
@ -51,15 +51,15 @@ class PaymentDao extends DatabaseAccessor<AppDatabase>
|
||||||
// (database needs to be regenerated to include id in Payment class)
|
// (database needs to be regenerated to include id in Payment class)
|
||||||
// Use externalToken if available, otherwise query by unique fields
|
// Use externalToken if available, otherwise query by unique fields
|
||||||
if (inserted.externalToken != null && inserted.externalToken!.isNotEmpty) {
|
if (inserted.externalToken != null && inserted.externalToken!.isNotEmpty) {
|
||||||
final result = await (customSelect(
|
final results = await (customSelect(
|
||||||
'SELECT id FROM payments WHERE external_token = ? LIMIT 1',
|
'SELECT id FROM payments WHERE external_token = ? LIMIT 1',
|
||||||
variables: [Variable.withString(inserted.externalToken!)],
|
variables: [Variable.withString(inserted.externalToken!)],
|
||||||
readsFrom: {payments},
|
readsFrom: {payments},
|
||||||
).map((row) => row.read<String>('id')).getSingleOrNull());
|
).map((row) => row.read<String>('id')).get());
|
||||||
if (result != null) return result;
|
if (results.isNotEmpty) return results.first;
|
||||||
}
|
}
|
||||||
// Fallback: query by userId, date, and amount
|
// Fallback: query by userId, date, and amount
|
||||||
final result = await (customSelect(
|
final results = await (customSelect(
|
||||||
'SELECT id FROM payments WHERE user_id = ? AND date = ? AND amount = ? ORDER BY created_at DESC LIMIT 1',
|
'SELECT id FROM payments WHERE user_id = ? AND date = ? AND amount = ? ORDER BY created_at DESC LIMIT 1',
|
||||||
variables: [
|
variables: [
|
||||||
Variable.withString(payment.userId.value),
|
Variable.withString(payment.userId.value),
|
||||||
|
|
@ -67,8 +67,8 @@ class PaymentDao extends DatabaseAccessor<AppDatabase>
|
||||||
Variable.withString(inserted.amount),
|
Variable.withString(inserted.amount),
|
||||||
],
|
],
|
||||||
readsFrom: {payments},
|
readsFrom: {payments},
|
||||||
).map((row) => row.read<String>('id')).getSingleOrNull());
|
).map((row) => row.read<String>('id')).get());
|
||||||
if (result != null) return result;
|
if (results.isNotEmpty) return results.first;
|
||||||
throw Exception('Failed to retrieve payment ID after creation');
|
throw Exception('Failed to retrieve payment ID after creation');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -154,7 +154,6 @@ class PaymentDao extends DatabaseAccessor<AppDatabase>
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Подсчитать платежи пользователя (только активные)
|
/// Подсчитать платежи пользователя (только активные)
|
||||||
@override
|
|
||||||
Future<int> countPaymentsByUserId(String userId) async {
|
Future<int> countPaymentsByUserId(String userId) async {
|
||||||
final countExpr = payments.id.count();
|
final countExpr = payments.id.count();
|
||||||
final query = selectOnly(payments)
|
final query = selectOnly(payments)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue