package com.airlock.iam.factor.domain.model.airlock2fa;

import com.airlock.iam.airlock2fa.api.domain.model.Airlock2FADeviceId;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import lombok.NonNull;

public record Airlock2FAAuthTokenId(@NonNull Airlock2FAFactor loginFactor, @NonNull Airlock2FADeviceId deviceId, @NonNull Airlock2FAFactorSet allowedFactors) {
   @SuppressFBWarnings(justification = "generated code")
   public Airlock2FAAuthTokenId {
      if (loginFactor == null) {
         throw new NullPointerException("loginFactor is marked non-null but is null");
      }

      if (deviceId == null) {
         throw new NullPointerException("deviceId is marked non-null but is null");
      }

      if (allowedFactors == null) {
         throw new NullPointerException("allowedFactors is marked non-null but is null");
      }
   }
}
