import { Id } from '@win2win/shared';
import { api } from 'src/boot/axios';
import { useAuth } from 'src/composables/useAuth';
import { notifyError } from 'src/helpers';
import { ref } from 'vue';

export function useContractForm() {
  const type = ref('suministro');
  const { tokenInvitacion } = useAuth();

  const navigateToContract = async (context: { idVisita: Id}) => {
    const [landing, productos] = await Promise.all([
      api.get('/landings', { params: { bycol: { 'landing.TITULO': type.value } } }).then(({ data }) => data.items[0]),
      api.get('/productos', { params: { bycol: { 'productos.NOMBRE': type.value } } }).then(({ data }) => data.items[0]),
    ]);
    if (!landing || !productos) {
      notifyError(null, 'No se puede dirigir al lead');
      return;
    }

    const reference = tokenInvitacion.value;
    const idProducto = productos.ID_PRODUCTO;
    const idLanding = landing.ID_LANDING;
    const idVisita = context.idVisita ?? ''
    const url = `${landing.URL}/#/formulario?productId=${idProducto}&landingId=${idLanding}&reference=${reference}&visitaId=${idVisita}`;
    window.open(url, '_blank');
  };

  return { navigateToContract, type };
}
