meals-made-easy-api/src/main/java/app/mealsmadeeasy/api/auth/RefreshTokenEntity.java

93 lines
1.9 KiB
Java

package app.mealsmadeeasy.api.auth;
import app.mealsmadeeasy.api.user.User;
import jakarta.persistence.*;
import java.time.OffsetDateTime;
import java.time.temporal.ChronoUnit;
import java.util.UUID;
@Entity(name = "RefreshToken")
@Table(name = "refresh_token")
public class RefreshTokenEntity implements RefreshToken {
@Id
@Column(nullable = false)
private UUID token;
@Column(nullable = false)
private OffsetDateTime issued;
@Column(nullable = false)
private OffsetDateTime expiration;
@ManyToOne(optional = false)
@JoinColumn(name = "owner_id", nullable = false)
private User owner;
@Column(nullable = false)
private Boolean deleted = false;
@Column(nullable = false)
private Boolean revoked = false;
@Override
public UUID getToken() {
return this.token;
}
public void setToken(UUID token) {
this.token = token;
}
@Override
public OffsetDateTime getIssued() {
return this.issued;
}
public void setIssued(OffsetDateTime issued) {
this.issued = issued;
}
@Override
public OffsetDateTime getExpires() {
return this.expiration;
}
public void setExpiration(OffsetDateTime expiration) {
this.expiration = expiration;
}
@Override
public boolean isRevoked() {
return this.revoked;
}
public void setRevoked(boolean revoked) {
this.revoked = revoked;
}
public User getOwner() {
return this.owner;
}
public void setOwner(User owner) {
this.owner = owner;
}
@Override
public boolean isDeleted() {
return this.deleted;
}
public void setDeleted(boolean deleted) {
this.deleted = deleted;
}
@Override
public long getLifetime() {
return ChronoUnit.SECONDS.between(this.issued, this.expiration);
}
}