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

import java.util.List;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;

import io.delphiplatform.api.v3.model.charts.ChartTrackLifetimeMetrics;
import io.delphiplatform.api.v3.model.charts.ChartTrackMetadata;
import io.delphiplatform.api.v3.model.charts.ChartTrackStateMetrics;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;

@Builder
@Getter
@EqualsAndHashCode
public class AppleMusicTrackChartsSearchResult {

    @JsonInclude(Include.NON_NULL)
    @JsonProperty("licensors")
    private List<String> licensors;

    @JsonInclude(Include.NON_NULL)
    @JsonProperty("public_meta")
    private ChartTrackMetadata publicMeta;

    @JsonInclude(Include.NON_NULL)
    @JsonProperty("chart_meta")
    private AppleMusicChart chartMeta;

    @JsonInclude(Include.NON_NULL)
    @JsonProperty("metrics")
    private ChartTrackStateMetrics metrics;

    @JsonInclude(Include.NON_NULL)
    @JsonProperty("lifetime_metrics")
    private ChartTrackLifetimeMetrics lifetimeMetrics;
}

