aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/ledger/LedgerEntry.kt
blob: dec0727255002b2d06ec5f66e5e05b27f422d0ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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()
			)
		}
	}
}