package com.airlock.iam.oauth2.infrastructure.factory.flow;

import com.airlock.iam.base.api.infrastructure.plugin.ModuleForConfig;
import com.airlock.iam.oauth2.application.configuration.step.OAuth2SessionResetStepConfig;
import com.airlock.iam.oauth2.domain.model.session.OAuth2GlobalSessionsRepository;
import com.airlock.iam.oauth2.infrastructure.repository.OAuth2GlobalSessionsRepositoryImpl;
import com.airlock.iam.oauth2.infrastructure.repository.OAuth2SessionRepositorySettings;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;

@ModuleForConfig(OAuth2SessionResetStepConfig.class)
public class OAuth2SessionResetStepModule extends PrivateModule {
   @Provides
   OAuth2SessionRepositorySettings provideOAuth2SessionRepositorySettings(OAuth2SessionResetStepConfig config) {
      return new OAuth2SessionRepositorySettings(config.getSessionRepository().jooqConfig(), false);
   }

   protected void configure() {
      this.bind(OAuth2GlobalSessionsRepository.class).to(OAuth2GlobalSessionsRepositoryImpl.class);
      this.expose(OAuth2GlobalSessionsRepository.class);
   }
}
