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

import com.airlock.iam.base.api.domain.model.plugin.LogicForConfig;
import com.airlock.iam.common.api.domain.model.identity.IdentityGenerator;
import com.airlock.iam.common.api.domain.model.valueprovider.ValueProvider;
import com.airlock.iam.common.application.configuration.valueprovider.IdentityValueProviderConfig;
import jakarta.annotation.Nonnull;
import jakarta.inject.Inject;
import lombok.NonNull;

@LogicForConfig(IdentityValueProviderConfig.class)
public class IdentityValueProvider implements ValueProvider<String> {
   @NonNull
   private final IdentityGenerator identityGenerator;

   @Inject
   public IdentityValueProvider(@Nonnull IdentityGenerator identityGenerator) {
      this.identityGenerator = identityGenerator;
   }

   public String getValue() {
      return this.identityGenerator.generateIdentity();
   }
}
