import requests
from flask import Blueprint, request, jsonify
from flask_jwt_extended import jwt_required

pictogramas_bp = Blueprint('pictogramas', __name__)

ARASAAC_BASE = 'https://api.arasaac.org/api/pictograms/pt/search'
ARASAAC_IMAGEM = 'https://static.arasaac.org/pictograms/{id}/{id}_500.png'

@pictogramas_bp.route('/buscar', methods=['GET'])
@jwt_required()
def buscar():
    termo = request.args.get('q', '').strip()
    if not termo or len(termo) < 2:
        return jsonify({'erro': 'Digite pelo menos 2 letras para buscar'}), 400

    try:
        resposta = requests.get(f'{ARASAAC_BASE}/{termo}', timeout=8)
        resposta.raise_for_status()
        dados = resposta.json()
    except Exception:
        return jsonify({'erro': 'Não foi possível buscar pictogramas no momento'}), 503

    resultados = [{
        'id': item['_id'],
        'imagem': ARASAAC_IMAGEM.format(id=item['_id']),
        'palavra': next((k['keyword'] for k in item.get('keywords', [])), termo)
    } for item in dados[:20]]  # limita a 20 resultados

    return jsonify({'resultados': resultados}), 200