import { cadastrarFabricante } from "@/requests/CRUD/Fabricante/cadastrarFabricante";
import { listarFabricantes } from "@/requests/CRUD/Fabricante/listarFabricantes";
import { useEffect, useState } from "react";
import { toast } from "react-toastify";

export const useFabricanteModal = (tipo_item: string) => {
  const [showFabricanteModal, setShowFabricanteModal] = useState(false);
  const [isFabricanteLoading, setIsFabricanteLoading] = useState(false);
  const [fabricantes, setFabricantes] = useState([]);

  const handleOpenFabricanteModal = () => {
    setShowFabricanteModal(true);
  };

  const handleCloseFabricanteModal = () => {
    setShowFabricanteModal(false);
  };

  const handleFabricanteSubmit = async (formData: any) => {
    try {
      setIsFabricanteLoading(true);

      await cadastrarFabricante(formData);

      await carregarFabricantes();

      setShowFabricanteModal(false);
    } catch (error) {
      console.error("Erro ao salvar fabricante:", error);
      toast.error("Erro ao cadastrar fabricante");
    } finally {
      setIsFabricanteLoading(false);
    }
  };
  const carregarFabricantes = async () => {
    const res = await listarFabricantes({ tipo_item });
    setFabricantes(res);
  };
  useEffect(() => {
    carregarFabricantes();
  }, []);

  return {
    showFabricanteModal,
    isFabricanteLoading,
    handleOpenFabricanteModal,
    handleCloseFabricanteModal,
    handleFabricanteSubmit,
    fabricantes,
    carregarFabricantes,
  };
};
