package io.delphiplatform.api.v3.model;

import com.fasterxml.jackson.annotation.JsonProperty;

import io.delphiplatform.api.v3.rdb.entity.amazon.AmazonMarketRankEntity;
import io.delphiplatform.api.v3.rdb.entity.apple.music.AppleMusicMarketRankEntity;
import io.delphiplatform.api.v3.rdb.entity.spotify.SpotifyMarketRankEntity;
import lombok.Builder;
import lombok.Getter;

@Getter
@Builder
public class StreamsCountryCodeRankInfo {

    @JsonProperty("country_code")
    private String countryCode;
    @JsonProperty("rank")
    private Integer rank;

    public static StreamsCountryCodeRankInfo from(SpotifyMarketRankEntity entity) {
        return StreamsCountryCodeRankInfo.builder()
            .countryCode(entity.getSpotifyCountryId())
            .rank(entity.getRank())
            .build();
    }

    public static StreamsCountryCodeRankInfo from(AppleMusicMarketRankEntity entity) {
        return StreamsCountryCodeRankInfo.builder()
            .countryCode(entity.getAppleMusicCountryId())
            .rank(entity.getRank())
            .build();
    }

    public static StreamsCountryCodeRankInfo from(AmazonMarketRankEntity entity) {
        return StreamsCountryCodeRankInfo.builder()
            .countryCode(entity.getAmazonCountryId())
            .rank(entity.getRank())
            .build();
    }
}
