package com.airlock.iam.transactionapproval.infrastructure.factory;

import com.airlock.iam.base.api.domain.model.exception.FailureException;
import com.airlock.iam.common.domain.service.state.StateRepositoryKey;
import com.airlock.iam.common.infrastructure.state.redis.RedisLegacyKeyHelper;
import com.google.inject.PrivateModule;
import jakarta.inject.Inject;

public class TransactionApprovalRedisLegacyKeyHelperModule extends PrivateModule {
   protected void configure() {
      this.bind(RedisLegacyKeyHelper.class).to(TransactionApprovalRedisLegacyKeyHelperModule.TransactionApprovalRedisLegacyKeyHelper.class);
      this.expose(RedisLegacyKeyHelper.class);
   }

   private static class TransactionApprovalRedisLegacyKeyHelper implements RedisLegacyKeyHelper {
      @Inject
      public TransactionApprovalRedisLegacyKeyHelper() {
      }

      public String toLegacyKey(StateRepositoryKey key) {
         throw new FailureException("Legacy keys not supported in Transaction Approval.");
      }

      public boolean mustTransformToLegacyKey(StateRepositoryKey key) {
         return false;
      }
   }
}
