package vn.sis.appointment; import java.time.Instant; record CachedToken(String accessToken, String tokenType, Instant expiresAt) { boolean isValid() { return accessToken != null && !accessToken.isBlank() && Instant.now().isBefore(expiresAt.minusSeconds(15)); } }