package com.sonymusic.dx.persistence.gras;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import java.io.Serializable;

@Entity
@Table(name = "vgras131")
@DynamicInsert
@DynamicUpdate
public class PublishStatus implements Serializable {

    private static final long serialVersionUID = 1L;

    public enum Of {

        LabelCopyPublished(1L),

        LabelCopyAndAssetsPublished(2L);

        private Long id;

        private Of(Long id) {
            this.id = id;
        }

        public Long getId() {
            return id;
        }

        public static Of get(Long id) {
            for (Of t : values())
                if (t.id.equals(id))
                    return t;
            throw new IllegalArgumentException("\"" + id + "\" is not a valid Publish key.");
        }
    }

    @Id
    @Column(name = "publish_key")
    @NotNull
    private Integer publishKey;

    @Column(name = "publish_name")
    @NotNull
    private String publishName;

    public Integer getPublishKey() {
        return publishKey;
    }

    public void setPublishKey(Integer publishKey) {
        this.publishKey = publishKey;
    }

    public String getPublishName() {
        return publishName;
    }

    public void setPublishName(String publishName) {
        this.publishName = publishName;
    }
}

