/**
 * Утилиты для формирования правильных путей к файлам и изображениям
 */

/**
 * Формирует правильный URL для изображения заметки
 * @param filePath - путь к файлу, возвращаемый сервером
 * @param noteId - ID заметки
 * @param imageId - ID изображения
 * @returns Правильный URL для доступа к изображению
 */
export function getImageUrl(
  filePath: string,
  noteId: number,
  imageId: number
): string {
  // Если путь уже является полным URL (начинается с http:// или https://)
  if (filePath.startsWith("http://") || filePath.startsWith("https://")) {
    return filePath;
  }

  // Если путь начинается с /api, возвращаем как есть
  if (filePath.startsWith("/api")) {
    return filePath;
  }

  // Если путь начинается с /uploads, возвращаем как есть (не добавляем /api)
  if (filePath.startsWith("/uploads")) {
    return filePath;
  }

  // Если путь начинается с /, добавляем /api
  if (filePath.startsWith("/")) {
    return `/api${filePath}`;
  }

  // Используем endpoint API для получения изображения
  return `/api/notes/${noteId}/images/${imageId}`;
}

/**
 * Формирует правильный URL для файла заметки
 * @param filePath - путь к файлу, возвращаемый сервером
 * @param noteId - ID заметки
 * @param fileId - ID файла
 * @returns Правильный URL для доступа к файлу
 */
export function getFileUrl(
  filePath: string,
  noteId: number,
  fileId: number
): string {
  // Если путь уже является полным URL (начинается с http:// или https://)
  if (filePath.startsWith("http://") || filePath.startsWith("https://")) {
    return filePath;
  }

  // Если путь начинается с /api, возвращаем как есть
  if (filePath.startsWith("/api")) {
    return filePath;
  }

  // Если путь начинается с /uploads, возвращаем как есть (не добавляем /api)
  if (filePath.startsWith("/uploads")) {
    return filePath;
  }

  // Если путь начинается с /, добавляем /api
  if (filePath.startsWith("/")) {
    return `/api${filePath}`;
  }

  // Используем endpoint API для получения файла
  return `/api/notes/${noteId}/files/${fileId}`;
}

