"use client";

import Input from "@/components/Forms/Input";
import InputSelectComponent from "@/components/Forms/InputSelect";
import { GetForm } from "@/utils";

const FormSolicVeiculo = ({
  onSubmitFunction,
  defaultValues,
  disabledFields,
  children,
  usuarios,
  veiculos,
  ...rest
}: {
  usuarios: any[];
  veiculos: any[];
  [x: string]: any;
}) => {
  const { handleSubmit, ...form } = GetForm();

  return (
    <form
      onSubmit={handleSubmit(onSubmitFunction)}
      key={form.key}
      {...rest}
      className="flex flex-col gap-3"
    >
      <div className="flex flex-row flex-wrap gap-3">
        <InputSelectComponent
          name="cod_usuario"
          label="Solicitante"
          formulario={form}
          required
          error="Informe o Solicitante"
          options={usuarios.map((usuario: any) => ({
            value: usuario.id_usuario,
            label: usuario.nome_usuario,
          }))}
          defaultValue={defaultValues && defaultValues["cod_usuario"]}
          width="flex-1 min-w-[250px]"
        />
        <Input
          name="departamento"
          label="Departamento"
          formulario={form}
          defaultValue={defaultValues && defaultValues["departamento"]}
          width="flex-1 min-w-[200px]"
        />
        <InputSelectComponent
          name="veiculo_id"
          label="Veículo"
          formulario={form}
          required
          error="Informe o Veículo"
          options={veiculos
            .filter((veiculo: any) => veiculo.status_veiculo != "-1")
            .map((veiculo: any) => ({
              value: veiculo.id_veiculo,
              label: `${veiculo.placa_veiculo} - ${veiculo.modelo_veiculo}`,
            }))}
          defaultValue={defaultValues && defaultValues["veiculo_id"]}
          width="flex-1 min-w-[250px]"
        />
        <Input
          name="motorista_solicitacao"
          label="Motorista"
          formulario={form}
          required
          error="Informe o Motorista"
          defaultValue={
            defaultValues && defaultValues["motorista_solicitacao"]
          }
          width="flex-1 min-w-[200px]"
        />
        <Input
          name="destino_solicitacao"
          label="Destino"
          formulario={form}
          required
          error="Informe o Destino"
          defaultValue={defaultValues && defaultValues["destino_solicitacao"]}
          width="flex-1 min-w-[250px]"
        />
        <Input
          name="motivo_solicitacao"
          label="Motivo"
          formulario={form}
          defaultValue={defaultValues && defaultValues["motivo_solicitacao"]}
          width="flex-1 min-w-[250px]"
        />
      </div>
      <div className="flex flex-row flex-wrap gap-3">
        <Input
          name="data_previsao_saida_solicitacao"
          label="Previsão de Saída"
          formulario={form}
          type="datetime-local"
          required
          error="Informe a Previsão de Saída"
          defaultValue={
            defaultValues && defaultValues["data_previsao_saida_solicitacao"]
          }
          width="flex-1 min-w-[220px]"
        />
        <Input
          name="data_previsao_retorno_solicitacao"
          label="Previsão de Retorno"
          formulario={form}
          type="datetime-local"
          required
          error="Informe a Previsão de Retorno"
          defaultValue={
            defaultValues &&
            defaultValues["data_previsao_retorno_solicitacao"]
          }
          width="flex-1 min-w-[220px]"
        />
        {/* <Input
          name="data_saida_solicitacao"
          label="Data de Saída"
          formulario={form}
          type="datetime-local"
          defaultValue={
            defaultValues && defaultValues["data_saida_solicitacao"]
          }
          width="flex-1 min-w-[220px]"
        />
        <Input
          name="data_retorno_solicitacao"
          label="Data de Retorno"
          formulario={form}
          type="datetime-local"
          defaultValue={
            defaultValues && defaultValues["data_retorno_solicitacao"]
          }
          width="flex-1 min-w-[220px]"
        /> */}
      {/* </div>
      <div className="flex flex-row flex-wrap gap-3"> */}
      </div>
      <Input
        name="observacoes_solicitacao"
        label="Observações"
        formulario={form}
        type="textarea"
        defaultValue={
          defaultValues && defaultValues["observacoes_solicitacao"]
        }
      />
      {children}
    </form>
  );
};

export default FormSolicVeiculo;
