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

import com.airlock.iam.common.domain.model.user.Lockable;
import com.airlock.iam.common.domain.model.user.LockableImpl;
import com.airlock.iam.common.domain.service.adapt.PersistentUserAdapter;
import com.airlock.iam.common.domain.service.user.UserLockService;
import com.airlock.iam.common.domain.service.user.UserLockServiceImpl;
import com.airlock.iam.common.infrastructure.adapt.PersistentUserAdapterImpl;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;

public final class TransactionApprovalLockServiceModule extends PrivateModule {
   @Provides
   PersistentUserAdapter<Lockable> provideAdapter() {
      return PersistentUserAdapterImpl.create(LockableImpl.class);
   }

   protected void configure() {
      this.bind(UserLockService.class).to(UserLockServiceImpl.class);
      this.expose(UserLockService.class);
   }
}
