import { listarDistribuidores } from "@/requests/CRUD/Distribuidores/listarDistribuidores";
import { salvarDistribuidor } from "@/requests/CRUD/Distribuidores/salvarDistribuidores";
import { useEffect, useState } from "react";
import { toast } from "react-toastify";

export const useDistribuidorModal = () => {
  const [showDistribuidorModal, setShowDistribuidorModal] = useState(false);
  const [isDistribuidorLoading, setIsDistribuidorLoading] = useState(false);
  const [distribuidores, setDistribuidores] = useState([]);

  const handleOpenDistribuidorModal = () => {
    setShowDistribuidorModal(true);
  };

  const handleCloseDistribuidorModal = () => {
    setShowDistribuidorModal(false);
  };

  const handleDistribuidorSubmit = async (formData: any) => {
    try {
      setIsDistribuidorLoading(true);

      await salvarDistribuidor(formData);

      await carregarDistribuidores();

      setShowDistribuidorModal(false);
    } catch (error) {
      console.error("Erro ao salvar distribuidor:", error);
      toast.error("Erro ao cadastrar distribuidor");
    } finally {
      setIsDistribuidorLoading(false);
    }
  };
  const carregarDistribuidores = async () => {
    const res = await listarDistribuidores();
    setDistribuidores(res);
  };
  useEffect(() => {
    carregarDistribuidores();
  }, []);

  return {
    showDistribuidorModal,
    isDistribuidorLoading,
    handleOpenDistribuidorModal,
    handleCloseDistribuidorModal,
    handleDistribuidorSubmit,
    distribuidores,
    carregarDistribuidores,
  };
};
