Balances.kt

package com.distasilucas.cryptobalancetracker.model.response.insights

import java.io.Serializable
import java.math.BigDecimal
import java.math.RoundingMode

data class Balances(
  val fiat: FiatBalance,
  val btc: String
): Serializable {
  companion object {
    val EMPTY = Balances(FiatBalance.EMPTY, "0")
  }

  fun usd() = fiat.usd

  fun eur() = fiat.eur

  constructor(fiatBalance: FiatBalance, btcBalance: BigDecimal): this(
    fiatBalance, btcBalance.setScale(8, RoundingMode.HALF_EVEN).stripTrailingZeros().toPlainString()
  )
}

data class FiatBalance(
  val usd: String,
  val eur: String,
): Serializable {
  companion object {
    val EMPTY = FiatBalance("0", "0")
  }

  constructor(usd: BigDecimal, eur: BigDecimal): this(
    usd.setScale(2, RoundingMode.HALF_UP).toPlainString(),
    eur.setScale(2, RoundingMode.HALF_UP).toPlainString()
  )
}