/**
 * 系统配置 API 服务
 */

class SystemConfigServer {
    /**
     * 分页查询系统配置
     * @param {Object} param - 查询参数
     * @param {Object} param.seachOption - 搜索条件
     * @param {Object} param.pageOption - 分页选项
     * @returns {Promise}
     */
    page(param) {
        return window.framework.http.post('/config/list', param)
    }

    /**
     * 获取配置分类列表
     * @returns {Promise}
     */
    getCategories() {
        return window.framework.http.get('/config/categories')
    }

    /**
     * 获取单条配置详情
     * @param {String} key - 配置键
     * @returns {Promise}
     */
    get(key) {
        return window.framework.http.post('/config/detail', { configKey: key })
    }

    /**
     * 添加配置
     * @param {Object} data - 配置数据
     * @returns {Promise}
     */
    add(data) {
        return window.framework.http.post('/config/create', data)
    }

    /**
     * 更新配置
     * @param {Object} row - 配置数据
     * @returns {Promise}
     */
    update(row) {
        return window.framework.http.post('/config/update', row)
    }

    /**
     * 批量更新配置
     * @param {Array} configs - 配置数组
     * @returns {Promise}
     */
    batchUpdate(configs) {
        return window.framework.http.post('/config/batch-update', { configs })
    }

    /**
     * 删除配置
     * @param {Object} row - 配置数据
     * @returns {Promise}
     */
    del(row) {
        return window.framework.http.post('/config/delete', { configKey: row.configKey })
    }

    /**
     * 重置配置为默认值
     * @param {String} key - 配置键
     * @returns {Promise}
     */
    reset(key) {
        return window.framework.http.post('/config/reset', { configKey: key })
    }
}

export default new SystemConfigServer()
