import { CuestionarioRaw, LandingPageRaw } from '@win2win/shared';
import { useFetch } from '@win2win/shared-ui';
import { Landing } from 'src/models';
import { computed } from 'vue';
import { useRoute } from 'vue-router';
import { useStore } from 'vuex';

export function useLanding() {
  const store = useStore();
  const landing = computed<Landing | null>(() => store.getters['landing/data']);
  const route = useRoute();
  const id = computed(() => (route.params.landingId ? Number(route.params.landingId) : null));
  const idCuestionario = computed(() => (route.params.cuestionarioId ? Number(route.params.cuestionarioId) : null));
  const { data: cuestionario, fetching: fetchingCuestonario } = useFetch<CuestionarioRaw>(['cuestionario', idCuestionario.value], `landing_form/${idCuestionario.value}`);
  const idPagina = computed(() => (route.params.paginaId ? Number(route.params.paginaId) : null));
  const { data: pagina, fetching: fetchingPagina } = useFetch<LandingPageRaw>(['pagina', idPagina.value], `landing_page/${idPagina.value}`, undefined, undefined, { enabled: idPagina.value !== null });

  return { id, landing, idCuestionario, cuestionario, fetchingCuestonario, idPagina, pagina, fetchingPagina };
}
