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

import java.math.BigInteger;
import java.time.LocalDate;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

import lombok.Getter;
import lombok.Setter;

@Entity(name = "playlist_rank")
@Getter
@Setter
public class PlaylistRankEntity extends TrackedEntity {

    @Id
    private String playlistRankId;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "playlist_id", nullable = false)
    private PlaylistEntity playlist;
    @Column(nullable = false)
    private LocalDate reportDate;
    private BigInteger rank;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "dsp_id", nullable = false)
    private DspEntity dsp;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "country_code")
    private RegionEntity countryCode;
    @Column(nullable = false)
    private boolean isLatest;

}
