import apiClient from './client' import type { AISessionCreateRequest, AISessionCreateResponse, StepResponseRequest, StepResponseResponse, ResolveSessionRequest, EscalateSessionRequest, SessionCloseResponse, SessionDocumentation, AISessionSummary, AISessionDetail, PickupSessionRequest, } from '@/types/ai-session' export const aiSessionsApi = { async createSession(data: AISessionCreateRequest): Promise { const response = await apiClient.post('/ai-sessions', data) return response.data }, async respondToStep(sessionId: string, data: StepResponseRequest): Promise { const response = await apiClient.post( `/ai-sessions/${sessionId}/respond`, data ) return response.data }, async resolveSession(sessionId: string, data: ResolveSessionRequest): Promise { const response = await apiClient.post( `/ai-sessions/${sessionId}/resolve`, data ) return response.data }, async escalateSession(sessionId: string, data: EscalateSessionRequest): Promise { const response = await apiClient.post( `/ai-sessions/${sessionId}/escalate`, data ) return response.data }, async listSessions(params?: { status?: string; skip?: number; limit?: number }): Promise { const response = await apiClient.get('/ai-sessions', { params }) return response.data }, async getSession(sessionId: string): Promise { const response = await apiClient.get(`/ai-sessions/${sessionId}`) return response.data }, async getDocumentation(sessionId: string): Promise { const response = await apiClient.get( `/ai-sessions/${sessionId}/documentation` ) return response.data }, async rateSession(sessionId: string, data: { rating: number; feedback?: string }): Promise { await apiClient.post(`/ai-sessions/${sessionId}/rate`, data) }, async retryPsaPush(sessionId: string): Promise<{ psa_push_status: string; psa_push_error: string | null }> { const response = await apiClient.post<{ psa_push_status: string; psa_push_error: string | null }>( `/ai-sessions/${sessionId}/retry-psa-push` ) return response.data }, async pauseSession(sessionId: string): Promise { await apiClient.post(`/ai-sessions/${sessionId}/pause`) }, async resumeSession(sessionId: string): Promise { await apiClient.post(`/ai-sessions/${sessionId}/resume`) }, async pickupSession(sessionId: string, data: PickupSessionRequest): Promise { const response = await apiClient.post( `/ai-sessions/${sessionId}/pickup`, data ) return response.data }, async linkTicket(sessionId: string, data: { psa_ticket_id: string; psa_connection_id: string }): Promise { const response = await apiClient.post( `/ai-sessions/${sessionId}/link-ticket`, data ) return response.data }, async getEscalationQueue(): Promise { const response = await apiClient.get('/ai-sessions/escalation-queue') return response.data }, } export default aiSessionsApi