// Uporabimo "any" za klic, da se izognemo sporom med tipi, 
// ali pa definiramo skupni vmesnik.
export const revalidateGlobal: any = async ({ doc, previousDoc, req, global }: any) => {
  try {
    let urlToRevalidate = ''

    if (global) {
      // Za Menu osvežimo domovinsko stran (ali pa celo več poti)
      urlToRevalidate = '/'
      console.log(`Global change detected (${global.slug}), revalidating: ${urlToRevalidate}`)
    } else if (doc) {
      // Za Collections (Posts, Pages)
      const slug = doc.slug || doc.url || ''
      urlToRevalidate = slug === 'index' ? '/' : `/${slug}`
    }

    if (!urlToRevalidate) return doc

    const fullPath = `${process.env.NEXT_PUBLIC_SERVER_URL}/api/revalidate?secret=${process.env.NEXT_REVALIDATION_TOKEN}&path=${urlToRevalidate}`

    const res = await fetch(fullPath)

    if (res.ok) {
      console.log(`Successfully revalidated: ${urlToRevalidate}`)
    } else {
      console.error(`Failed to revalidate: ${urlToRevalidate} (Status: ${res.status})`)
    }
  } catch (err) {
    console.error(`Error during revalidation: ${err}`)
  }

  return doc
}