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

import com.airlock.iam.base.api.infrastructure.plugin.PluginConfigToLogic;
import com.airlock.iam.common.domain.model.device.usage.repository.DeviceUsageRepository;
import com.airlock.iam.transactionapproval.application.configuration.TransactionApprovalApp;
import com.google.inject.Exposed;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;
import java.util.Optional;

public final class TransactionApprovalDeviceUsageRepositoryModule extends PrivateModule {
   @Provides
   @Exposed
   Optional<DeviceUsageRepository> provideDeviceUsageRepository(TransactionApprovalApp transactionApprovalApp, PluginConfigToLogic pluginConfigToLogic) {
      return transactionApprovalApp.getDeviceUsageRepositoryConfig().map(pluginConfigToLogic::getLogic);
   }

   protected void configure() {
   }
}
