package br.gov.servicos.editor.usuarios.token;
import br.gov.servicos.editor.usuarios.Usuario;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.experimental.Wither;
import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;
@Entity
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Wither
@Table(name = "Tokens")
@EqualsAndHashCode
public class Token implements Serializable {
@Id
@Column(unique = true)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "usuario_id")
private Usuario usuario;
@Column(nullable = false)
private String token;
@Column(nullable = false)
private LocalDateTime dataCriacao;
@Column(nullable = false)
private Integer tentativasSobrando;
public Token decrementarTentativasSobrando() {
return tentativasSobrando == 0 ? this : withTentativasSobrando(tentativasSobrando - 1);
}
}