import { useState, useCallback } from 'react';
import { rhService } from '../services/rhService';

/**
 * Hook para gestão completa de faltas, atestados e afastamentos
 */
export const useGestaoFaltasAtestados = () => {
  const [dados, setDados] = useState([]);
  const [loading, setLoading] = useState(false);
  const [filters, setFilters] = useState({
    search: '',
    tipo: '',
    status: ''
  });

  const fetchGestaoCompleta = useCallback(async () => {
    setLoading(true);
    try {
      const response = await rhService.getGestaoFaltasAtestados();
      
      // Processar dados consolidados
      const dadosProcessados = response || [];
      
      setDados(dadosProcessados);
    } catch (error) {
      console.error('Erro ao buscar gestão de faltas/atestados:', error);
      setDados([]);
    } finally {
      setLoading(false);
    }
  }, []);

  // Separar por tipo
  const faltas = dados.filter(d => d.tipo === 'Falta');
  const atestados = dados.filter(d => d.tipo === 'Atestado');
  const afastamentos = dados.filter(d => d.tipo === 'Afastamento');

  const updateFilters = useCallback((newFilters) => {
    setFilters(prev => ({ ...prev, ...newFilters }));
  }, []);

  return {
    dados,
    faltas,
    atestados,
    afastamentos,
    loading,
    filters,
    fetchGestaoCompleta,
    setFilters: updateFilters
  };
};
