// 文章相关API服务
import api from './apiService'

/**
 * 文章服务类
 */
class ArticleService {
  /**
   * 分页查询文章列表
   * @param {import('../types').ArticlePagination} params - 分页查询参数
    * @param status 文章状态（0：未发表 1：已发表 2：已删除）
    * @param page 页码，从0开始（可选，默认为0）
    * @param size 每页大小（可选，默认为10，最大为100）
   * @returns {Promise<import('../types').ApiResponse<import('../types').Article[]>>}
   */
  getPagedArticles(params = {}) {
    return api.get(`/articles/status/page?title=${params.title || ''}&categoryid=${params.categoryid || 0}&attributeid=${params.attributeid || 0}&status=${params.status !== undefined ? params.status : 1}&page=${params.page || 0}&size=${params.size || 10}`)
  }
/**
   * 获取已发布文章列表
   * @param {import('../types').PaginationParams} params - 查询参数
   * @returns {Promise<import('../types').ApiResponse<import('../types').Article[]>>}
   */
  getAllArticles(params = {}) {
    return api.get('/articles/published', { params })
  }
/**
   * 获取所有文章列表（包含已删除）
   * @param {import('../types').PaginationParams} params - 查询参数
   * @returns {Promise<import('../types').ApiResponse<import('../types').Article[]>>}
   */
  getAllArticlesWithDeleted(params = {}) {
    return api.get('/articles', { params })
  }
/**
   * 根据属性ID获取文章列表
   * @param {number} attributeid - 属性ID
   * @returns {Promise<import('../types').ApiResponse<import('../types').Article[]>>}
   */
  getArticlesByAttributeId(attributeid) {
    return api.get(`/articles/attribute/${attributeid}`)
  }

/**
   * 获取热门文章
   * @returns {Promise<import('../types').ApiResponse<import('../types').Article[]>>}
   */
  getPopularArticles() {
    return api.get('/articles/popular')
  }

  /**
   * 创建文章
   * @param {import('../types').ArticleDto} articleData - 文章数据
   * @returns {Promise<import('../types').ApiResponse<import('../types').Article>>}
   */
  createArticle(articleData) {
    return api.post('/articles', articleData)
  }

  /**
   * 更新文章
   * @param {number} articleid - 文章ID
   * @param {import('../types').ArticleDto} articleData - 文章数据
   * @returns {Promise<import('../types').ApiResponse<import('../types').Article>>}
   */
  updateArticle(articleid, articleData) {
    return api.put(`/articles/${articleid}`, articleData)
  }

  /**
   * 删除文章
   * @param {number} articleid - 文章ID
   * @returns {Promise<import('../types').ApiResponse<boolean>>}
   */
  deleteArticle(articleid) {
    return api.delete(`/articles/${articleid}`)
  }

/**
   * 增加文章浏览量
   * @param {number} articleid - 文章ID
   * @returns {Promise<import('../types').ApiResponse<boolean>>}
   */
  incrementArticleViews(articleid) {
    return api.post(`/articles/view/${articleid}`)
  }


}

// 创建并导出服务实例
const articleService = new ArticleService()
export default articleService

// 导出服务类供特殊场景使用
export { ArticleService }