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); } }