package com.airlock.iam.common.domain.model.event;

import com.airlock.iam.base.api.domain.model.user.UserId;
import com.airlock.iam.base.domain.model.event.EventCreationData;
import com.airlock.iam.common.api.domain.model.authmethod.AuthenticationMethod;
import com.airlock.iam.common.api.domain.model.event.AuthenticationDeviceEvent;
import jakarta.annotation.Nonnull;
import lombok.NonNull;

public abstract class AbstractAuthenticationDeviceEvent extends AbstractUserEvent implements AuthenticationDeviceEvent {
   @NonNull
   private final AuthenticationMethod authenticationMethod;

   public AbstractAuthenticationDeviceEvent(
      EventCreationData eventCreationData, String displayName, UserId userId, @Nonnull AuthenticationMethod authenticationMethod
   ) {
      super(eventCreationData, displayName, userId);
      this.authenticationMethod = authenticationMethod;
   }

   @Override
   public AuthenticationMethod authenticationMethod() {
      return this.authenticationMethod;
   }
}
