Add giveaway, ticket, self-role, starboard, and suggestion features to the bot

- Introduced new models in the Prisma schema for giveaways, tickets, self-role panels, starboard configurations, and suggestions, enhancing the bot's functionality.
- Implemented job handling for self-role expiration and ticket management, improving user experience.
- Updated command localization to support new features in both German and English.
- Enhanced the job processing system to include dedicated workers for managing tickets and self-role expirations.
- Documented the new features and their setup processes in PHASE-TRACKING.md for clarity on implementation steps.
This commit is contained in:
smueller
2026-07-22 13:08:37 +02:00
parent f2f856628d
commit a583db7a15
50 changed files with 7820 additions and 4 deletions

View File

@@ -183,5 +183,38 @@ Dieses Dokument hält den aktuellen Implementierungsstand fest. Es wird bei jede
## Nächster geplanter Schritt
- Manuelle Phase-3-Tests, dann nach Freigabe Phase 4 (Giveaways, Tickets, Reaction Roles, Custom Commands, Starboard, Suggestions, Geburtstage, Temp-Voice).
- Manuelle Phase-3-Tests, dann nach Freigabe Phase 4 (Giveaways, Tickets, Reaction Roles, Custom Commands, Geburtstage, Temp-Voice).
### Starboard (`apps/bot/src/modules/starboard/`)
- `/starboard setup` (Kanal, Schwellenwert, Emoji, Self-Star)
- Reaktions-Events: Nachrichten mit genügend ⭐ (konfigurierbar) → Embed im Starboard-Kanal
- NSFW-/Bot-/Ignore-Kanal-Ausschluss, Self-Star-Regel, Eintrag in `StarboardEntry`
### Suggestions (`apps/bot/src/modules/suggestions/`)
- `/suggest`, `/suggestion setup|approve|deny|consider|implement`
- Upvote/Downvote-Buttons (`sug:vote:{id}:up|down`), optional Thread
- Status-Update mit Kanal-Verschiebung (approved/denied) und DM an Autor
### Manuelle Discord-Tests Starboard/Suggestions (offen)
- `/starboard setup`, Reaktionen bis/unter Schwellenwert, Self-Star aus/an
- `/suggestion setup`, `/suggest`, Voting, Staff-Status + DM
### Giveaways (`apps/bot/src/modules/giveaways/`)
- `/giveaway start|end|reroll|list|delete|pause`
- Button `gw:join:{giveawayId}`, BullMQ-Job `giveawayEnd` (Export: `endGiveaway`)
- Anforderungen: Rolle, Level, Mitgliedschaftsdauer; DM an Gewinner
### Tickets (`apps/bot/src/modules/tickets/`)
- `/ticket panel create`, `/ticket category create`, `/ticket close|claim|add|remove|rename|priority`
- Panel-Buttons/Select, Modal, Kanal-/Thread-Modus, HTML-Transkript, Bewertung, Auto-Close-Export
### Manuelle Discord-Tests Giveaways/Tickets (offen)
- Giveaway: Start, Join, Ende/Reroll/Pause; Ticket: Panel, Öffnen, Close, Transkript, Rating
- Wiring in `commands.ts`, `index.ts`, `jobs.ts` (Parent-Agent)