package com.airlock.iam.authentication.domain.model.migration.condition;

import com.airlock.iam.common.api.domain.model.user.PersistentUser;
import java.time.Duration;
import java.time.Instant;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;

public final class HintPeriodHelper {
   private HintPeriodHelper() {
   }

   public static boolean isUserWithinMigrationHintPeriod(PersistentUser user, Duration hintPeriod) {
      String nextAuthMethod = user.getNextAuthMethod();
      if (StringUtils.isBlank(nextAuthMethod)) {
         return false;
      }

      Date migrationDate = user.getAuthMigrationDate();
      if (migrationDate == null) {
         return true;
      }

      Instant startOfPeriod = migrationDate.toInstant().minus(hintPeriod);
      return startOfPeriod.isBefore(Instant.now());
   }
}
