import { useMutation } from '@tanstack/react-query';
import axiosClient from './axiosClient';
import { useDispatch } from 'react-redux';
import { addToast } from '../features/toast/toastSlice';

/**
 * Hook สำหรับสั่งรัน AI Inference ผ่าน Django DRF Proxy
 * Endpoint: POST /api/v1/models/{modelId}/run-inference/ ⬅️ (ใหม่!)
 */
export const useRunInferenceMutation = () => {
    const dispatch = useDispatch();

    return useMutation({
        mutationFn: async ({ formData, modelId }) => {

            // ใช้ Template String เพื่อฝัง modelId เข้าไปใน URL
            const response = await axiosClient.post(
                `/api/v1/models/${modelId}/run-inference/`,
                formData,
                {
                    // ต้องระบุ Content-Type สำหรับการอัปโหลดไฟล์
                    headers: { 'Content-Type': 'multipart/form-data' },
                    // ตั้งค่า Timeout เผื่อการประมวลผล AI ที่นาน (10 นาที)
                    timeout: 600000,
                }
            );

            return response.data;
        },
        onSuccess: () => {
            dispatch(addToast({ message: 'เริ่มกระบวนการ Inference แล้ว!', type: 'success' }));
        },
        onError: (error) => {
            const msg = error.response?.data?.detail || 'การประมวลผลล้มเหลว';
            dispatch(addToast({ message: `Inference Failed: ${msg}`, type: 'error' }));
        },
    });
};