import apiClient from './client'
import type {
  HandoffCreateRequest,
  HandoffResponse,
  QueueItemResponse,
} from '@/types/branching'

export const handoffsApi = {
  async createHandoff(sessionId: string, data: HandoffCreateRequest): Promise<HandoffResponse> {
    const response = await apiClient.post<HandoffResponse>(
      `/ai-sessions/${sessionId}/handoff`,
      data
    )
    return response.data
  },

  async listHandoffs(sessionId: string): Promise<HandoffResponse[]> {
    const response = await apiClient.get<HandoffResponse[]>(
      `/ai-sessions/${sessionId}/handoffs`
    )
    return response.data
  },

  async claimHandoff(sessionId: string, handoffId: string): Promise<HandoffResponse> {
    const response = await apiClient.post<HandoffResponse>(
      `/ai-sessions/${sessionId}/handoffs/${handoffId}/claim`
    )
    return response.data
  },

  async getQueue(params?: { intent?: 'park' | 'escalate'; limit?: number }): Promise<QueueItemResponse[]> {
    const response = await apiClient.get<QueueItemResponse[]>('/ai-sessions/queue', {
      params,
    })
    return response.data
  },
}

export default handoffsApi
