/**
 * 用户模块 - 用户信息、VIP、资金流水相关接口
 */
import RequestManager from '../request';
import common from '../common';

/**
 * 获取用户信息
 * @returns {Promise}
 */
export const getUserInfo = async () => {
    const res = await RequestManager.get('/userInfo');
    if (res.status == 1) {
        res.data.money = common.removeTrailingZeros(res.data.money);
        res.data.integral = common.removeTrailingZeros(res.data.integral);
        res.data.money2 = common.removeTrailingZeros(res.data.money2);
        return res.data;
    } else {
        return null;
    }
};

/**
 * 获取用户完整信息（包含userinfo对象）
 * @returns {Promise} 用户完整信息
 */
export const getUser = async () => {
    return await RequestManager.post('/user', {});
};

/**
 * 更新用户信息
 * @param {Object} data 用户信息
 * @param {String} data.nickname 昵称
 * @param {String} data.headimg 头像
 * @returns {Promise} 更新结果
 */
export const updateUserInfo = async (data) => {
    return await RequestManager.post('/updateUserInfo', data);
};

/**
 * 获取权益等级列表
 * @returns {Promise} 权益等级列表
 */
export const getEquityList = async () => {
    return await RequestManager.get('/equity_list', {}, true);
};

/**
 * 获取余额流水记录
 * @param {Number} page 页码
 * @param {Number} pageSize 每页数量
 * @param {Number} type 类型 0-全部 1-收入 2-支出
 * @returns {Promise} 流水记录
 */
export const getProfitMoney = async (page = 1, pageSize = 10, type = 0) => {
    return await RequestManager.get('/profitMoney', {
        page,
        pageSize,
        type
    }, true);
};

/**
 * 获取积分流水记录
 * @param {Number} page 页码
 * @param {Number} pageSize 每页数量
 * @param {Number} type 类型 0-全部 1-收入 2-支出
 * @returns {Promise} 流水记录
 */
export const getProfitIntegral = async (page = 1, pageSize = 10, type = 0) => {
    return await RequestManager.get('/profitIntegral', {
        page,
        pageSize,
        type
    }, true);
};

/**
 * 获取欧气值流水记录
 * @param {Number} page 页码
 * @param {Number} pageSize 每页数量
 * @param {Number} type 类型 0-全部 1-收入 2-支出
 * @returns {Promise} 流水记录
 */
export const getProfitScore = async (page = 1, pageSize = 10, type = 0) => {
    return await RequestManager.get('/profitScore', {
        page,
        pageSize,
        type
    }, true);
};

/**
 * 获取消费记录
 * @param {Number} page 页码
 * @param {Number} pageSize 每页数量
 * @returns {Promise} 消费记录
 */
export const getProfitPay = async (page = 1, pageSize = 10) => {
    return await RequestManager.get('/profitPay', {
        page,
        pageSize
    }, true);
};

/**
 * 获取权益信息
 * @returns {Promise} 权益信息
 */
export const getEquity = async () => {
    return await RequestManager.get('/quan_yi', {});
};

/**
 * 领取权益奖励
 * @param {Number} id 权益ID
 * @returns {Promise} 领取结果
 */
export const receiveEquity = async (id) => {
    return await RequestManager.post('/quan_yi_ling', { id });
};

/**
 * 获取任务列表
 * @param {Number} type 任务类型 1-每日任务 2-每周任务
 * @returns {Promise} 任务列表
 */
export const getTaskList = async (type) => {
    return await RequestManager.post('/task_list', { type });
};

/**
 * 领取任务奖励
 * @param {Number} taskId 任务ID
 * @returns {Promise} 领取结果
 */
export const receiveTaskReward = async (taskId) => {
    return await RequestManager.post('/ling_task', { TaskListId: taskId });
};

/**
 * 获取提现记录
 * @param {Object} params 查询参数
 * @param {Number} params.page 页码
 * @returns {Promise} 提现记录
 */
export const getWithdrawLog = async (params = {}) => {
    return await RequestManager.post('/withdraw_log', params);
};

/**
 * 提交提现申请
 * @param {Object} params 提现参数
 * @param {Number} params.money 提现金额
 * @param {Number} params.type 提现方式 2-支付宝 3-银行卡
 * @param {String} params.name 姓名
 * @param {String} params.number 账号
 * @param {String} params.bank 开户行（银行卡时必填）
 * @returns {Promise} 提现结果
 */
export const submitWithdraw = async (params = {}) => {
    return await RequestManager.post('/withdraw', params);
};