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

import java.time.LocalDate;

import javax.persistence.Column;
import javax.persistence.Convert;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;

import io.delphiplatform.api.v3.model.apple.music.AppleMusicChartType;
import io.delphiplatform.api.v3.model.datahealth.DataHealthStatus;
import io.delphiplatform.api.v3.rdb.entity.converter.AppleMusicChartTypeAttributeConverter;
import io.delphiplatform.api.v3.rdb.entity.converter.DataHealthStatusAttributeConverter;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Entity
@Table(name = "apple_charts_status_daily", schema = "data_health")
public class AppleMusicChartsStatusDailyEntity {
    @EmbeddedId
    private AppleMusicChartsStatusDailyEntityId id;

    @Column(name = "date", nullable = false, updatable = false, insertable = false)
    private LocalDate date;

    @Column(name = "chart_type")
    @Convert(converter = AppleMusicChartTypeAttributeConverter.class)
    private AppleMusicChartType chartType;

    @Column(name = "market")
    private String market;

    @Convert(converter = DataHealthStatusAttributeConverter.class)
    @Column(name = "status")
    private DataHealthStatus status;
}
