import type { User } from "@/services/models/User";

import CartSummary from "@/components/CartSummary/CartSummary";
import CheckoutPanel from "@/components/CheckoutPanel/CheckoutPanel";
import EmptyCart from "@/components/EmptyCart/EmptyCart";

import { getUser } from "@/lib/dal";

import { getCart } from "@/services/db/cartAPI";
import type { Cart } from "@/services/models/Cart";
import styles from "./Checkout.module.scss";

export default async function Checkout() {
  const user = await getUser();
  const cart = await getCart();

  return (
    <div className={styles["checkout"]}>
      {user && cart ? (
        <>
          <CheckoutPanel
            user={JSON.parse(JSON.stringify(user)) as User}
            cart={JSON.parse(JSON.stringify(cart)) as Cart}
          />
          <CartSummary type="checkout" />
        </>
      ) : (
        <EmptyCart />
      )}
    </div>
  );
}
