package io.delphiplatform.api.v3.rdb.entity.apple.music;

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 AppleMusicChartDateKey implements Serializable {

    private static final long serialVersionUID = 1975632327438947965L;

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

    @Column(name = "apple_music_chart_id", insertable = false, updatable = false)
    private String appleMusicChartId;

    public static AppleMusicChartDateKey of(AppleMusicChartDateProjection prj) {
        return new AppleMusicChartDateKey(prj.getChartDate(), prj.getAppleMusicChartId());
    }
}
