const resultElement = document.getElementById("barcode-result");
const stopButton = document.getElementById("stop-button");
const productDetails = document.getElementById("product-details");
const productInfoList = document.getElementById("product-info-list");

function startScanner() {
    console.log("Starting Quagga...");
    Quagga.init({
        inputStream: {
            name: "Live",
            type: "LiveStream",
            target: document.querySelector("#video-preview"),
        },
        decoder: {
            readers: ["ean_reader", "code_128_reader", "upc_reader"],
        },
    }, function(err) {
        if (err) {
            console.error("Ошибка инициализации Quagga:", err);
            alert("Ошибка инициализации камеры");
            return;
        }
        console.log("Quagga started successfully.");
        Quagga.start();
        stopButton.style.display = "inline";
    });

    Quagga.onDetected(function(data) {
        const barcode = data.codeResult.code;
        resultElement.innerText = barcode;
        Quagga.stop();
        stopButton.style.display = "none";

        fetch('/warehouse/process-barcode/', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
            body: JSON.stringify({ barcode: barcode })
        })
        .then(response => response.json())
        .then(product => {
            if (product.error) {
                alert(product.error);
                return;
            }
            productInfoList.innerHTML = '';
            for (const [key, value] of Object.entries(product)) {
                const listItem = document.createElement('li');
                listItem.innerText = `${key}: ${value}`;
                productInfoList.appendChild(listItem);
            }
            productDetails.style.display = "block";
        })
        .catch(error => {
            console.error("Ошибка:", error);
            alert("Ошибка на сервере или продукт не найден.");
        });
    });
}

stopButton.addEventListener("click", () => {
    Quagga.stop();
    stopButton.style.display = "none";
});

document.addEventListener("DOMContentLoaded", startScanner);