import { api } from './client'; export interface Issue { id: string; projectId: string; title: string; description: string; type: 'Story' | 'Task' | 'Bug' | 'Epic'; status: 'Backlog' | 'Todo' | 'InProgress' | 'Done'; priority: 'Low' | 'Medium' | 'High' | 'Critical'; assigneeId?: string; reporterId: string; createdAt: string; updatedAt?: string; } export interface CreateIssueDto { title: string; description: string; type: string; priority: string; } export interface UpdateIssueDto { title: string; description: string; priority: string; } export interface ChangeStatusDto { status: string; } export interface AssignIssueDto { assigneeId: string | null; } export const issuesApi = { list: async (projectId: string, status?: string): Promise => { const params = status ? `?status=${status}` : ''; return api.get(`/api/v1/projects/${projectId}/issues${params}`); }, getById: async (projectId: string, id: string): Promise => { return api.get(`/api/v1/projects/${projectId}/issues/${id}`); }, create: async (projectId: string, data: CreateIssueDto): Promise => { return api.post(`/api/v1/projects/${projectId}/issues`, data); }, update: async ( projectId: string, id: string, data: UpdateIssueDto ): Promise => { return api.put(`/api/v1/projects/${projectId}/issues/${id}`, data); }, changeStatus: async ( projectId: string, id: string, status: string ): Promise => { return api.put( `/api/v1/projects/${projectId}/issues/${id}/status`, { status } ); }, assign: async ( projectId: string, id: string, assigneeId: string | null ): Promise => { return api.put(`/api/v1/projects/${projectId}/issues/${id}/assign`, { assigneeId, }); }, delete: async (projectId: string, id: string): Promise => { return api.delete(`/api/v1/projects/${projectId}/issues/${id}`); }, };