package com.airlock.iam.oauth2.infrastructure.repository;

import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.time.Duration;

public class AccessTokenCacheEntry {
   private final String accessToken;
   private final Duration expiresIn;
   private final long expiresAt;

   AccessTokenCacheEntry(Duration expiresIn, String accessToken) {
      this.expiresIn = expiresIn;
      this.accessToken = accessToken;
      this.expiresAt = System.currentTimeMillis() + expiresIn.toMillis();
   }

   public boolean isExpired() {
      return System.currentTimeMillis() > this.expiresAt;
   }

   @SuppressFBWarnings(justification = "generated code")
   public String getAccessToken() {
      return this.accessToken;
   }

   @SuppressFBWarnings(justification = "generated code")
   public Duration getExpiresIn() {
      return this.expiresIn;
   }

   @SuppressFBWarnings(justification = "generated code")
   public long getExpiresAt() {
      return this.expiresAt;
   }
}
