import { LANGUAGE_COOKIE_NAME, COOKIE_MAX_AGE, LANGUAGE_HEADER_KEY, DEFAULT_LANGUAGE, type Language } from './config'

export function setLanguageCookie(language: Language): void {
  if (typeof document === 'undefined') return
  const date = new Date()
  date.setTime(date.getTime() + COOKIE_MAX_AGE * 1000)
  document.cookie = `${LANGUAGE_COOKIE_NAME}=${language}; expires=${date.toUTCString()}; path=/; SameSite=Lax`
}

export function getLanguageCookie(): string | null {
  if (typeof document === 'undefined') return null
  const match = document.cookie.match(
    new RegExp(`(?:^|;\\s*)${LANGUAGE_COOKIE_NAME}=([^;]*)`)
  )
  return match ? decodeURIComponent(match[1]) : null
}

export function getLanguageFromHeaders(headers: Headers): string {
  return headers.get(LANGUAGE_HEADER_KEY) || DEFAULT_LANGUAGE
}
