import { NextResponse } from "next/server"; import { prisma } from "@/lib/prisma"; import { getFileUrl } from "@/lib/minio"; export async function GET() { try { const videos = await prisma.video.findMany({ orderBy: { created_at: "desc" }, take: 1000, include: { author: { select: { nickname: true, }, }, transcript: { select: { id: true, speech_detected: true, language: true, audio_type: true, transcript: true, non_speech_summary: true, }, }, }, }); const formattedVideos = videos.map((v) => ({ aweme_id: v.aweme_id, desc: v.desc, cover_url: getFileUrl(v.cover_url ?? ""), duration_ms: v.duration_ms, author: { nickname: v.author.nickname, }, transcript: v.transcript ? { id: v.transcript.id, speech_detected: v.transcript.speech_detected, language: v.transcript.language, audio_type: v.transcript.audio_type, transcript: v.transcript.transcript, non_speech_summary: v.transcript.non_speech_summary, } : null, })); return NextResponse.json({ videos: formattedVideos, total: videos.length, }); } catch (error) { console.error("Failed to fetch videos:", error); return NextResponse.json( { error: "Failed to fetch videos" }, { status: 500 }, ); } }