import api from './index.js';

/**
 * 书架相关接口
 */
export const bookshelfApi = {
    /**
     * 获取我阅读过的书籍列表带分页
     * @param {Object} params 查询参数
     * @param {number} params.pageNo 当前页
     * @param {number} params.pageSize 显示条数
     */
    getReadBookPage(params) {
        return api.get('/all_book/getReadBookPage', { params });
    },

    /**
     * 修改我的书架信息
     * @param {Object} params 书架信息
     */
    saveOrUpdateReadBook(params) {
        return api.post('/all_book/saveOrUpdateReadBook', null, { params });
    },

    /**
     * 增加我的书架阅读记录
     * @param {Object} params 书架记录
     * @param {string} params.shopId 书籍ID
     * @param {string} params.name 书名
     * @param {string} params.image 封面
     * @param {string} params.novelId 章节ID
     */
    addReadBook(params) {
        return api.post('/all_book/addReadBook', null, { params });
    },

    /**
     * 查询这本书是否加入书架
     * @param {number} bookId 书籍ID
     */
    isAddBook(bookId) {
        return api.get('/all_book/isAddBook', {
            params: { bookId }
        });
    },

    /**
     * 移除我阅读过的书籍根据书籍标识
     * @param {string} bookId 书籍ID
     */
    removeReadBook(bookId) {
        return api.get('/all_book/removeReadBook', {
            params: { bookId }
        });
    },

    /**
     * 批量移除我阅读过的数据根据书籍标识
     * @param {string} bookIds 书籍ID列表，逗号分隔
     */
    batchRemoveReadBook(bookIds) {
        return api.get('/all_book/batchRemoveReadBook', {
            params: { bookIds }
        });
    },

    /**
     * 根据书籍id删除书架
     * @param {number} bookId 书籍ID
     */
    deleteBookshelfByBookId(bookId) {
        return api.post('/all_book/deleteBookshelfByBookId', null, {
            params: { bookId }
        });
    },

    /**
     * 根据书籍id获取当前阅读章节
     * @param {number} bookId 书籍ID
     */
    getReadChapterByBookId(bookId) {
        return api.get('/all_book/getReadChapterByBookId', {
            params: { bookId }
        });
    }
};

/**
 * 书架-我的作品相关接口
 */
export const myBookApi = {
    /**
     * 删除作品章节
     * @param {Object} params 删除参数
     * @param {string} params.bookId 书籍ID
     * @param {string} params.id 章节ID
     */
    deleteMyNovel(params) {
        return api.post('/my_book/deleteMyNovel', null, { params });
    },

    /**
     * 删除我的作品
     * @param {string} bookId 书籍ID
     */
    deleteMyShop(bookId) {
        return api.post('/my_book/deleteMyShop', null, {
            params: { bookId }
        });
    },

    /**
     * 多选删除我的作品
     * @param {string} bookIds 书籍ID列表，逗号分隔
     */
    deleteMyShopList(bookIds) {
        return api.post('/my_book/deleteMyShopList', null, {
            params: { bookIds }
        });
    },

    /**
     * 获取我的小说章节列表带分页
     * @param {Object} params 查询参数
     * @param {string} params.bookId 书籍ID
     * @param {number} params.pageNo 当前页
     * @param {number} params.pageSize 显示条数
     * @param {number} params.reverse 是否倒序
     * @param {number} params.status 状态
     */
    getMyShopNovelPage(params) {
        return api.post('/my_book/getMyShopNovelPage', null, { params });
    },

    /**
     * 获取我的作品带分页
     * @param {Object} params 分页参数
     * @param {number} params.pageNo 当前页
     * @param {number} params.pageSize 显示条数
     */
    getMyShopPage(params) {
        return api.get('/my_book/getMyShopPage', { params });
    },

    /**
     * 查询我是否购买了这个章节
     * @param {Object} params 查询参数
     * @param {string} params.bookId 书籍ID
     * @param {string} params.novelId 章节ID
     */
    getMyShopNovel(params) {
        return api.get('/my_book/getMyShopNovel', { params });
    },

    /**
     * 添加作品或者修改作品
     * @param {Object} shopData 作品数据
     */
    saveOrUpdateShop(shopData) {
        return api.post('/my_book/saveOrUpdateShop', null, {
            params: shopData
        });
    },

    /**
     * 增加或修改作品章节
     * @param {Object} novelData 章节数据
     */
    saveOrUpdateShopNovel(data) {
        return api.post('/my_book/saveOrUpdateShopNovel', data);
    }
};

/**
 * 书架-读者成就相关接口
 */
export const achievementApi = {
    /**
     * 根据用户标识和书籍标识查询该用户的成就等级
     * @param {string} bookId 书籍ID
     */
    getAchievementByBookId(bookId) {
        return api.get('/all_achievement/getAchievementByBookId', {
            params: { bookId }
        });
    },
    /**
     * 获取作者设置的成就等级对象
     * @param {string} bookId 书籍ID
     */
    getAchievement() {
        return api.get('/all_achievement/getAchievement');
    },

    /**
     * 获取读者成就列表
     */
    getAchievementList() {
        return api.get('/all_achievement/getAchievementList');
    },

    /**
     * 设置读者成就等级名称
     * @param {Object} achievementData 成就数据
     */
    setAchievementName(achievementData) {
        return api.post('/all_achievement/setAchievementName', null, {
            params: achievementData
        });
    }
}; 