import { NextRequest, NextResponse } from "next/server" import { getServerSession } from "next-auth" import { authOptions } from "@/lib/auth" import { prisma } from "@/lib/prisma" // 获取当前用户的所有相关活动日志(拥有的或参与的家族树) export async function GET(req: NextRequest) { try { const session = await getServerSession(authOptions) if (!session?.user?.id) { return NextResponse.json({ error: "未授权" }, { status: 401 }) } const { searchParams } = new URL(req.url) const limit = parseInt(searchParams.get('limit') || '50') // 1. 查找用户拥有或协作的所有家族树 ID const ownedTrees = await prisma.familyTree.findMany({ where: { ownerId: session.user.id }, select: { id: true } }) const collaboratedTrees = await prisma.treeCollaborator.findMany({ where: { userId: session.user.id }, select: { treeId: true } }) const treeIds = [ ...ownedTrees.map(t => t.id), ...collaboratedTrees.map(c => c.treeId) ] // 2. 查询这些家族树的日志 const logs = await prisma.activityLog.findMany({ where: { treeId: { in: treeIds } }, orderBy: { timestamp: 'desc' }, take: limit, include: { user: { select: { id: true, name: true, email: true } }, tree: { select: { id: true, name: true } } } }) return NextResponse.json({ logs }) } catch (error) { console.error("获取用户活动日志失败:", error) return NextResponse.json( { error: "获取用户活动日志失败" }, { status: 500 } ) } }