package com.airlock.iam.admin.health.infrastructure.factory;

import com.airlock.iam.common.infrastructure.health.ConfigActivationCheck;
import com.airlock.iam.health.api.infrastructure.HealthCheck;
import com.airlock.iam.health.infrastructure.service.ModuleReadinessService;
import com.google.inject.Exposed;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;
import com.google.inject.servlet.RequestScoped;
import java.util.List;

public final class AdminReadinessModule extends PrivateModule {
   @Provides
   List<HealthCheck> provideHealthChecks() {
      return List.of(new ConfigActivationCheck());
   }

   @Exposed
   @Provides
   @RequestScoped
   ModuleReadinessService provideModuleReadinessService(List<HealthCheck> checks) {
      return new ModuleReadinessService(checks);
   }

   protected void configure() {
   }
}
