import { apiRequest } from '@/lib/api' import type { Ticket, TicketComment, TicketInput, TicketListParams, TicketListResponse, TicketStatus } from './types' export function listTickets(params: TicketListParams = {}) { const query = new URLSearchParams() Object.entries(params).forEach(([key, value]) => { if (value !== undefined && value !== null && value !== '') { query.set(key, String(value)) } }) const suffix = query.toString() ? `?${query}` : '' return apiRequest(`/tickets${suffix}`) } export function createTicket(payload: TicketInput) { return apiRequest('/tickets', { method: 'POST', body: JSON.stringify(payload) }) } export function getTicket(ticketId: number) { return apiRequest(`/tickets/${ticketId}`) } export function transitionTicket(ticketId: number, status: TicketStatus, remark = '') { return apiRequest(`/tickets/${ticketId}/status`, { method: 'POST', body: JSON.stringify({ status, remark }) }) } export function addTicketComment(ticketId: number, content: string) { return apiRequest(`/tickets/${ticketId}/comments`, { method: 'POST', body: JSON.stringify({ content, comment_type: 'internal_note', visibility: 'internal' }) }) }