"""
Hacienda API Integration
Fetches currency rates from BCCR via Hacienda API
"""
from flask import Blueprint, jsonify
import requests
from datetime import datetime
import logging

bp = Blueprint('hacienda', __name__, url_prefix='/api')
logger = logging.getLogger(__name__)

@bp.route('/tipo-cambio', methods=['GET'])
def get_tipo_cambio():
    """
    Get current exchange rates from BCCR via Hacienda API
    No authentication required for this endpoint
    """
    try:
        url = "https://api.hacienda.go.cr/indicadores/tc"
        response = requests.get(url, timeout=10)
        response.raise_for_status()
        
        data = response.json()
        
        return jsonify({
            'success': True,
            'data': data,
            'timestamp': datetime.utcnow().isoformat()
        }), 200
        
    except requests.exceptions.Timeout:
        logger.error("Timeout connecting to Hacienda API")
        return jsonify({
            'success': False,
            'error': 'API timeout',
            'message': 'El servicio de tipos de cambio tardó demasiado'
        }), 504
        
    except requests.exceptions.RequestException as e:
        logger.error(f"Error fetching tipo de cambio: {str(e)}")
        return jsonify({
            'success': False,
            'error': 'API error',
            'message': 'No se pudo obtener los tipos de cambio'
        }), 502
        
    except Exception as e:
        logger.error(f"Unexpected error in tipo_cambio: {str(e)}")
        return jsonify({
            'success': False,
            'error': 'Server error',
            'message': 'Error interno del servidor'
        }), 500
