package com.trackingpremium.report.utils;

import org.springframework.http.HttpHeaders;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestTemplate;

@Component
public class ImageService {

	private final RestTemplate restTemplate = new RestTemplate();
	
	@Value("${app.tokens.clients.web}")
	private String token;
	
	public boolean doesImageExist(String imageUrl) {
		HttpHeaders headers = new HttpHeaders();

		headers.set("Authorization", "Bearer " + token);
		
		HttpEntity<String> entity = new HttpEntity<>(headers);

		try {
			ResponseEntity<String> response = restTemplate.exchange(imageUrl, HttpMethod.HEAD, entity, String.class);

			return response.getStatusCode() == HttpStatus.OK;
		} catch (HttpClientErrorException e) {
			System.err.println("Error al acceder a la imagen: " + e.getStatusCode() + " - " + e.getMessage());
			return false;
		} catch (Exception e) {
			System.err.println("Error de conexión al validar la URL: " + e.getMessage());
			return false;
		}
	}
}