package com.airlock.iam.flow.shared.application.service.selection;

import com.airlock.iam.base.api.domain.model.user.UserId;
import com.airlock.iam.flow.shared.domain.model.selection.step.LastSelectionRepository;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

public class LastSelectionConsistencyUserChangeServiceImpl implements LastSelectionConsistencyUserChangeService {
   private final LastSelectionRepository repository;

   @Override
   public void handleUserDeleted(UserId userId) {
      this.repository.findAllForUser(userId).forEach(lastSelection -> this.repository.delete(userId, lastSelection.getStepId()));
   }

   @Override
   public void handleUserRenamed(UserId before, UserId after) {
      this.repository.changeUsername(before, after);
   }

   @SuppressFBWarnings(justification = "generated code")
   public LastSelectionConsistencyUserChangeServiceImpl(LastSelectionRepository repository) {
      this.repository = repository;
   }
}
