import { create } from 'zustand';
import { monitoringService } from '../services/monitoringService';
import { toast } from 'sonner';

export const useMonitoring = create((set, get) => ({
  monitoringData: [],
  mokiData: [],
  loading: false,
  error: null,

  fetchMonitoring: async () => {
    set({ loading: true, error: null });
    try {
      const data = await monitoringService.getMonitoring();
      set({ monitoringData: Array.isArray(data) ? data : (data.data || []) });
    } catch (error) {
      set({ error: error.message });
      console.error('Erro ao carregar monitoramento:', error);
    } finally {
      set({ loading: false });
    }
  },

  fetchMokiData: async () => {
    set({ loading: true });
    try {
      const data = await monitoringService.getMokiData();
      set({ mokiData: Array.isArray(data) ? data : (data.data || []) });
    } catch (error) {
      console.error('Erro ao carregar dados Moki:', error);
    } finally {
      set({ loading: false });
    }
  },

  createMonitoring: async (data) => {
    try {
      await monitoringService.createMonitoring(data);
      toast.success('Registro de monitoramento criado!');
      get().fetchMonitoring();
    } catch (error) {
      toast.error('Erro ao criar monitoramento: ' + error.message);
    }
  },
  
  updateMoki: async (id, data) => {
    try {
       await monitoringService.updateMokiData(id, data);
       toast.success('Checklist atualizado!');
       get().fetchMokiData();
    } catch (error) {
      toast.error('Erro ao atualizar checklist: ' + error.message);
    }
  },
  
  // Refreshes both
  fetchAll: () => {
    get().fetchMonitoring();
    get().fetchMokiData();
  }
}));
