/**
 * Application configuration
 */

/**
 * Countries that are currently supported for document analysis
 * Uses ISO 3166-1 alpha-3 country codes
 */
export const SUPPORTED_COUNTRIES = [
  'DEU', // Germany
  'UKR', // Ukraine
  'PHL', // Philippines
  'TUR', // Turkey
  'BIH', // Bosnia & Herzegovina
  'ALB', // Albania
  'VNM', // Vietnam
  'MEX', // Mexico
  'IND', // India
  'TUN', // Tunisia
  'SYR', // Syria
] as const

export const SUPPORTED_COUNTRY_NAMES: Record<(typeof SUPPORTED_COUNTRIES)[number], string> = {
  DEU: 'Germany',
  UKR: 'Ukraine',
  PHL: 'Philippines',
  TUR: 'Turkey',
  BIH: 'Bosnia & Herzegovina',
  ALB: 'Albania',
  VNM: 'Vietnam',
  MEX: 'Mexico',
  IND: 'India',
  TUN: 'Tunisia',
  SYR: 'Syria',
}

/**
 * Supported application locales
 * Maps locale codes to their display information
 */
export const SUPPORTED_LOCALES = {
  en: {
    code: 'en',
    name: 'English',
    flag: 'https://flagcdn.com/us.svg',
  },
  de: {
    code: 'de',
    name: 'Deutsch',
    flag: 'https://flagcdn.com/de.svg',
  },
  uk: {
    code: 'uk',
    name: 'Українська',
    flag: 'https://flagcdn.com/ua.svg',
  },
  fil: {
    code: 'fil',
    name: 'Filipino',
    flag: 'https://flagcdn.com/ph.svg',
  },
  tr: {
    code: 'tr',
    name: 'Türkçe',
    flag: 'https://flagcdn.com/tr.svg',
  },
  bs: {
    code: 'bs',
    name: 'Bosanski',
    flag: 'https://flagcdn.com/ba.svg',
  },
  sq: {
    code: 'sq',
    name: 'Shqip',
    flag: 'https://flagcdn.com/al.svg',
  },
  vi: {
    code: 'vi',
    name: 'Tiếng Việt',
    flag: 'https://flagcdn.com/vn.svg',
  },
  es: {
    code: 'es',
    name: 'Español',
    flag: 'https://flagcdn.com/mx.svg',
  },
  hi: {
    code: 'hi',
    name: 'हिन्दी',
    flag: 'https://flagcdn.com/in.svg',
  },
  ar: {
    code: 'ar',
    name: 'العربية',
    flag: 'https://flagcdn.com/tn.svg',
  },
} as const

export const LOCALES = Object.keys(SUPPORTED_LOCALES) as SupportedLocale[]
export const DEFAULT_LOCALE: SupportedLocale = 'en'

/**
 * Languages array for language selector components
 */
export const LANGUAGES = Object.values(SUPPORTED_LOCALES).map(locale => ({
  label: locale.name,
  value: locale.code,
  flag: locale.flag,
}))

export type SupportedLocale = keyof typeof SUPPORTED_LOCALES
export type SupportedCountry = typeof SUPPORTED_COUNTRIES[number]
