package io.delphiplatform.api.integration.model;

import com.fasterxml.jackson.annotation.JsonProperty;

import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;
import java.util.List;

import io.delphiplatform.api.v3.model.ArtistSimple;
import io.delphiplatform.api.v3.model.amazon.AmazonImage;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

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

    @JsonProperty("amazon_track_id")
    private String amazonTrackId;

    @JsonProperty("amazon_track_genre")
    private String amazonTrackGenre;

    @JsonProperty("name")
    private String name;

    @JsonProperty("isrc")
    private String isrc;

    @JsonProperty("genre")
    private String genre;

    @JsonProperty("original_id")
    private String originalId;

    @JsonProperty("country_code")
    private String countryCode;

    @JsonProperty("release_date")
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
    private LocalDate releaseDate;

    @JsonProperty("is_sony")
    private Boolean sony;

    @JsonProperty("image")
    private AmazonImage image;

    @JsonProperty("artists")
    private List<ArtistSimple> artists;
}
