const AI_SERVICE = process.env.AI_SERVICE_URL || "http://localhost:3001"

export async function chatWithAI(message: string, userId: string, userRole: string) {
  const res = await fetch(`${AI_SERVICE}/ai/chat`, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ message, user_id: userId, user_role: userRole }),
  })

  if (!res.ok) {
    const text = await res.text()
    throw new Error(`AI service error (${res.status}): ${text}`)
  }

  const data = await res.json()
  return data.response || ""
}

export async function fetchJobs() {
  try {
    const res = await fetch(`${AI_SERVICE}/ai/jobs`)
    if (!res.ok) return []
    const data = await res.json()
    return data.jobs || []
  } catch {
    return []
  }
}

export async function getInstructions() {
  try {
    const res = await fetch(`${AI_SERVICE}/ai/instructions`)
    if (!res.ok) return null
    const data = await res.json()
    return data.success ? data.instructions : null
  } catch {
    return null
  }
}

export async function updateInstructions(entry: string, content?: string) {
  const res = await fetch(`${AI_SERVICE}/ai/instructions`, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ entry, content }),
  })
  return res.ok
}

export async function checkAiServiceStatus() {
  try {
    const res = await fetch(`${AI_SERVICE}/health`)
    if (!res.ok) return false
    const data = await res.json()
    return data.status === "ok"
  } catch {
    return false
  }
}
