import Input from "@/components/Forms/Input";
import InputGroup from "@/components/Forms/InputGroup";
import InputSelectComponent from "@/components/Forms/InputSelect";
import { useAuth } from "@/src/contexts/authContext";
import { useKanbanContext } from "@/src/contexts/kanbanContext";
import { GetForm } from "@/utils";
import { FieldValues } from "react-hook-form";

const FormAgendamentoManutencao = ({
  onSubmitFunction,
  dadosCard,
  children,
  usuarios,
  ...rest
}: any) => {
  const { handleSubmit, ...form } = GetForm();
  const { valuesSession } = useAuth();
  const { session } = valuesSession();
  const { reListarDadosKanban } = useKanbanContext();

  const onSubmitFormAgendamentoManutencao = (data: FieldValues) => {
    // if (data.instaladores_instalacao) {
    //   const dados: any = {
    //     id_coleta: dadosCard.id_coleta_cliente,
    //     responsavel_coleta:
    //       dadosCard["responsaveis"]?.["Administrativo"] || null,
    //     vendedor_coleta: dadosCard["responsaveis"]?.["Vendedor"] || null,
    //     tecnico_coleta: dadosCard["responsaveis"]?.["Técnico"] || null,
    //     preVendedor_coleta: dadosCard["responsaveis"]?.["Pré-Vendedor"] || null,
    //     gerente_coleta: dadosCard["responsaveis"]?.["Gerente"] || null,
    //     responsavelInstalador_coleta: data["instaladores_instalacao"] || null,
    //     id_usuario: session.id_usuario,
    //   };
    //   alterarResponsavel(dados).then(() => {
    //     reListarDadosKanban();
    //     return onSubmitFunction(data);
    //   });
    // } else {
    //   return onSubmitFunction(data);
    // }
    return onSubmitFunction(data);
  };

  return (
    <form onSubmit={handleSubmit(onSubmitFormAgendamentoManutencao)} {...rest}>
      <InputGroup>
        <InputSelectComponent
          name="instaladores_manutencao"
          label="Instalador"
          formulario={form}
          options={[
            // { label: "Interno", value: "0" },
            ...usuarios
              .filter((usuario: any) => usuario.cargo_perfil == 6)
              .map((usuario: any) => ({
                value: usuario.id_usuario,
                label: `${usuario.nome_usuario} - ${[null, 0, "0"].includes(usuario?.is_externo_usuario) ? "Interno" : "Externo"}`,
              })),
          ]}
          defaultValue={dadosCard?.responsaveis.Instalador}
          required
          error="Informe o responsável"
        />

        <Input
          name="data_manutencao"
          label="Data da Manutenção"
          formulario={form}
          type="date"
          required
          error="Informe a data da Manutenção"
        />
        <Input
          name="dias_manutencao"
          label="Dias previstos"
          formulario={form}
          mascara="numerico"
          required
          error="Informe a previsão de dias"
        />
      </InputGroup>
      <InputGroup>
        <Input
          name="observacoes_manutencao"
          label="Observações"
          formulario={form}
          type="textarea"
        />
      </InputGroup>
      {children}
    </form>
  );
};

export default FormAgendamentoManutencao;
