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

import org.hibernate.annotations.Type;

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.constant.DbSchemaConstants;
import io.delphiplatform.api.v3.model.tiktok.top.video.TikTokTopIsrcVideoTopBy;
import io.delphiplatform.api.v3.rdb.entity.converter.TikTokTopIsrcVideoTopByAttributeConverter;
import lombok.Getter;
import lombok.Setter;

@Entity
@Table(name = "fact_tiktok_top_video_chart", schema = DbSchemaConstants.TIKTOK)
@Getter
@Setter
public class FactTikTokTopVideoChartEntity {

    @EmbeddedId
    private FactTikTokTopVideoChartEntityId id;

    @Column(insertable = false, updatable = false)
    private String isrc;

    @Column(name = "tiktok_chart_id", insertable = false, updatable = false)
    @Convert(converter = TikTokTopIsrcVideoTopByAttributeConverter.class)
    private TikTokTopIsrcVideoTopBy tikTokChartId;

    @Column(name = "video_ids")
    @Type(type = "io.delphiplatform.api.v3.rdb.entity.converter.CustomStringArrayType")
    private String[] videoIds;

}
