54 lines
1.7 KiB
TypeScript
54 lines
1.7 KiB
TypeScript
import { systemEvents, EVENTS } from "@shared/lib/events";
|
|
import { dashboardService } from "@shared/modules/dashboard/dashboard.service";
|
|
|
|
/**
|
|
* Service to handle administrative actions triggered from the dashboard.
|
|
* These actions are broadcasted to the bot via the system event bus.
|
|
*/
|
|
export const actionService = {
|
|
/**
|
|
* Triggers a reload of all bot commands.
|
|
*/
|
|
reloadCommands: async () => {
|
|
systemEvents.emit(EVENTS.ACTIONS.RELOAD_COMMANDS);
|
|
|
|
await dashboardService.recordEvent({
|
|
type: "info",
|
|
message: "Admin: Triggered command reload",
|
|
icon: "♻️"
|
|
});
|
|
|
|
return { success: true, message: "Command reload triggered" };
|
|
},
|
|
|
|
/**
|
|
* Triggers a clearance of internal bot caches.
|
|
*/
|
|
clearCache: async () => {
|
|
systemEvents.emit(EVENTS.ACTIONS.CLEAR_CACHE);
|
|
|
|
await dashboardService.recordEvent({
|
|
type: "info",
|
|
message: "Admin: Triggered cache clearance",
|
|
icon: "🧹"
|
|
});
|
|
|
|
return { success: true, message: "Cache clearance triggered" };
|
|
},
|
|
|
|
/**
|
|
* Toggles maintenance mode for the bot.
|
|
*/
|
|
toggleMaintenanceMode: async (enabled: boolean, reason?: string) => {
|
|
systemEvents.emit(EVENTS.ACTIONS.MAINTENANCE_MODE, { enabled, reason });
|
|
|
|
await dashboardService.recordEvent({
|
|
type: enabled ? "warn" : "info",
|
|
message: `Admin: Maintenance mode ${enabled ? "ENABLED" : "DISABLED"}${reason ? ` (${reason})` : ""}`,
|
|
icon: "🛠️"
|
|
});
|
|
|
|
return { success: true, enabled, message: `Maintenance mode ${enabled ? "enabled" : "disabled"}` };
|
|
}
|
|
};
|