export default async function fetchWrapper(
    path,
    data = null,
    method = "GET",
    headers = {}
) {
    try {
        const res = await fetch(
            `${import.meta.env.VITE_API_URL}${path}`,
            {
                method,
                credentials: "include",
                headers: {
                    "Accept": "application/json",
                    "Content-Type": "application/json",
                    ...headers,
                },
                body: data ? JSON.stringify(data) : null,
            }
        );

        let responseData = null;

        try {
            responseData = await res.json();
        } catch (_) {
            responseData = null;
        }

        return {
            status: res.status,
            data: responseData,
        };

    } catch (err) {
        console.error("❌ Erreur réseau :", err);

        return {
            status: 0,
            data: {
                message: "Network error",
            },
        };
    }
}
