diff options
Diffstat (limited to 'src/main/kotlin/moe/nea/ledger/LedgerEntry.kt')
-rw-r--r-- | src/main/kotlin/moe/nea/ledger/LedgerEntry.kt | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/ledger/LedgerEntry.kt b/src/main/kotlin/moe/nea/ledger/LedgerEntry.kt new file mode 100644 index 0000000..dec0727 --- /dev/null +++ b/src/main/kotlin/moe/nea/ledger/LedgerEntry.kt @@ -0,0 +1,28 @@ +package moe.nea.ledger + +import com.google.gson.JsonObject +import java.time.Instant +import java.util.UUID + +data class LedgerEntry( + val transactionType: TransactionType, + val timestamp: Instant, + val items: List<ItemChange>, +) { + fun intoJson(profileId: UUID?): JsonObject { + val coinAmount = items.find { it.itemId == ItemId.COINS || it.itemId == ItemId.BITS }?.count + val nonCoins = items.find { it.itemId != ItemId.COINS && it.itemId != ItemId.BITS } + return JsonObject().apply { + addProperty("transactionType", transactionType.name) + addProperty("timestamp", timestamp.toEpochMilli().toString()) + addProperty("totalTransactionValue", coinAmount) + addProperty("itemId", nonCoins?.itemId?.string ?: "") + addProperty("itemAmount", nonCoins?.count ?: 0.0) + addProperty("profileId", profileId.toString()) + addProperty( + "playerId", + UUIDUtil.getPlayerUUID().toString() + ) + } + } +}
\ No newline at end of file |