package com.airlock.iam.common.domain.model.valueprovider;

import com.airlock.iam.base.api.domain.model.plugin.LogicForConfig;
import com.airlock.iam.base.misc.time.TimeProvider;
import com.airlock.iam.common.api.domain.model.valueprovider.ValueProvider;
import com.airlock.iam.common.application.configuration.valueprovider.DateAndTimeNowValueProviderConfig;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import java.util.Date;

@LogicForConfig(DateAndTimeNowValueProviderConfig.class)
public final class DateAndTimeNowValueProvider implements ValueProvider<Date> {
   private final Provider<TimeProvider> timeProvider;

   @Inject
   DateAndTimeNowValueProvider(Provider<TimeProvider> timeProvider) {
      this.timeProvider = timeProvider;
   }

   public Date getValue() {
      return ((TimeProvider)this.timeProvider.get()).getCurrentTime();
   }
}
