import { notifications } from "@mantine/notifications";

/**
 * 通用 API 请求封装
 * @param {string} url 请求地址
 * @param {object} options fetch 配置
 * @param {string} successMsg 成功提示文案（可选）
 * @returns {Promise<any>} 返回 JSON 数据
 */
export async function apiRequest(url, options = {}, successMsg) {
    try {
        const res = await fetch(url, options);

        if (!res.ok) {
            let msg = "请求失败";
            try {
                const errData = await res.json();
                if (errData && errData.message) msg = errData.message;
            } catch (e) {
                // ignore json parse error
            }
            throw new Error(msg);
        }

        const data = await res.json();

        if (successMsg) {
            notifications.show({
                title: "成功",
                message: successMsg,
                color: "green",
            });
        }

        return data;
    } catch (err) {
        console.log("API 请求错误:", err);
        notifications.show({
            title: "操作失败",
            message: err.message || "接口调用失败",
            color: "red",
        });
        throw err; // 继续抛出错误，方便上层处理
    }

    
}