import api from './apiService'

/**
 * 分类服务
 */
class CategoryService {
  /**
   * 获取所有分类
   * @returns {Promise<import('../types').ApiResponse<import('../types').Category[]>>}
   */
  getAllCategories() {
    return api.get('/categories')
  }

  /**
   * 获取指定分类
   * @param {number} typeid - 分类ID
   * @returns {Promise<import('../types').ApiResponse<import('../types').Category>>}
   */
  getCategory(typeid) {
    return api.get(`/categories/${typeid}`)
  }

  /**
   * 创建新分类
   * @param {import('../types').CategoryDto} categoryData - 分类数据
   * @returns {Promise<import('../types').ApiResponse<import('../types').Category>>}
   */
  createCategory(categoryData) {  
    return api.post('/categories', categoryData)
  }

  /**
   * 更新分类
   * @param {number} typeid - 分类ID
   * @param {import('../types').CategoryDto} categoryData - 分类数据
   * @returns {Promise<import('../types').ApiResponse<import('../types').Category>>}
   */
  updateCategory(typeid, categoryData) {
    return api.put(`/categories/${typeid}`, categoryData)
  }

  /**
   * 删除分类
   * @param {number} typeid - 分类ID
   * @returns {Promise<import('../types').ApiResponse<boolean>>}
   */
  deleteCategory(typeid) {
    return api.delete(`/categories/${typeid}`)
  }
}

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

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