package de.rwth.idsg.bikeman.domain;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.annotations.Type;
import org.joda.time.LocalDateTime;
import javax.persistence.*;
import java.util.Date;
@Entity
@Table(name = "T_ACTIVATION_KEY")
@TableGenerator(name = "activation_key_gen", initialValue = 0, allocationSize = 1)
@ToString(includeFieldNames = true)
@Getter
@Setter
public class ActivationKey {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "activation_key_gen")
@Column(name = "activation_key_id")
private Long activationKeyId;
@ManyToOne
@JoinColumn(name = "user_id")
private Customer customer;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created_at", nullable = false, updatable = false)
private Date createdAt;
@Column(name = "key")
private String key;
@Column(name = "type")
@Enumerated(EnumType.STRING)
private ActivationKeyType type;
@Column(name = "used")
private Boolean used = false;
@Column(name = "valid_until")
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime")
private LocalDateTime validUntil;
@PrePersist
protected void prePersist() {
this.createdAt = new Date();
}
}