package io.delphiplatform.api.v3.model.apple.music;

import com.fasterxml.jackson.annotation.JsonProperty;

import io.delphiplatform.api.v3.rdb.entity.apple.music.AppleMusicChartEntity;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;

@Getter
@EqualsAndHashCode
@Builder
public class AppleMusicChart {

    @JsonProperty("chart_id")
    private String chartId;

    @JsonProperty("name")
    private String name;

    @JsonProperty("total_positions")
    private Integer totalPositions;

    @JsonProperty("country_code")
    private String countryCode;

    @JsonProperty("rank")
    private Integer rank;

    public static AppleMusicChart of(AppleMusicChartEntity entity) {
        return AppleMusicChart.builder()
            .chartId(entity.getAppleMusicChartId())
            .countryCode(entity.getAppleMusicCountryId())
            .name(entity.getName())
            .totalPositions(entity.getTotalPositions())
            .rank(entity.getMarketRank().getRank())
            .build();
    }
}

