<?php

namespace App\Providers;

use Illuminate\Support\Facades\Http;
use Exception;

class DocumentoProvider
{
    protected $baseUrl;
    protected $token;

    public function __construct()
    {
        // Recuperamos las credenciales del archivo .env
        $this->baseUrl = env('FACTILIZA_URL', 'https://api.factiliza.com/v1');
        $this->token = env('FACTILIZA_TOKEN');
    }

    /**
     * Método genérico para realizar peticiones GET a la API
     */
    private function makeRequest($endpoint)
    {
        if (empty($this->token)) {
            return [
                'success' => false,
                'message' => 'Token de API no configurado en el .env'
            ];
        }

        try {
            // Laravel Http Facade facilita la conexión Bearer
            $response = Http::withoutVerifying()
                ->withToken($this->token)
                ->timeout(10) // Timeout de 10 segundos
                ->get($this->baseUrl . $endpoint);

            if ($response->successful()) {
                return $response->json();
            }

            return [
                'success' => false,
                'message' => 'No se encontraron resultados o error en la API externa',
                'status_code' => $response->status(),
                // 'debug' => $response->body() // Descomentar para depurar
            ];

        } catch (Exception $e) {
            return [
                'success' => false,
                'message' => 'Error de conexión: ' . $e->getMessage()
            ];
        }
    }

    public function consultarDni($dni)
    {
        // Endpoint según documentación: /dni/info/{dni}
        return $this->makeRequest("/dni/info/{$dni}");
    }

    public function consultarRuc($ruc)
    {
        // Endpoint según documentación: /ruc/info/{ruc}
        return $this->makeRequest("/ruc/info/{$ruc}");
    }

    public function consultarCee($cee)
    {
        // Endpoint según documentación: /cee/info/{cee}
        return $this->makeRequest("/cee/info/{$cee}");
    }
}