import request from "@/utils/request.js";

/**
 * 创建拼团
 * @param {Object} data - 拼团数据
 * @param {string} data.name - 拼团名称
 * @param {number} data.maxPerson - 最大人数
 * @param {string} data.cover - 封面图片URL
 * @returns {Promise} 返回拼团详情
 */
export const createGroupBuy = (data) => {
    return request.post("/api/v1/group-buy/create", data)
}

/**
 * 检查拼团
 * @param {string} groupBuyId - 拼团ID
 * @returns {Promise} 返回检查结果
 */
export const checkGroupBuy = (groupBuyId) => {
    return request.get(`/api/v1/group-buy/check/${groupBuyId}`)
}

/**
 * 获取拼团详情
 * @param {string} groupBuyId - 拼团ID
 * @returns {Promise} 返回拼团详情
 */
export const getGroupBuyDetail = (groupBuyId) => {
    return request.get(`/api/v1/group-buy/${groupBuyId}`)
}

/**
 * 获取拼团列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.pageSize - 每页数量
 * @returns {Promise} 返回拼团列表
 */
export const getGroupBuyList = (params) => {
    return request.get("/api/v1/users/activity/group_buy/list", params)
}

/**
 * 加入拼团
 * @param {string} groupBuyId - 拼团ID
 * @param {Object} data - 用户数据
 * @returns {Promise} 返回加入结果
 */
export const joinGroupBuy = (groupBuyId, data) => {
    return request.post(`/api/v1/group-buy/${groupBuyId}/join`, data)
}

/**
 * 删除拼团
 * @param {string} groupBuyId - 拼团ID
 * @returns {Promise} 返回删除结果
 */
export const deleteGroupBuy = (groupBuyId) => {
    return request.delete(`/api/v1/group-buy/${groupBuyId}`)
}

// ==================== 拼团类型管理接口 ====================

/**
 * 获取拼团活动类型列表
 * @param {Object} params - 查询参数
 * @param {number} [params.page=1] - 页码
 * @param {number} [params.count=10] - 每页条数
 * @param {string} [params.key] - 关键词筛选
 * @param {number} [params.expire_time] - 过期时间筛选（时间戳）
 * @param {string} [params.tag] - 标签筛选
 * @returns {Promise} 返回拼团类型列表
 */
export const getGroupBuyTypeList = (params) => {
    return request.get("/api/v1/admin/activity/group_buy/type/list", params)
}

/**
 * 获取拼团活动类型标签列表
 * @returns {Promise} 返回标签列表
 */
export const getGroupBuyTypeTags = () => {
    return request.get("/api/v1/admin/activity/group_buy/type/tags")
}

/**
 * 新增拼团活动类型
 * @param {Object} data - 类型数据
 * @param {string} data.name - 名称
 * @param {string} [data.note] - 备注
 * @param {string} data.price - 价格（分）
 * @param {string} [data.renew_price] - 续费价格（分）
 * @param {string} data.max_person - 拼团需要人数
 * @param {string} [data.tag] - 标签
 * @param {number} [data.expire_time] - 活动过期时间
 * @returns {Promise} 返回新增结果
 */
export const addGroupBuyType = (data) => {
    return request.post("/api/v1/admin/activity/group_buy/type/add", data,{
        
    })
}

/**
 * 修改拼团活动类型
 * @param {Object} data - 类型数据
 * @param {string} data.id - ID编号
 * @param {string} [data.name] - 名称
 * @param {string} [data.note] - 备注
 * @param {string} [data.price] - 价格（分）
 * @param {string} [data.renew_price] - 续费价格（分）
 * @param {string} [data.max_person] - 拼团需要人数
 * @param {string} [data.tag] - 标签
 * @param {number} [data.expire_time] - 活动过期时间
 * @returns {Promise} 返回修改结果
 */
export const updateGroupBuyType = (data) => {
    return request.post("/api/v1/admin/activity/group_buy/type/update", data)
}

/**
 * 删除拼团活动类型
 * @param {string} id - 类型ID
 * @returns {Promise} 返回删除结果
 */
export const deleteGroupBuyType = (id) => {
    return request.delete("/api/v1/admin/activity/group_buy/type/delete", { params: { id } })
}

// ==================== 拼团队伍管理接口 ====================

/**
 * 检查队伍列表
 * @returns {Promise} 返回队伍检查结果
 */
export const checkGroupBuyTeams = () => {
    return request.get("/api/v1/admin/activity/group_buy/check")
}

/**
 * 为队伍添加随机伪人
 * @param {string} groupBuyId - 队伍ID
 * @returns {Promise} 返回添加结果
 */
export const addRandomUser = (groupBuyId) => {
    return request.post("/api/v1/admin/activity/group_buy/add_random_user", { group_buy_id: groupBuyId })
}

/**
 * 创建随机伪人队伍
 * @param {Object} data - 队伍数据
 * @param {string} data.name - 队伍名称
 * @param {string} data.group_buy_type_id - 队伍类型ID
 * @returns {Promise} 返回创建结果
 */
export const addRandomGroup = (data) => {
    return request.post("/api/v1/admin/activity/group_buy/add_random_group", data)
}

/**
 * 导出成功队伍信息
 * @returns {Promise} 返回导出数据
 */
export const exportGroupBuyIdcInfo = () => {
    return request.get("/api/v1/admin/activity/group_buy/export_idc_info")
}

/**
 * 为指定队伍下发订单
 * @param {string} groupBuyId - 队伍ID
 * @returns {Promise} 返回下发结果
 */
export const setGroupBuyOrder = (groupBuyId) => {
    return request.post("/api/v1/admin/activity/group_buy/set_order", { group_buy_id: groupBuyId })
}

/**
 * 删除指定队伍
 * @param {string} groupBuyId - 队伍ID
 * @returns {Promise} 返回删除结果
 */
export const removeGroupBuy = (groupBuyId) => {
    return request.delete("/api/v1/admin/activity/group_buy/remove", { params: { group_buy_id: groupBuyId } })
}

/**
 * 清除所有队伍
 * @returns {Promise} 返回清除结果
 */
export const clearAllGroupBuy = () => {
    return request.delete("/api/v1/admin/activity/group_buy/clear")
}

/**
 * 清除指定用户的所有队伍
 * @param {string} userId - 用户ID
 * @returns {Promise} 返回清除结果
 */
export const clearUserGroupBuy = (userId) => {
    return request.delete("/api/v1/admin/activity/group_buy/user_clear", { params: { user_id: userId } })
}
