import { requireAuth } from '~/server/utils/auth' import { prisma } from '~/server/utils/prisma' export default defineEventHandler(async (event) => { const user = requireAuth(event) console.log(`[Admin API] Request from user: ${user.email}, Role: ${user.role}`) if (user.role !== 'admin') { throw createError({ statusCode: 403, message: 'Admin access required' }) } // 1. Получаем список всех пользователей с их профилями const usersList = await prisma.user.findMany({ include: { profile: true } }) // 2. Получаем список всех канвасов const canvasesList = await prisma.canvas.findMany({ select: { id: true, name: true, nodes: true, updatedAt: true, ownerId: true } }) // 3. Считаем общее кол-во пушей (если есть таблица) let pushCount = 0 try { pushCount = await prisma.pushSubscription.count() } catch (e) {} return { users: usersList, canvases: canvasesList.map(c => ({ ...c, nodeCount: (c.nodes as any[])?.length || 0 })), stats: { users: usersList.length, canvases: canvasesList.length, nodes: canvasesList.reduce((sum, c) => sum + ((c.nodes as any[])?.length || 0), 0), pushes: pushCount } } })