/**
 * Build a safe image URL for assets coming from the CMS.
 *
 * Rules:
 * - If already a full URL (http/https) → return as is
 * - If starts with `/uploads/` or `/img/` → prepend API URL (NEXT_PUBLIC_API_URL or default localhost)
 * - If starts with `/` → use as-is (served by Next/public)
 * - Otherwise → treat as relative path under `/`
 */
export function getCmsImageUrl(imagePath: string | undefined): string {
  if (!imagePath) return "";

  if (imagePath.startsWith("http://") || imagePath.startsWith("https://")) {
    return imagePath;
  }

  // Hỗ trợ cả "/uploads/", "uploads/", "/img/", "img/"
  if (
    imagePath.startsWith("/uploads/") ||
    imagePath.startsWith("uploads/") ||
    imagePath.startsWith("/img/") ||
    imagePath.startsWith("img/")
  ) {
    const apiUrl = process.env.NEXT_PUBLIC_API_URL || "http://localhost:3001";
    // Nếu thiếu dấu "/" đầu, thêm vào cho đúng path
    const fixedPath =
      imagePath.startsWith("/") ? imagePath : `/${imagePath}`;
    return `${apiUrl}${fixedPath}`;
  }

  if (imagePath.startsWith("/")) {
    return imagePath;
  }

  return `/${imagePath}`;
}

