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

import java.util.Optional;

public record PutResult(Optional<String> putValue, boolean isLocked) implements RetryableOperation {
   public static PutResult put(String value) {
      return new PutResult(Optional.of(value), false);
   }

   public static PutResult locked() {
      return new PutResult(Optional.empty(), true);
   }

   public boolean valueWasPut() {
      return this.putValue().isPresent();
   }

   @Override
   public boolean shouldRetry() {
      return this.isLocked;
   }
}
