add setup wizard, lockdown, team tasks, embed builder; fix admin dashboard
All checks were successful
Deploy Discord Bot / deploy (push) Successful in -1m11s
SonarQube / sonar (push) Successful in -3s

Four new independent features: /setup (guided onboarding wizard for
module/channel/automod-strength config), /lockdown (raid protection with
per-channel permission snapshot/restore and join-kick), /task (staff task
tracker with status buttons + dashboard view), /embed create (modal-driven
embed builder with optional link button). Also fixes the Admin dashboard,
which always showed "-" because loadAdminData() double-wrapped the overview
response and discarded activity data, plus mismatched field names against
adminService's actual shape (guildCount/activeGuilds24/uptimeMs).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-03 01:02:39 +02:00
parent e708cac790
commit 2ff54970e2
30 changed files with 2500 additions and 57 deletions

18
node_modules/.prisma/client/wasm.js generated vendored
View File

@@ -145,6 +145,8 @@ exports.Prisma.GuildSettingsScalarFieldEnum = {
registerConfig: 'registerConfig',
serverStatsEnabled: 'serverStatsEnabled',
serverStatsConfig: 'serverStatsConfig',
lockdownConfig: 'lockdownConfig',
tasksEnabled: 'tasksEnabled',
supportRoleId: 'supportRoleId',
updatedAt: 'updatedAt',
createdAt: 'createdAt'
@@ -314,6 +316,19 @@ exports.Prisma.AutomodStrikeScalarFieldEnum = {
createdAt: 'createdAt'
};
exports.Prisma.StaffTaskScalarFieldEnum = {
id: 'id',
guildId: 'guildId',
title: 'title',
description: 'description',
status: 'status',
assigneeId: 'assigneeId',
createdBy: 'createdBy',
createdByTag: 'createdByTag',
createdAt: 'createdAt',
updatedAt: 'updatedAt'
};
exports.Prisma.SortOrder = {
asc: 'asc',
desc: 'desc'
@@ -361,7 +376,8 @@ exports.Prisma.ModelName = {
RegisterApplication: 'RegisterApplication',
RegisterApplicationAnswer: 'RegisterApplicationAnswer',
RegisterApplicationNote: 'RegisterApplicationNote',
AutomodStrike: 'AutomodStrike'
AutomodStrike: 'AutomodStrike',
StaffTask: 'StaffTask'
};
/**