// 留言相关API服务
import apiService from './apiService'

/**
 * 留言服务类
 */
class MessageService {
  /**
   * 获取留言数量
   * @param {number} articleid - 文章ID
   * @returns {Promise<import('../types').ApiResponse<number>>}
   */
  getMessageCountByArticleId(articleid) {
    return apiService.get(`/messages/count/${articleid}`)
  }

  /**
   * 获取分页留言
   * @param {number} articleid - 文章ID
   * @param {number} pagenum - 页码
   * @param {number} pagesize - 每页数量
   * @returns {Promise<import('../types').ApiResponse<import('../types').Message[]>>}
   */
  getMessagesByPage(articleid, pagenum, pagesize) {
    // 如果文章ID不存在，查询所有留言
    if (!articleid) {
      return apiService.get(`/messages/page?pageNum=${pagenum}&pageSize=${pagesize}`)
    }
    return apiService.get(`/messages/page?articleid=${articleid}&pageNum=${pagenum}&pageSize=${pagesize}`)
  }
  /**
   * 根据文章ID获取留言
   * @param {number} articleid - 文章ID
   * @returns {Promise<import('../types').ApiResponse<import('../types').Message[]>>}
   */

  /**
   * 获取所有留言
   * @returns {Promise<import('../types').ApiResponse<import('../types').Message[]>>}
   */
  getAllMessages() {
    return apiService.get('/messages')
  }

  /**
   * 创建留言
   * @param {import('../types').MessageDto} messageData - 留言数据
   * @returns {Promise<import('../types').ApiResponse<import('../types').Message>>}
   */
  saveMessage(messageData) {
    return apiService.post('/messages', messageData)
  }

  /**
   * 删除留言
   * @param {number} messageid - 留言ID
   * @returns {Promise<import('../types').ApiResponse<boolean>>}
   */
  deleteMessage(messageid) {
    return apiService.delete(`/messages/${messageid}`)
  }
  
  /**
   * 点赞留言
   * @param {number} messageid - 留言ID
   * @returns {Promise<import('../types').ApiResponse<boolean>>}
   */
  likeMessage(messageid) {
    return apiService.post(`/messages/${messageid}/like`)
  }
}

// 导出留言服务实例
export default new MessageService()