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

import com.airlock.iam.base.api.domain.model.event.source.EventSource;
import com.airlock.iam.base.domain.model.event.UnknownEventSource;
import com.airlock.iam.common.infrastructure.delay.ResponseDelayCondition;
import com.airlock.iam.flow.shared.infrastructure.service.NoResponseDelayCondition;
import com.google.inject.PrivateModule;
import jakarta.inject.Singleton;

public final class OAuth2InfrastructureModule extends PrivateModule {
   protected void configure() {
      this.bind(EventSource.class).toInstance(UnknownEventSource.unknownEventSource());
      this.expose(EventSource.class);
      this.bind(ResponseDelayCondition.class).to(NoResponseDelayCondition.class).in(Singleton.class);
      this.expose(ResponseDelayCondition.class);
   }
}
