import { getAbout, getBlogsContent, getContactInfo, getFooter, getHome, getPricing, getServicesContent, submitContactForm } from '@/lib/landingPage/landing-page-api';
import { useMutation, useQuery } from '@tanstack/react-query';

export const useHome = () => {
    return useQuery({
        queryKey: ['home'],
        queryFn: getHome,
        staleTime: 1000 * 60 * 5,
        gcTime: 1000 * 60 * 30,
        refetchOnWindowFocus: false,
    });
};

export const useAbout = () => {
    return useQuery({
        queryKey: ['about'],
        queryFn: getAbout,
        staleTime: 1000 * 60 * 10,
        gcTime: 1000 * 60 * 30,
        refetchOnWindowFocus: false,
    });
};

export const useFooter = () => {
    return useQuery({
        queryKey: ['footer'],
        queryFn: getFooter,
        staleTime: 1000 * 60 * 10,
        gcTime: 1000 * 60 * 30,
        refetchOnWindowFocus: false,
    });
};

export const useContactInfo = () => {
    return useQuery({
        queryKey: ['contact'],
        queryFn: getContactInfo,
        staleTime: 1000 * 60 * 10,
        gcTime: 1000 * 60 * 30,
        refetchOnWindowFocus: false,
    });
};

export const useBlogContent = () => {
    return useQuery({
        queryKey: ['blogs'],
        queryFn: getBlogsContent,
        staleTime: 1000 * 60 * 10,
        gcTime: 1000 * 60 * 30,
        refetchOnWindowFocus: false,
    });
};

export const useServicesContent = () => {
    return useQuery({
        queryKey: ['services'],
        queryFn: getServicesContent,
        staleTime: 1000 * 60 * 10,
        gcTime: 1000 * 60 * 30,
        refetchOnWindowFocus: false,
    });
};

export const usePricingContent = () => {
    return useQuery({
        queryKey: ['pricing'],
        queryFn: getPricing,
        staleTime: 1000 * 60 * 10,
        gcTime: 1000 * 60 * 30,
        refetchOnWindowFocus: false,
    });
};

export const useSubmitContactForm = () => {
    return useMutation({
        mutationFn: (payload: {
            name: string
            company_name: string
            phone: string | number
            email: string
            message: string
        }) => submitContactForm(payload)
    });
};