import ReactTable from "@/components/ReactTable/ReactTable";

import { cadastrarCfgMarkup } from "@/requests/CRUD/Markup/cadastraMarkup";
import { editarCfgMarkup } from "@/requests/CRUD/Markup/editarMarkup";
import { listarCfgMarkup } from "@/requests/CRUD/Markup/listarMarkup";
import { formatarValor } from "@/utils";
import _ from "lodash";
import FormMarkup from "./FormMarkup";

const ConfiguracoesMarkup = () => {
  const dados = [
    "status_campo_markup",
    "nome_campo_markup",
    "id_campo_markup",
    "tipo_campo_markup",
    "adiciona_subtrai_campo_markup",
    "valor_campo_markup",
    "bloqueado_campo_markup",
    "oculta_campo_markup",
    "vincular_potencia_campo_markup",
    "vincular_modulo_campo_markup",
    "vincular_telhado_campo_markup",
  ];
  const columns = [
    ...dados.map((e) => ({
      header: _.capitalize(e)
        .replaceAll("_campo_markup", "")
        .replaceAll("_", " "),
      accessorKey: e,
    })),
  ];

  const formatSimouNao = (arr: any) => {
    return arr.map((perfil: any) => {
      perfil["bloqueado_campo_markup"] =
        +perfil["bloqueado_campo_markup"] === 1 ? "Sim" : "Não";
      perfil["tipo_campo_markup"] =
        +perfil["tipo_campo_markup"] === 1 ? "Percentual" : "Valor";
      perfil["adiciona_subtrai_campo_markup"] =
        +perfil["adiciona_subtrai_campo_markup"] === 1 ? "Subtrai" : "Soma";
      perfil["oculta_campo_markup"] =
        +perfil["oculta_campo_markup"] === 1 ? "Sim" : "Não";
      perfil["vincular_potencia_campo_markup"] =
        +perfil["vincular_potencia_campo_markup"] === 1 ? "Sim" : "Não";
      perfil["vincular_modulo_campo_markup"] =
        +perfil["vincular_modulo_campo_markup"] === 1 ? "Sim" : "Não";
      perfil["vincular_telhado_campo_markup"] =
        +perfil["vincular_telhado_campo_markup"] === 1 ? "Sim" : "Não";
      perfil["valor_campo_markup"] = formatarValor(
        +perfil["valor_campo_markup"]
      );
      return perfil;
    });
  };

  return (
    <ReactTable
      columns={columns}
      listFunction={listarCfgMarkup}
      formatFunction={formatSimouNao}
      idCol="id_campo_markup"
      isActiveCol="status_campo_markup"
      canEdit
      canDesactive
      createFunction={cadastrarCfgMarkup}
      editFunction={editarCfgMarkup}
      Form={FormMarkup}
      pageName="Markup"
    />
  );
};

export default ConfiguracoesMarkup;
