// Резолюция и переключение активного языка UI.
// Цепочка: ручное переопределение (settings.language, '' = auto) → SSO locale → 'ru'.
import { ref } from 'vue'
import i18n from './index'
import { LANGUAGES, type Language } from './index'

const active = ref<Language>('ru')

export function activeLocale(): Language {
  return active.value
}

// Тег для Intl/toLocaleString: 'ru'/'en'/'uk' работают напрямую
export function intlLocale(): string {
  return active.value
}

export function setLocale(lang: string): Language {
  const resolved: Language = (LANGUAGES as readonly string[]).includes(lang)
    ? (lang as Language)
    : 'ru'
  active.value = resolved
  i18n.global.locale.value = resolved
  document.documentElement.lang = resolved
  return resolved
}

export function resolveLocale(override: string | undefined, ssoLocale: string | undefined): Language {
  return setLocale(override || ssoLocale || 'ru')
}