CryptoInfo.java
package com.distasilucas.cryptobalancetracker.entity;
import com.distasilucas.cryptobalancetracker.model.response.coingecko.CoingeckoCryptoInfo;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
@Getter
@Embeddable
@NoArgsConstructor
@AllArgsConstructor
public class CryptoInfo implements Serializable {
private String name;
private String ticker;
private String image;
@Column(name = "market_cap_rank")
private int marketCapRank;
@Column(name = "market_cap")
private BigDecimal marketCap;
@Column(name = "circulating_supply")
private BigDecimal circulatingSupply;
@Column(name = "max_supply")
private BigDecimal maxSupply;
public CryptoInfo(CoingeckoCryptoInfo coingeckoCryptoInfo) {
var marketData = coingeckoCryptoInfo.marketData();
this.name = coingeckoCryptoInfo.name();
this.ticker = coingeckoCryptoInfo.symbol();
this.image = coingeckoCryptoInfo.image().large();
this.marketCapRank = coingeckoCryptoInfo.marketCapRank();
this.marketCap = marketData.marketCap().usd();
this.circulatingSupply = marketData.circulatingSupply();
this.maxSupply = marketData.maxSupply() != null ? marketData.maxSupply() : BigDecimal.ZERO;
}
}