/**
 * 聊天记录 API 服务
 */

class ChatRecordsServer {
    /**
     * 分页查询聊天记录
     * @param {Object} param - 查询参数
     * @param {Object} param.seachOption - 搜索条件
     * @param {Object} param.pageOption - 分页选项
     * @returns {Promise}
     */
    page(param) {
        return window.framework.http.post('/chat/list', param)
    }

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

    /**
     * 获取单条聊天详情
     * @param {Number|String} chatId - 聊天记录ID
     * @returns {Promise}
     */
    getById(chatId) {
        return window.framework.http.post('/chat/detail', { chatId })
    }

    /**
     * 删除聊天记录
     * @param {Object} row - 聊天记录数据（包含id或chatId）
     * @returns {Promise}
     */
    del(row) {
        return window.framework.http.post('/chat/delete', { 
            chatId: row.chatId || row.id,
            id: row.id || row.chatId
        })
    }

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

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

    /**
     * 获取与某个职位的聊天记录
     * @param {Object} params - 查询参数
     * @param {String} params.jobId - 职位ID
     * @param {String} params.sn_code - 设备SN码
     * @returns {Promise}
     */
    getByJobId(params) {
        return window.framework.http.get('/chat/by-job', params)
    }

    /**
     * 导出聊天记录为CSV
     * @param {Object} param - 查询参数
     * @returns {Promise}
     */
    exportCsv(param) {
        return window.framework.http.post('/chat/export', param, { responseType: 'blob' })
    }

    /**
     * 标记消息为已读
     * @param {Object} data - 数据
     * @param {String} data.chatId - 聊天记录ID
     * @returns {Promise}
     */
    markAsRead(data) {
        return window.framework.http.post('/chat/mark-read', data)
    }

    /**
     * 获取未读消息数量
     * @param {Object} params - 查询参数
     * @param {String} params.sn_code - 设备SN码
     * @returns {Promise}
     */
    getUnreadCount(params) {
        return window.framework.http.get('/chat/unread-count', params)
    }
}

export default new ChatRecordsServer()

