Ban.java

package model.entity;

import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;
import java.io.Serializable;
import java.time.Instant;

/**
 * Entità rappresentate il ban di un utente
 */
@Entity
public class Ban implements Serializable {

    @Getter @Setter
    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    protected Integer id;

    @Getter @Setter
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    protected User user;

    @Getter
    @Column(nullable = false, insertable = false, updatable = false)
    protected Instant startTime; //db generated column

    @Getter @Setter
    @Column(nullable = true)
    protected Instant endTime;

    public Ban(){}

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Ban)) return false;
        Ban ban = (Ban) o;
        return id.equals(ban.id);
    }

    @Override
    public int hashCode() {
        return getClass().hashCode();
    }
}