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

export const useClaims = create((set, get) => ({
  claims: [],
  loading: false,
  error: null,

  fetchClaims: async () => {
    set({ loading: true, error: null });
    try {
      const data = await claimsService.getClaims();
      set({ claims: Array.isArray(data) ? data : (data.data || []) });
    } catch (error) {
      set({ error: error.message });
      toast.error('Erro ao carregar sinistros: ' + error.message);
    } finally {
      set({ loading: false });
    }
  },

  createClaim: async (data) => {
    set({ loading: true });
    try {
      await claimsService.createClaim(data);
      toast.success('Registro criado com sucesso!');
      get().fetchClaims();
      return true;
    } catch (error) {
      toast.error('Erro ao criar registro: ' + error.message);
      return false;
    } finally {
      set({ loading: false });
    }
  },

  updateClaim: async (id, data) => {
    set({ loading: true });
    try {
      await claimsService.updateClaim(id, data);
      toast.success('Registro atualizado com sucesso!');
      get().fetchClaims();
      return true;
    } catch (error) {
      toast.error('Erro ao atualizar registro: ' + error.message);
      return false;
    } finally {
      set({ loading: false });
    }
  }
}));
