package io.delphiplatform.api.v3.rdb.entity.spotify;

import java.io.Serializable;
import java.time.LocalDate;

import javax.persistence.Column;
import javax.persistence.Embeddable;

import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@EqualsAndHashCode
@AllArgsConstructor
@NoArgsConstructor
@Embeddable
public class SpotifyChartDateKey implements Serializable {

    private static final long serialVersionUID = 1975632327438947965L;

    @Column(name = "chart_date", updatable = false, insertable = false)
    private LocalDate chartDate;

    @Column(name = "spotify_chart_id", insertable = false, updatable = false)
    private String spotifyChartId;

    public static SpotifyChartDateKey of(SpotifyChartDateProjection prj) {
        return new SpotifyChartDateKey(prj.getChartDate(), prj.getSpotifyChartId());
    }
}
