import cv2
import numpy as np
from fastapi import APIRouter, UploadFile, File
from pyzbar.pyzbar import decode

# Instanciamos el router
router = APIRouter()

@router.post("/api/leer-qr")
async def leer_qr(file: UploadFile = File(...)):
    contents = await file.read()
    nparr = np.frombuffer(contents, np.uint8)
    img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)

    qrs = decode(img)
    
    if qrs:
        texto_qr = qrs[0].data.decode("utf-8")
        print(f"QR detectado: {texto_qr}")
        return {"status": "success", "data": texto_qr}
    
    return {"status": "error", "message": "No se encontró QR"}