import NovelDetailReviewsPage from "@/components/novel/detail/reviews/novelDetailReviewsPage";
import { getPostDetail } from "@/libs/axios/modules/post";
import { getProfile } from "@/libs/axios/modules/user";
import { PostModel, UserModel } from "@/models";
import { extractId } from "@/utils/slug";
import { cookies } from "next/headers";

export default async function Page({
    params,
}: {
    params: Promise<{ locale: string; novel_id: string }>;
}) {
    const cookieStore = await cookies();
    const token = cookieStore.get("token");
    const rawToken = token?.value?.slice(1, -1);

    const { novel_id: novelIdParam } = await params;
    const novel_id = extractId(novelIdParam);

    const novel: PostModel = (await getPostDetail(novel_id)).data.data;

    let user: UserModel | null = null;
    if (rawToken) {
        try {
            const { data: res } = await getProfile(rawToken);
            user = res?.data ?? null;
        } catch { /* not logged in */ }
    }

    return (
        <NovelDetailReviewsPage
            novel={novel}
            token={rawToken}
            userId={user?.id}
            userGoldflea={user?.totalGoldflea ?? 0}
        />
    );
}