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

import com.airlock.iam.base.api.domain.model.event.EventType;
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.event.UserLocked;
import com.airlock.iam.common.api.domain.model.locking.LockReason;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

public final class UserLockedImpl extends AbstractUserEvent implements UserLocked {
   private final LockReason lockReason;

   public UserLockedImpl(EventCreationData eventCreationData, UserId userId, LockReason lockReason) {
      super(eventCreationData, "User Locked", userId);
      this.lockReason = lockReason;
   }

   @Override
   public String displayName() {
      return "User Locked";
   }

   @Override
   public EventType type() {
      return CommonEventTypes.USER_LOCKED;
   }

   @SuppressFBWarnings(justification = "generated code")
   @Override
   public LockReason lockReason() {
      return this.lockReason;
   }
}
