/**
 * Как на основном сайте: в API может прийти уже полный URL
 * (`https://storage.yandexcloud.net/bucket/projects/uuid.jpg`) или ключ
 * (`projects/uuid.jpg`) — тогда к нему дописывается VITE_S3_BUCKET.
 */
export function resolveProjectImageSrc(image: string): string {
  let src = image
    .trim()
    .replaceAll("&quot;", '"')
    .replace(/^["']+|["']+$/g, "");

  try {
    if (src.includes("%")) src = decodeURIComponent(src);
  } catch {
    /* оставляем как есть */
  }

  if (src.startsWith("//")) {
    src = `https:${src}`;
  }
  if (
    src.startsWith("http://") ||
    src.startsWith("https://") ||
    src.startsWith("data:")
  ) {
    return src;
  }

  if (src.startsWith("/")) {
    const base = import.meta.env.BASE_URL;
    if (!base || base === "/") return src;
    return `${base.replace(/\/$/, "")}${src}`;
  }

  const s3BaseRaw =
    typeof import.meta.env.VITE_S3_BUCKET === "string"
      ? import.meta.env.VITE_S3_BUCKET.trim()
      : "";
  if (!s3BaseRaw) return src;
  const base = s3BaseRaw.replace(/\/?$/, "/");
  const path = src.replace(/^\//, "");
  return `${base}${path}`;
}
