Я не уверен, что заголовок достаточно проясняется, поэтому я объясню здесь: у меня есть четыре модели:
Я использую эту модель для анализа JSON из файла
@JsonClass(generateAdapter = true)
data class Account(
val account: String,
val balance: String,
val transactions: List<Transaction>
)
Этот Account
имеет список Transactions
:
@JsonClass(generateAdapter = true)
data class Transaction(
val id: String,
val amount: String,
val description: String,
val otherAccount: String,
val date: String
)
Для слоя пользовательского интерфейса у меня есть несколько эквивалентных моделей:
data class AccountEntity(
val account: String,
val balance: String,
val transactions: List<TransactionEntity>
)
и
data class TransactionEntity(
var amount: BigDecimal,
var balanceBefore: BigDecimal,
var balanceAfter: BigDecimal,
val description: String,
val otherAccount: String,
val date: Date
)
Хитрость, которую я хочу сделать, состоит в том, что Account
имеет balance
, и мне нужно показать в каждом TransactionData
balanceBefore
и balanceAfter
, которые являются, соответственно, балансомсчета до того, как была сделана эта транзакция, и баланс счета после этой транзакции.
Для меня это немного сложно не только понять, но и реализовать.Я подумал, может быть, реализовать какую-то операцию fold
в каждой транзакции, но я не уверен, как применять ее только в свойствах balanceBefore
и balanceAfter
.
Есть еще идеи?Заранее большое спасибо!