import { prisma } from "@/lib/db";
import Player from "@/components/Player";

interface Params { params: { slug: string } }

export default async function BookPage({ params }: Params) {
  const book = await prisma.book.findUnique({
    where: { slug: params.slug },
    include: { chapters: { orderBy: { chapterNumber: "asc" } } }
  });
  if (!book || !book.isPublished) return <main>Not found</main>;

  return (
    <main className="space-y-4">
      <div className="flex gap-4 items-center">
        {book.coverUrl ? <img src={book.coverUrl} alt={book.title} className="w-24 h-24 object-cover rounded" /> : null}
        <div>
          <h2 className="text-xl font-semibold">{book.title}</h2>
          <p className="text-sm text-gray-700">{book.description}</p>
        </div>
      </div>
      <ul className="space-y-2">
        {book.chapters.map(ch => (
          <li key={ch.id} className="border p-3 rounded">
            <div className="flex items-center justify-between">
              <div>
                <div className="font-semibold">Chapter {ch.chapterNumber}: {ch.title}</div>
                <div className="text-xs text-gray-600">{Math.round(ch.durationSec/60)} min</div>
              </div>
              <Player chapterId={ch.id} isPreview={ch.isPreview} />
            </div>
          </li>
        ))}
      </ul>
    </main>
  );
}
