package org.dicadeveloper.weplantaforest.admin.code; 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.admin.cart.Cart; import org.dicadeveloper.weplantaforest.admin.event.Event; import org.dicadeveloper.weplantaforest.admin.gift.Gift; import org.dicadeveloper.weplantaforest.admin.views.Views; import com.fasterxml.jackson.annotation.JsonView; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class Code { @Id @JsonView(Views.CodeOverview.class) @GeneratedValue(strategy = GenerationType.AUTO) @Column(name ="_id") private Long id; @JsonView(Views.CodeOverview.class) @Column(name ="_code",unique = true, nullable = false) private String code; @ManyToOne(optional = true) @JoinColumn(name ="_event__id") private Event event; @OneToOne(optional = true) @JoinColumn(name ="_gift__id") private Gift gift; @OneToOne(optional = true) @JoinColumn(name ="_cart__cartId") @JsonView(Views.CodeOverview.class) private Cart cart; //TODO: think about to remove these columns, i don't think they are really necessary //only initialized here with default values to avoid constraint violations from the db @Column(name ="_year",nullable = false) private int year = 0; @Column(name ="_month",nullable = false) private int month = 0; @Column(name ="_number",nullable = false) private int number = 0; @Column(name ="_evaluated",nullable = false) private boolean evaluated = false; }