import { api } from './api'; import type { Idea, CreateIdeaDto, UpdateIdeaDto, IdeaStatus, IdeaPriority, } from '../types/idea'; export interface QueryIdeasParams { status?: IdeaStatus; priority?: IdeaPriority; module?: string; search?: string; sortBy?: string; sortOrder?: 'ASC' | 'DESC'; page?: number; limit?: number; } export interface PaginatedResponse { data: T[]; meta: { total: number; page: number; limit: number; totalPages: number; }; } export const ideasApi = { getAll: async ( params?: QueryIdeasParams, ): Promise> => { const { data } = await api.get>('/ideas', { params, }); return data; }, getOne: async (id: string): Promise => { const { data } = await api.get(`/ideas/${id}`); return data; }, create: async (dto: CreateIdeaDto): Promise => { const { data } = await api.post('/ideas', dto); return data; }, update: async (id: string, dto: UpdateIdeaDto): Promise => { const { data } = await api.patch(`/ideas/${id}`, dto); return data; }, delete: async (id: string): Promise => { await api.delete(`/ideas/${id}`); }, getModules: async (): Promise => { const { data } = await api.get('/ideas/modules'); return data; }, reorder: async (items: { id: string; order: number }[]): Promise => { await api.patch('/ideas/reorder', { items }); }, };