import prisma from '~~/lib/prisma'; export default defineEventHandler(async (event) => { const user = await requireUserSession(event); const profile = await prisma.user.findUnique({ where: { id: user.user.id }, select: { name: true, email: true, uploadedFiles: { select: { url: true, createdAt: true, answer: { select: { id: true, quest: { select: { id: true, title_de: true, title_en: true, hunt: { select: { id: true, name_de: true, name_en: true } } } } } } }, where: { NOT: { answerId: null } } }, userTracks: { select: { distanceMeters: true, hunt: { select: { id: true, name_de: true, name_en: true } } }, where: { hunt: { deletedAt: null } } } } }); if (!profile) { throw createError({ status: 404, statusText: 'Not found!' }); } const { userTracks, ...rest } = profile; const distances = userTracks.map((track) => ({ huntId: track.hunt.id, huntName_de: track.hunt.name_de, huntName_en: track.hunt.name_en, distanceMeters: track.distanceMeters })); const totalDistance = distances.reduce( (sum, entry) => sum + entry.distanceMeters, 0 ); return { ...rest, distances, totalDistance }; });