libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit b171cf9cd2d1607e68580bbc7e65136ae186cdd3
parent 955000a5dc291627e2a96e9bbd6e14b567726305
Author: ms <ms@taler.net>
Date:   Thu,  2 Sep 2021 15:55:31 +0200

DB definitions to implement Nexus' balances.

Diffstat:
Mnexus/src/main/kotlin/tech/libeufin/nexus/DB.kt | 27++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt @@ -113,6 +113,32 @@ class TalerIncomingPaymentEntity(id: EntityID<Long>) : LongEntity(id) { } /** + * This table logs all the balances as returned by the bank for one particular bank account. + */ +object NexusBankBalancesTable : LongIdTable() { + /** + * Balance mentioned in the bank message referenced below. NOTE: this is the + * CLOSING balance (a.k.a. CLBD), namely the one obtained by adding the transactions + * reported in the bank message to the _previous_ CLBD. + */ + val balance = text("balance") // $currency:x.y + val creditDebitIndicator = text("creditDebitIndicator") // CRDT or DBIT. + /** + * Message downloaded from the bank. Must be of "history" type. + */ + val bankMessage = reference("bankMessage", NexusBankMessagesTable) + val bankAccount = reference("bankAccount", NexusBankAccountsTable) +} + +class NexusBankBalanceEntity(id: EntityID<Long>) : LongEntity(id) { + companion object : LongEntityClass<NexusBankBalanceEntity>(NexusBankBalancesTable) + var balance by NexusBankBalancesTable.balance + var creditDebitIndicator by NexusBankBalancesTable.creditDebitIndicator + var bankMessage by NexusBankMessageEntity referencedOn NexusBankBalancesTable.bankMessage + var bankAccount by NexusBankAccountEntity referencedOn NexusBankBalancesTable.bankAccount +} + +/** * Table that stores all messages we receive from the bank. */ object NexusBankMessagesTable : LongIdTable() { @@ -125,7 +151,6 @@ object NexusBankMessagesTable : LongIdTable() { class NexusBankMessageEntity(id: EntityID<Long>) : LongEntity(id) { companion object : LongEntityClass<NexusBankMessageEntity>(NexusBankMessagesTable) - var bankConnection by NexusBankConnectionEntity referencedOn NexusBankMessagesTable.bankConnection var messageId by NexusBankMessagesTable.messageId var code by NexusBankMessagesTable.code