package com.airlock.iam.login.app.application.service;

import com.airlock.iam.base.api.domain.model.user.UserId;
import com.airlock.iam.common.api.domain.model.valueprovider.ValueProvider;
import com.airlock.iam.common.application.configuration.language.LanguageSettings;
import com.airlock.iam.common.domain.service.event.LocaleProvider;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import jakarta.inject.Provider;
import java.util.Locale;

public class LoginappLocaleProvider implements LocaleProvider {
   private final Provider<ValueProvider<String>> localString;
   private final LanguageSettings languageSettings;

   @Override
   public Locale userLocale(UserId userId) {
      return this.languageSettings.getValidLocale((String)((ValueProvider)this.localString.get()).getValue());
   }

   @Override
   public Locale defaultLocale() {
      return this.languageSettings.getValidLocale(null);
   }

   @SuppressFBWarnings(justification = "generated code")
   public LoginappLocaleProvider(Provider<ValueProvider<String>> localString, LanguageSettings languageSettings) {
      this.localString = localString;
      this.languageSettings = languageSettings;
   }
}
