package io.delphiplatform.api.integration.model;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.net.URI;

import io.delphiplatform.api.v3.model.Dsp;
import io.delphiplatform.api.v3.model.ImageSimple;
import io.delphiplatform.api.v3.model.PlaylistOwner;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode
public class PublicPlaylistModel {

    @JsonProperty("name")
    private String name;

    @JsonProperty("playlist_id")
    private String playlistId;

    @JsonProperty("playlist_type")
    private String playlistType;

    @JsonProperty("uri")
    private URI uri;

    @JsonProperty("num_tracks")
    private Integer numTracks;

    @JsonProperty("country_code")
    private String countryCode;

    @JsonProperty("rank")
    private Integer rank;

    @JsonProperty("dsp")
    private Dsp dsp;

    @JsonProperty("dsp_playlist_id")
    private String dspPlaylistId;

    @JsonProperty("amazon_playlist_id")
    private String amazonPlaylistId;

    @JsonProperty("description")
    private String description;

    @JsonProperty("followers")
    private Integer followers;

    @JsonProperty("is_ignored")
    private Boolean ignored;

    @JsonProperty("is_removed")
    private Boolean removed;

    @JsonProperty("is_personalised")
    private Boolean personalised;

    @JsonProperty("is_public")
    private Boolean publicPlaylist;

    @JsonProperty("owner")
    private PlaylistOwner owner;

    @JsonProperty("image")
    private ImageSimple image;
}
