import { asc, count, eq } from 'drizzle-orm' import { roles, userRoles } from '../../db/schema' export default defineEventHandler(async (event) => { await requirePermission(event, 'admin.access') const roleList = await useDb() .select({ id: roles.id, name: roles.name, memberCount: count(userRoles.userId), }) .from(roles) .leftJoin(userRoles, eq(userRoles.roleId, roles.id)) .groupBy(roles.id) .orderBy(asc(roles.name)) const permsByRole = await getRolePermissions() return roleList.map(r => ({ ...r, permissions: permsByRole.get(r.id) ?? [] })) })