import api from './api'; export interface TicketMessage { id: string; ticketId: string; senderId?: string; senderRole: 'USER' | 'ADMIN' | 'VET_DOCTOR'; senderName: string; message: string; attachment?: string; createdAt: string; } export interface Ticket { id: string; ticketNumber: string; userId: string; petId?: string; subject: string; category: 'VET_CONSULTATION' | 'ORDER_SUPPORT' | 'PRODUCT_INQUIRY' | 'GENERAL'; priority: 'LOW' | 'MEDIUM' | 'HIGH' | 'URGENT'; status: 'OPEN' | 'ANSWERED' | 'IN_PROGRESS' | 'CLOSED'; createdAt: string; updatedAt: string; pet?: { id: string; name: string; type: string; breed: string; }; messages: TicketMessage[]; } export interface CreateTicketPayload { subject: string; message: string; category?: string; priority?: string; petId?: string; attachment?: string; } export const ticketService = { async getMyTickets(): Promise { const res = await api.get('/tickets/my-tickets'); return res.data?.data || []; }, async getTicketDetails(id: string): Promise { const res = await api.get(`/tickets/${id}`); return res.data?.data; }, async createTicket(payload: CreateTicketPayload): Promise { const res = await api.post('/tickets', payload); return res.data?.data; }, async replyTicket(ticketId: string, message: string, attachment?: string): Promise { const res = await api.post(`/tickets/${ticketId}/messages`, { message, attachment }); return res.data?.data; } };