import apiClient from './client'; import { Ticket, TicketListParams, TicketStats, PaginatedResponse } from '../types/api'; export type TicketSource = 'backend' | 'frontend' | 'manual'; export interface CreateTicketPayload { error_message: string; stacktrace?: string; context?: Record | string; source?: TicketSource; } export const ticketsApi = { getTickets: async (params: TicketListParams): Promise> => { const { data, headers } = await apiClient.get('/v1/admin/tickets', { params }); const total = parseInt(headers['x-total-count'] || '0', 10); return { data, total }; }, getTicket: async (id: string): Promise => { const { data } = await apiClient.get(`/v1/admin/tickets/${id}`); return data; }, createTicket: async (payload: CreateTicketPayload): Promise => { const { data } = await apiClient.post('/v1/tickets', payload); return data; }, updateTicket: async (id: string, payload: Partial): Promise => { await apiClient.put(`/v1/admin/tickets/${id}`, payload); }, deleteTicket: async (id: string): Promise => { await apiClient.delete(`/v1/admin/tickets/${id}`); }, getTicketStats: async (): Promise => { const { data } = await apiClient.get('/v1/admin/tickets/stats'); return data; }, };