import apiClient from './client' import type { Step, StepListItem, StepCreate, StepUpdate, StepListParams, PopularTag, RatingCreate, RatingUpdate, Rating, Review } from '@/types/step' export const stepsApi = { async list(params?: StepListParams): Promise { const response = await apiClient.get('/steps', { params }) return response.data }, async get(id: string): Promise { const response = await apiClient.get(`/steps/${id}`) return response.data }, async create(data: StepCreate): Promise { const response = await apiClient.post('/steps', data) return response.data }, async update(id: string, data: StepUpdate): Promise { const response = await apiClient.put(`/steps/${id}`, data) return response.data }, async delete(id: string): Promise { await apiClient.delete(`/steps/${id}`) }, async search(query: string): Promise { const response = await apiClient.get('/steps/search', { params: { q: query } }) return response.data }, async getPopularTags(): Promise { const response = await apiClient.get('/steps/tags/popular') return response.data }, async rate(id: string, data: RatingCreate): Promise { const response = await apiClient.post(`/steps/${id}/ratings`, data) return response.data }, async updateRating(id: string, data: RatingUpdate): Promise { const response = await apiClient.put(`/steps/${id}/ratings`, data) return response.data }, async deleteRating(id: string): Promise { await apiClient.delete(`/steps/${id}/ratings`) }, async getReviews(id: string): Promise { const response = await apiClient.get(`/steps/${id}/reviews`) return response.data } } export default stepsApi