import { redirect } from 'next/navigation'
import RoomPageClient from './RoomPageClient'
import { loadRoomPageSessionUser, loadRoomPlaybackData } from '@/lib/room/loadRoomPlaybackData'

export const runtime = 'nodejs'
export const dynamic = 'force-dynamic'

export default async function RoomIdPage({ params }: { params: { id: string } }) {
    const routeParam = String(params?.id ?? '').trim()
    const loaded = await loadRoomPlaybackData(routeParam)

    if (!loaded) {
        redirect('/')
    }
    if (loaded.shouldRedirect) {
        redirect(`/room/${loaded.publicRoomId}`)
    }

    const session = await loadRoomPageSessionUser(loaded.roomId, loaded.stream.userId)

    return (
        <RoomPageClient
            initialRoomId={loaded.roomId}
            initialRoomPublicId={loaded.publicRoomId}
            initialStream={loaded.stream}
            initialIsLiveStream={loaded.isLive}
            initialPlaybackSrc={loaded.playbackSrc}
            initialIsLiked={session.initialIsLiked}
            initialIsFollowing={session.initialIsFollowing}
            currentUserId={session.currentUserId}
            currentUserDisplayName={session.currentUserDisplayName}
            currentUserAvatar={session.currentUserAvatar}
        />
    )
}
