/**
 * 优惠券模块 - 优惠券列表、领取、合成相关接口
 */
import RequestManager from '../request';

/**
 * 获取待领取优惠券数量
 * @returns {Promise} 待领取优惠券数量
 */
export const getPendingCouponCount = async () => {
    return await RequestManager.get('/coupon_pending_count', {}, true);
};

/**
 * 获取优惠券列表
 * @param {Object} params 查询参数
 * @param {Number} params.page 页码
 * @param {Number} params.pageSize 每页数量
 * @param {Number} params.type 类型 1-可用 2-已使用 3-已过期
 * @returns {Promise} 优惠券列表
 */
export const getCouponList = async (params = {}) => {
    return await RequestManager.get('/coupon_list', params, true);
};

/**
 * 获取优惠券详情
 * @param {Number} couponId 优惠券ID
 * @returns {Promise} 优惠券详情
 */
export const getCouponDetail = async (couponId) => {
    return await RequestManager.post('/coupon_detail', {
        coupon_id: couponId
    });
};

/**
 * 领取优惠券
 * @param {Number} couponId 优惠券ID
 * @returns {Promise} 领取结果
 */
export const receiveCoupon = async (couponId) => {
    return await RequestManager.post('/coupon_ling', {
        coupon_id: couponId
    });
};

/**
 * 批量领取优惠券
 * @param {String} couponIds 优惠券ID列表，逗号分隔
 * @returns {Promise} 领取结果
 */
export const receiveCoupons = async (couponIds) => {
    return await RequestManager.post('/receive', {
        couponId: couponIds
    });
};

/**
 * 分享优惠券
 * @param {Number} couponId 优惠券ID
 * @returns {Promise} 分享结果
 */
export const shareCoupon = async (couponId) => {
    return await RequestManager.post('/coupon_share', {
        coupon_id: couponId
    });
};

/**
 * 合成优惠券
 * @param {String} couponIds 优惠券ID列表，逗号分隔
 * @returns {Promise} 合成结果
 */
export const synthesisCoupon = async (couponIds) => {
    return await RequestManager.post('/coupon_synthesis', {
        coupon_ids: couponIds
    });
};

/**
 * 计算合成结果
 * @param {String} couponIds 优惠券ID列表，逗号分隔
 * @returns {Promise} 计算结果
 */
export const calcSynthesis = async (couponIds) => {
    return await RequestManager.post('/coupon_ji_suan', {
        coupon_ids: couponIds
    });
};

/**
 * 获取可领取的优惠券列表
 * @returns {Promise} 优惠券列表
 */
export const getAvailableCoupons = async () => {
    return await RequestManager.get('/coupon', {});
};

/**
 * 获取可使用的优惠券列表（用于订单页面）
 * @param {Object} params 查询参数
 * @param {Number} params.page 页码
 * @param {Number} params.type 页面类型
 * @param {Number} params.type1 优惠券状态 1-可用 2-不可用
 * @param {Number} params.status 状态
 * @param {Number} params.total_price 订单总价（可选）
 * @returns {Promise} 优惠券列表
 */
export const getUsedCouponList = async (params = {}) => {
    return await RequestManager.get('/used', params, true);
};

/**
 * 获取领券中心优惠券列表
 * @param {Object} params 查询参数
 * @param {Number} params.page 页码
 * @param {Number} params.coupon_id 优惠券ID（可选）
 * @returns {Promise} 优惠券列表
 */
export const getCouponCenterList = async (params = {}) => {
    return await RequestManager.post('/t_coupon_list', params);
};

/**
 * 领取领券中心优惠券
 * @param {Number} couponId 优惠券ID
 * @returns {Promise} 领取结果
 */
export const receiveCouponCenter = async (couponId) => {
    return await RequestManager.post('/t_coupon_ling', {
        coupon_id: couponId
    });
};
