package object;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ForeignKey;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "SubmitSeed")
public class SubmitSeed {
    @Id
    @Column(name = "beg_id", length = 64, nullable = false)
    public String begId;

    @ManyToOne(optional = false)
    @JoinColumn(name = "beg_id", referencedColumnName = "beg_id", foreignKey = @ForeignKey(name = "fk_ss_beg"), insertable = false, updatable = false)
    public BegInfo begInfo;

    @Id
    @Column(name = "seed_id", length = 64, nullable = false)
    public String seedId;

    @ManyToOne(optional = false)
    @JoinColumn(name = "seed_id", referencedColumnName = "seed_id", foreignKey = @ForeignKey(name = "fk_ss_seed"), insertable = false, updatable = false)
    public Seed seed;

    @Column(name = "votes", nullable = false)
    public int votes;
}