import type { PreferredLanguage } from "../api-types";

export const SUPPORTED_LOCALES = ["uz", "ru", "en"] as const;
export type AppLocale = (typeof SUPPORTED_LOCALES)[number];

export const DEFAULT_LOCALE: AppLocale = "uz";

export const LOCALE_LABELS: Record<AppLocale, string> = {
  uz: "O'zbek",
  ru: "Русский",
  en: "English",
};

export function isAppLocale(value: string): value is AppLocale {
  return (SUPPORTED_LOCALES as readonly string[]).includes(value);
}

export function resolveAppLocale(
  preferred?: PreferredLanguage | string | null,
): AppLocale {
  if (preferred && isAppLocale(preferred)) return preferred;
  return DEFAULT_LOCALE;
}
