class UpdateBusinessIndustries {
    init() {
        this.handleUpdateData();
    }

    handleUpdateData() {
        const form = document.getElementById("formUpdateBusinessIndustries");
        const submitButton = document.getElementById(
            "btnUpdateBusinessIndustries"
        );
        const toastNotification = document.getElementById("toastNotification");
        const toastBody = document.getElementById("toastBody"); // Add an element inside toast to display messages
        const spinner = document.getElementById("spinner");
        const toast = new bootstrap.Toast(toastNotification);

        if (!submitButton) {
            console.error("Error: Submit button not found!");
            return;
        }

        submitButton.addEventListener("click", async function (e) {
            e.preventDefault();

            // Disable button and show spinner
            submitButton.disabled = true;
            spinner.classList.remove("d-none");

            // Create FormData object
            const formData = new FormData(form);
            const formObject = {};
            formData.forEach((value, key) => {
                formObject[key] = value;
            });
            formData.append("_method", "PUT");

            try {
                let response = await fetch(form.action, {
                    method: "POST", // Laravel's update route uses PUT, so adjust accordingly
                    headers: {
                        Authorization: `Bearer ${document
                            .querySelector('meta[name="api-token"]')
                            .getAttribute("content")}`,
                        "Content-Type": "application/json",
                    },
                    body: JSON.stringify(formObject),
                });

                let data = await response.json();

                if (response.ok) {
                    // Show success toast
                    document.getElementById("toast-message").innerText =
                        data.message;
                    toast.show();
                    setTimeout(() => {
                        window.location.href = "/data/business-industries";
                    }, 2000);
                } else {
                    // Show error toast with message from API
                    document.getElementById("toast-message").innerText =
                        data.message;
                    toast.show();
                    submitButton.disabled = false;
                    spinner.classList.add("d-none");
                }
            } catch (error) {
                // Show error toast for network errors
                document.getElementById("toast-message").innerText =
                    data.message;
                toast.show();
                submitButton.disabled = false;
                spinner.classList.add("d-none");
            }
        });
    }
}
document.addEventListener("DOMContentLoaded", function (e) {
    new UpdateBusinessIndustries().init();
});
