import apiClient from './client' export interface PollOption { id: number text: string order: number } export interface PollQuestion { id: number text: string order: number options: PollOption[] } export interface PollInfo { id: number response_id: number title: string description: string | null total_questions: number answered_questions: number is_completed: boolean reward_amount: number | null } export interface PollStartResponse { response_id: number current_question_index: number total_questions: number question: PollQuestion } export interface PollAnswerResponse { success: boolean is_completed: boolean next_question: PollQuestion | null current_question_index: number | null total_questions: number reward_granted: number | null message: string | null } export interface PollsCountResponse { count: number } export const pollsApi = { // Get count of available polls getCount: async (): Promise => { const response = await apiClient.get('/cabinet/polls/count') return response.data }, // Get available polls getPolls: async (): Promise => { const response = await apiClient.get('/cabinet/polls') return response.data }, // Get poll details getPollDetails: async (responseId: number): Promise => { const response = await apiClient.get(`/cabinet/polls/${responseId}`) return response.data }, // Start or continue poll startPoll: async (responseId: number): Promise => { const response = await apiClient.post(`/cabinet/polls/${responseId}/start`) return response.data }, // Answer a question answerQuestion: async ( responseId: number, questionId: number, optionId: number ): Promise => { const response = await apiClient.post( `/cabinet/polls/${responseId}/questions/${questionId}/answer`, { option_id: optionId } ) return response.data }, }