import type { AboutUsPageFormStateShape } from "@/lib/pages/about-us/form-types"
import type { AboutUsPageLocaleCode } from "@/lib/pages/about-us/locales"

export function resolveAboutUsDefaultImage(
  locales: Partial<Record<AboutUsPageLocaleCode, AboutUsPageFormStateShape | undefined>>
): string {
  const en = (locales.en?.hero?.image ?? "").trim()
  if (en) return en
  const tr = (locales.tr?.hero?.image ?? "").trim()
  if (tr) return tr
  return (locales.ar?.hero?.image ?? "").trim()
}

export function normalizeAboutUsLocaleImagesForStorage(
  locales: Partial<Record<AboutUsPageLocaleCode, AboutUsPageFormStateShape | undefined>>
): Partial<Record<AboutUsPageLocaleCode, AboutUsPageFormStateShape>> {
  const next: Partial<Record<AboutUsPageLocaleCode, AboutUsPageFormStateShape>> = {}
  for (const code of ["en", "tr", "ar"] as const) {
    const chunk = locales[code]
    if (!chunk) continue
    next[code] = {
      ...chunk,
      hero: {
        ...chunk.hero,
        image: (chunk.hero.image ?? "").trim(),
        imagePublicId: (chunk.hero.imagePublicId ?? "").trim(),
      },
    }
  }

  const defaultImage = resolveAboutUsDefaultImage(next)
  if (next.en) next.en.hero.image = defaultImage
  for (const code of ["tr", "ar"] as const) {
    const chunk = next[code]
    if (!chunk) continue
    if ((chunk.hero.image ?? "").trim() === defaultImage) {
      chunk.hero.image = ""
      chunk.hero.imagePublicId = ""
    }
  }
  return next
}
