// 个人服务api
import request from "@/utils/request";

export const grfwApi = {
    /**
     * 查询留言成员列表（家长端）
     * @param {object} data - 查询参数（按后端需要透传）
     * @returns {Promise} 返回原始响应
     */
    btc_selChatMbr: (data = {}) => {
        return request.post(
            `/service?ssServ=btc_selChatMbr`,
            data,
            {
                loading: false,
                formData: true,
                request: {
                    timeout: 120000
                }
            }
        );
    },
    grfw_chkGrfw: () => {
        return request.post(
            `/service?ssServ=grfw_chkGrfw`,
            {},
            {
                loading: false,
                formData: true
            }
        );
    },

    /**
     * 初始化个人服务包购买 - 显示可选服务包
     * @param {object} data - 查询参数
     * @returns {Promise} 返回服务包列表
     * @returns {string} minJzsj - 现有的所有个人服务项目的最小截止时间
     * @returns {Array} grfwbmxList - 服务包列表
     * @returns {string} grfwbmxList[].grfwbid - 个人服务包ID
     * @returns {string} grfwbmxList[].mc - 名称
     * @returns {number} grfwbmxList[].jg - 价格
     * @returns {number} grfwbmxList[].num - 周包数量。0 = 不是周包，若在当前学期中，补买到当前学期结束的周数
     */
    grfw_initGrfwbBuy: (data) => {
        return request.post(
            `/service?ssServ=grfw_initGrfwbBuy`,
            data,
            {
                loading: true,
                formData: true,
            }
        );
    },

    /**
     * 预支付个人服务包
     * @param {object} data - 支付参数
     * @param {string} data.grfwbid - 个人服务包ID
     * @returns {Promise} 返回预支付信息
     * @returns {string} outTradeNo - 订单号 (<应用名>grfwb<UUID>)
     * @returns {object} prepay - PrepayWithRequestPaymentResponse对象
     */
    grfw_prepayGrfwb: (data) => {
        return request.post(
            `/service?ssServ=grfw_prepayGrfwb`,
            data,
            {
                loading: true,
                formData: true,
            }
        );
    },

    /**
     * 检查订单支付情况
     * @param {object} data - 查询参数
     * @param {string} data.outTradeNo - 订单号
     * @returns {Promise} 返回Transaction对象
     */
    chkWechatpayBySs: (data) => {
        return request.post(
            `/service?ssServ=ss.chkWechatpayBySs`,
            data,
            {
                loading: true,
                formData: true,
            }
        );
    },

    /**
     * 支付成功后确认服务
     * @param {object} data - 确认参数
     * @param {string} data.grfwbid - 个人服务包ID
     * @returns {Promise} 返回购买结果
     * @returns {string} mc - 个人服务包名称
     * @returns {number} sjdys - 时间单元数
     * @returns {string} jzsj - 截止时间
     * @returns {Array} grfwList - 个人服务项目列表
     * @returns {string} grfwList[].grfwxmm - 个人服务项目名称（离校通知、视频电话等）
     * @returns {string} grfwList[].jsfsm - 计数方式码（计次数、计时长、计流量）
     * @returns {number} grfwList[].zdsc - 最大时长
     * @returns {number} grfwList[].zdll - 最大流量
     * @returns {number} grfwList[].zdcs - 最大次数
     * @returns {boolean} grfwList[].sfmf - 是否免费
     * @returns {boolean} grfwList[].sfty - 是否停用
     */
    grfw_endGrfwbBuy: (data) => {
        return request.post(
            `/service?ssServ=grfw_endGrfwbBuy`,
            data,
            {
                loading: true,
                formData: true,
            }
        );
    },
}
