import Container from "@/components/Forms/Container";
import ReactTable from "@/components/ReactTable/ReactTable";
import { cadastrarSimultaneidade } from "@/requests/CRUD/Simultaneidade/cadastrarSimultaneidade";
import { editarSimultaneidade } from "@/requests/CRUD/Simultaneidade/editarSimultaneidade";
import { listarSimultaneidade } from "@/requests/CRUD/Simultaneidade/listarSimultaneidade";
import { FormatFields } from "@/utils";
import { FieldValues } from "react-hook-form";
import FormSimultaneidade from "./FormSimultaneidade";

const ConsultaSimultaneidade = () => {
  const columns = [
    {
      header: "ID",
      accessorKey: "id_simultaneidade",
    },
    {
      header: "Status Fator de Simultaneidade",
      accessorKey: "status_simultaneidade",
    },
    {
      header: "Clasificação",
      accessorKey: "nome_classificacao",
    },
    {
      header: "Perfil de Consumo",
      accessorKey: "perfil_consumo_simultaneidade",
    },
    {
      header: "Fator de Simultaneidade",
      accessorKey: "valor_simultaneidade",
    },
  ];

  const formatSimultaneidade = async (arr: any) => {
    return arr.map((simultaneidade: any) => {
      simultaneidade["valor_simultaneidade"] =
        FormatFields.formatarNumero(simultaneidade["valor_simultaneidade"]) +
        "%";
      return simultaneidade;
    });
  };

  const onSubmitFunction = async (data: FieldValues) => {
    const newData = { ...data };
    delete newData["nome_classificacao"];
    newData["valor_simultaneidade"] = FormatFields.desformatarNumeros(
      newData["valor_simultaneidade"]
    );
    newData["status_simultaneidade"] = "1";

    return cadastrarSimultaneidade(newData);
  };

  const sendEditarSimultaneidade = async (data: any) => {
    const newData = { ...data };
    delete newData["nome_classificacao"];
    delete newData["id_classificacao"];
    newData["valor_simultaneidade"] = FormatFields.desformatarNumeros(
      newData["valor_simultaneidade"]
    );
    return editarSimultaneidade(newData);
  };

  return (
    <>
      {/*
       * OS: 323047
       * Data: 18/04/2024
       * Leonardo
       */
      /* <Breadcrumb pageName='Consulta de Simultaneidade' /> */}
      <Container>
        <ReactTable
          columns={columns}
          listFunction={listarSimultaneidade}
          idCol="id_simultaneidade"
          formatFunction={formatSimultaneidade}
          isActiveCol="status_simultaneidade"
          canEdit
          canDesactive
          createFunction={onSubmitFunction}
          editFunction={sendEditarSimultaneidade}
          Form={FormSimultaneidade}
          pageName="Fator de Simultaneidade"
        />
      </Container>
    </>
  );
};

export default ConsultaSimultaneidade;
