/**
 * 岗位信息 API 服务
 */

class JobPostingsServer {
    /**
     * 分页查询岗位信息
     * @param {Object} param - 查询参数
     * @param {Object} param.seachOption - 搜索条件
     * @param {Object} param.pageOption - 分页选项
     * @returns {Promise}
     */
    page(param) {
        return window.framework.http.post('job/list', param)
    }

    /**
     * 获取岗位统计数据
     * @returns {Promise}
     */
    getStatistics() {
        return window.framework.http.get('/job/statistics')
    }

    /**
     * 获取单条岗位详情
     * @param {Number|String} jobId - 岗位ID
     * @returns {Promise}
     */
    getById(jobId) {
        return window.framework.http.post('job/detail', { jobId })
    }

    /**
     * 职位打招呼（通过MQTT发送指令到boss-automation-nodejs）
     * @param {Object} data - 打招呼数据
     * @param {String} data.sn_code - 设备SN码
     * @param {String} data.encryptJobId - 加密的职位ID
     * @param {String} data.brandName - 公司名称
     * @returns {Promise}
     */
    jobGreet(data) {
        return window.framework.http.post('/job/greet', data)
    }

    /**
     * 获取聊天列表
     * @param {Object} params - 查询参数
     * @param {String} params.sn_code - 设备SN码
     * @returns {Promise}
     */
    getChatList(params) {
        return window.framework.http.get('/job/chat-list', params)
    }

    /**
     * 发送聊天消息
     * @param {Object} data - 消息数据
     * @param {String} data.sn_code - 设备SN码
     * @param {String} data.jobId - 职位ID
     * @param {String} data.message - 消息内容
     * @param {String} data.chatType - 聊天类型
     * @returns {Promise}
     */
    sendMessage(data) {
        return window.framework.http.post('/job/send-message', data)
    }

    /**
     * 导出岗位信息为CSV
     * @param {Object} param - 查询参数
     * @returns {Promise}
     */
    exportCsv(param) {
        return window.framework.http.post('/job/export', param, { responseType: 'blob' })
    }

    /**
     * 删除岗位信息
     * @param {Object} row - 岗位数据（包含id）
     * @returns {Promise}
     */
    del(row) {
        return window.framework.http.post('/job/delete', { jobId: row.jobId })
    }

    /**
     * 批量删除
     * @param {Array} ids - ID数组
     * @returns {Promise}
     */
    batchDelete(ids) {
        return window.framework.http.post('/job/delete', { jobIds: ids })
    }
}

export default new JobPostingsServer()

