17 lines
610 B
TypeScript
17 lines
610 B
TypeScript
import { db } from '../../utils/db';
|
|
import { requireAdmin } from '../../utils/auth';
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
await requireAdmin(event);
|
|
const [totalUsers, activeSubs, recent] = await Promise.all([
|
|
db.user.count(),
|
|
db.subscription.count({ where: { status: 'active' } }),
|
|
db.auditLog.findMany({ orderBy: { createdAt: 'desc' }, take: 5, include: { actor: true } }),
|
|
]);
|
|
return {
|
|
totalUsers,
|
|
activeSubs,
|
|
recent: recent.map((e) => ({ id: e.id, action: e.action, target: e.target, actor: e.actor?.email ?? 'system', createdAt: e.createdAt })),
|
|
};
|
|
});
|