import { payCart } from "@root/api/cart";
import { allTypesOfPurchases, calcTimeOfReadyPayCart, cancelPayCartProcess } from "@root/stores/allTypesOfPurchases"
import { useUserStore } from "@root/stores/user";
import { enqueueSnackbar } from "notistack";
import { useEffect } from "react"

export const useTryBuy = () => {
    const userId = useUserStore(store => store.userId)
    const userAccount = useUserStore(state => state.userAccount);
    const siteReadyPayCart = allTypesOfPurchases(state => state.siteReadyPayCart);

    useEffect(() => {
      if (userId !== null && siteReadyPayCart !== null && siteReadyPayCart[userId] !== undefined) {
        const deadline = siteReadyPayCart[userId]
        if (calcTimeOfReadyPayCart(deadline)) {
  
          //Время ещё не вышло. У нас стоит флаг покупать корзину если время не вышло.
          (async () => {
            const [, payCartError] = await payCart();
  
            if (!payCartError) {
              enqueueSnackbar("Товары успешно приобретены")
              cancelPayCartProcess()
            }
          })()
        }
      }
    }, [userAccount, userId, siteReadyPayCart])
}