package org.dicadeveloper.weplantaforest.gift; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToOne; import org.dicadeveloper.weplantaforest.code.Code; import org.dicadeveloper.weplantaforest.user.User; import org.dicadeveloper.weplantaforest.views.Views; import org.hibernate.annotations.Cascade; import com.fasterxml.jackson.annotation.JsonView; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class Gift { public static enum Status { NEW, REDEEMED, UNREDEEMED }; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "_id") @JsonView(Views.OverviewGift.class) private Long id; @ManyToOne @JoinColumn(name = "_consignor__userId") @JsonView(Views.OverviewGift.class) private User consignor; @ManyToOne(optional = true) @JoinColumn(name = "_recipient__userId") @JsonView(Views.OverviewGift.class) private User recipient; @OneToOne(optional = true) @JoinColumn(name = "_code__id") @Cascade({ org.hibernate.annotations.CascadeType.ALL }) @JsonView(Views.OverviewGift.class) private Code code; @Column(name = "_status") @JsonView(Views.OverviewGift.class) private Status status; }