import { NextResponse } from 'next/server' import { prisma } from '@/lib/db' import { CacheManager } from '@/lib/cache' export const runtime = 'nodejs' export async function GET(request: Request) { try { const { searchParams } = new URL(request.url) const bookId = searchParams.get('book') || '' const chapterNum = parseInt(searchParams.get('chapter') || '1') const versionId = searchParams.get('version') || '' // Check cache first (include version in cache key) const cacheKey = CacheManager.getChapterKey(bookId, chapterNum, versionId) const cachedChapter = await CacheManager.get(cacheKey) if (cachedChapter) { return NextResponse.json({ chapter: JSON.parse(cachedChapter), cached: true }) } // Get chapter with verses from database const chapter = await prisma.bibleChapter.findFirst({ where: { bookId, chapterNum, book: versionId ? { versionId } : undefined }, include: { verses: { orderBy: { verseNum: 'asc' } }, book: { include: { version: true } } } }) if (!chapter) { return NextResponse.json({ error: 'Capitolul nu a fost găsit' }, { status: 404 }) } const chapterData = { id: chapter.id, bookName: chapter.book.name, chapterNum: chapter.chapterNum, verses: chapter.verses } // Cache the result for 1 hour await CacheManager.set(cacheKey, JSON.stringify(chapterData), 3600) return NextResponse.json({ chapter: chapterData, cached: false }) } catch (error) { console.error('Chapter fetch error:', error) return NextResponse.json({ error: 'Eroare de server' }, { status: 500 }) } }