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 user = await prisma.user.findUnique({ where: { id: session.user.id }, select: { id: true, email: true, name: true, createdAt: true, updatedAt: true, } }) if (!user) { return NextResponse.json({ error: "用户不存在" }, { status: 404 }) } // 获取用户拥有的家族树数量 const ownedTreesCount = await prisma.familyTree.count({ where: { ownerId: session.user.id } }) // 获取用户作为协作者的家族树 const collaborations = await prisma.treeCollaborator.findMany({ where: { userId: session.user.id }, include: { tree: { select: { id: true, name: true, } } } }) return NextResponse.json({ user: { ...user, ownedTreesCount, collaborations: collaborations.map((c) => ({ treeId: c.tree.id, treeName: c.tree.name, role: c.role, })) } }) } catch (error) { console.error("获取用户信息失败:", error) return NextResponse.json( { error: "获取用户信息失败" }, { status: 500 } ) } }