# TacForce Pro — Projektplan

> **Produkt:** Professionelle Discord-Bot-Plattform (SaaS) unter der Domain **tacforce.pro**
> **Erstes vermarktbares Produkt:** *TacForce Pro — Tickets & Bewerbungen für professionelle Discord-Server.*
> **Leitprinzip:** Stabilität vor Feature-Menge. Lieber Tickets + Bewerbungen + Dashboard + Bot **richtig**, statt 20 halbfertige Module.

---

## 1. Idee & Positionierung

Discord-Bot-Plattform für **Communitys, FiveM-Server, Minecraft-Server, Clans, Creator, Designer-/Service-Server und kleine Teams**.

Bestehend aus:
1. Marketing-Website (`tacforce.pro`)
2. Discord-Bot **TacForce Operator** (discord.js)
3. Web-Dashboard zur Konfiguration
4. Modul-System
5. Paket-/Premium-System
6. Saubere Datenbankstruktur
7. Später: optionale Zahlungsintegration

**Nicht shady:** keine Fake-Boosts, keine Fake-Member, keine Selfbots, kein Spam, keine ungefragten Werbe-DMs, keine Plattform-Manipulation. Seriös, vertrauenswürdig, langfristig betreibbar.

**Design-DNA:** dunkel · modern · technisch · seriös · „Command Center / Control Panel". Keine Waffenoptik. Anthrazit/Schwarz + Akzent (Blau/Cyan/Grün), klare Cards, moderne Icons, shadcn/ui-Look.

**Claims:** „Professionelle Discord-Bots für starke Communitys." · „Tickets, Bewerbungen, Rollen und Logs in einem Dashboard."

---

## 2. MVP-Umfang (Phase 1)

**Bauen:** Landingpage · Discord-Login · Dashboard mit Serverauswahl · Bot hinzufügen · Server-Grundeinstellungen · **Ticket-System** · **Bewerbungs-System** · Welcome-/Log-System · Paketstruktur (vorbereitet) · Admin-Bereich.

**Nur in Architektur vorbereiten (noch nicht bauen):** Musikbot · volles Level-System · Shop · FiveM-Fraktionssystem · White-Label · komplexe Automationen · KI.

---

## 3. Tech-Stack

- **Frontend/Dashboard:** Next.js · TypeScript · Tailwind CSS · shadcn/ui · Lucide Icons · React Hook Form · Zod
- **Backend:** Next.js API Routes / Server Actions · Prisma ORM
- **DB:** PostgreSQL via Supabase
- **Auth:** Discord OAuth (Nutzer sehen nur Server mit ausreichenden Rechten)
- **Bot:** Node.js · discord.js · Slash Commands · Buttons · Select Menus · Modals · Events (keine Prefix-Commands als Hauptsystem)
- **Hosting (vorbereiten):** Vercel (Web) · Railway/Fly.io/VPS (Bot-Worker) · Supabase (DB/Auth)
- **Qualität:** ESLint · Prettier · saubere Ordnerstruktur · `.env.example` · README · Logging · keine Secrets im Code

---

## 4. Architektur (Monorepo)

```
tacforce-pro/
  apps/
    web/   (app/ components/ lib/ server/ styles/)
    bot/   (src/commands src/events src/modules src/services src/utils)
  packages/
    database/ (prisma/ src/)
    shared/   (src/)
  README.md  .env.example  package.json
```
Fallback wenn Monorepo zu groß: `web/  bot/  prisma/  README.md`.
**Wichtig:** Web-App und Bot nutzen dieselbe Datenbank.

---

## 5. MVP-Module

### Modul 1 — Server Setup
Dashboard: Server auswählen · Bot-Status · Sprache · Log-Channel · Team-Rollen · Branding-Farbe · Module an/aus.
Seiten: `/dashboard`, `/dashboard/[guildId]`, `.../settings`, `.../tickets`, `.../applications`, `.../logs`, `/pricing`.

### Modul 2 — Ticket-System (Hauptprodukt)
Ticket-Kategorien (Support, Bewerbung, Beschwerde, Bestellung, Partneranfrage) mit Name, Beschreibung, Emoji, Teamrolle, Channel-Kategorie, Log-Channel. Panel mit Button → privater Ticket-Channel → Start-Embed → schließen → Transcript in Log-Channel → Status in DB.
Commands: `/ticket panel|close|add|remove|rename|claim`.
Free: 1 Kategorie, 50 Tickets/Monat, TacForce-Branding · Pro: unbegrenzt + Transkripte + eigenes Branding.

### Modul 3 — Bewerbungs-System (Hauptprodukt)
Formular: Titel, Beschreibung, Fragen, Ziel-Channel, Teamrolle, Rolle bei Annahme, Nachrichten bei Annahme/Ablehnung. Panel-Button → Modal → Antworten als Embed → Annehmen/Ablehnen per Button → Auto-Rolle → Status gespeichert → archivierbar.
Commands: `/apply panel|create|list|status|close`.
Free: 1 Formular · Pro: mehrere Formulare + Rollen-Automation + Archiv + interne Notizen.

### Modul 4 — Welcome & Logs
Welcome: Channel, Nachricht, Embed-Farbe, Auto-Rolle, optional Regelbestätigungsrolle.
Logs: join/leave, message delete/edit, ban/unban, role add/remove, ticket created/closed, application submitted/accepted/rejected. Nur sauber Loggbares; keine privaten Daten unnötig speichern.

---

## 6. Später vorbereiten (Datenstruktur/Navigation)

**TacForce Guard** (Moderation) · **TacForce Level** (XP/Leaderboard) · **TacForce Partner** (Partnerwerbung) · **TacForce Faction** (FiveM: Ränge, Dienstnummern, Dienstzeiten, Blacklist, Einsatzberichte) · **TacForce Shop** (Preisliste, Bestellung) · **TacForce Radio/Soundboard** (nur sichere Audiofunktionen, kein YT/Spotify-Scraping).

---

## 7. Paketmodell (in DB, Zahlung erst vorbereiten)

| Plan | Preis | Kern-Limits |
|------|-------|-------------|
| **Free** | 0 € | 1 Server · 1 Ticket-Kat. · 50 Tickets/Mon · 1 Formular · TacForce-Branding · Basis-Welcome/Logs |
| **Starter** | 4,99 €/Mon | 1 Server · 3 Kat. · 250 Tickets/Mon · 3 Formulare · einfache Auto-Rollen |
| **Pro** | 9,99 €/Mon | unbegrenzte Tickets/Formulare · Transkripte · Rollen-Automation · Custom Farben · bessere Logs |
| **Elite** | 19,99 €/Mon | mehrere Server · Faction/Shop/Soundboard (später) · erweiterte Statistiken · Prio-Support |
| **Custom / White Label** | 149 € Setup + 19–49 €/Mon | eigener Botname/Logo · individuelles Setup |

MVP: Admin setzt Pläne im `/admin`-Bereich manuell. Später: Discord App Monetization / Stripe.

---

## 8. Datenmodell (Prisma, Minimum)

`User` · `Guild` · `GuildMemberPermission` · `GuildSettings` · `TicketCategory` · `Ticket` · `ApplicationForm` · `ApplicationQuestion` · `ApplicationSubmission` · `AuditLog` · `Subscription`.
(Feldlisten siehe Original-Briefing — inkl. Discord-IDs, Status-Enums, Timestamps, optionale Provider-Felder für Billing.)

---

## 9. Seiten

**Public:** `/` · `/features` · `/pricing` · `/tickets` · `/apply` · `/fivem` · `/login`
**Dashboard:** `/dashboard` · `/dashboard/[guildId]` (+ `/settings /tickets /applications /logs /billing`) · `/admin`

---

## 10. UI-Anforderungen

Responsive · dunkles Design · Sidebar im Dashboard · klare Cards · Status-Badges · Empty States mit Erklärung · Ladezustände · Fehlermeldungen · Confirmation-Dialogs bei gefährlichen Aktionen · Forms mit Validierung · Tabellen für Tickets/Bewerbungen/Logs.

Landing-Headline: „Der Discord-Bot für Server, die professionell wirken wollen." · Subline: „Verwalte Tickets, Bewerbungen, Rollen, Logs und Community-Prozesse in einem modernen Dashboard." · CTAs: „Kostenlos starten" · „Bot hinzufügen" · „Demo ansehen".

---

## 11. Bot-Anforderungen

Slash Commands registrieren · Buttons/Modals verarbeiten · saubere Fehlerantworten · Ephemeral wo sinnvoll · keine unnötigen Rechte · Settings pro Server aus DB laden · hilfreiche Meldungen bei fehlender Konfiguration.
Commands: `/setup /help /panel tickets /panel apply /ticket close|claim|add|remove /apply status`.
Events: ready · guildCreate/Delete · interactionCreate · guildMemberAdd/Remove · messageDelete/Update · guildBanAdd/Remove.

---

## 12. Sicherheit & Policy

Keine Secrets committen · `.env.example` · Discord-Tokens nur serverseitig · Rechte-Checks in allen API-Routen · Rate-Limits · Eingaben validieren · keine HTML-Injection in Transkripten · DSGVO-Hinweis.
**Verboten:** Fake-Member/Boosts · Spam-/Mass-DMs · Selfbots · Token-Grabbing · Account-Automation · User-Scraping · Audio-Scraping · Regel-Umgehung.

---

## 13. Roadmap

- **Phase 1 (MVP):** Landing · Login · Dashboard · Bot-Grundstruktur · Guild-Setup · Tickets · Bewerbungen · Welcome · Logs · Planlimits · Admin.
- **Phase 2:** Guard · Level · Partner · bessere Statistiken · Ticket-Bewertungen · Custom Branding.
- **Phase 3:** FiveM Faction · Shop · Soundboard/Radio · White-Label · Zahlungsintegration · Team-Performance · Mehrsprachigkeit.

---

## 14. Bau-Reihenfolge (Phase 1)

1. Projektstruktur → 2. Next.js+TS+Tailwind+shadcn → 3. Prisma+Supabase → 4. Prisma-Schema → 5. Discord-OAuth → 6. Landingpage → 7. Dashboard-Layout → 8. Bot-Grundstruktur → 9. Guild-Setup → 10. Tickets → 11. Bewerbungen → 12. Welcome/Logs → 13. Admin → 14. README → 15. `.env.example` → 16. Seed-/Testdaten.

**Ziel-Ergebnis (lokal lauffähig):** `npm install && npm run dev` (bzw. `dev:web` / `dev:bot`) → funktionierende Website, Login, Dashboard, Bot, Ticket-Panel, Bewerbungspanel, Welcome, Logs, Paketlimits, Admin, README, ENV-Anleitung.

---

## 15. Status / Nächster Schritt

- [x] Plan gesichert
- [x] 10 Dashboard-Design-Richtungen als Mockups (`/design-mockups/`) — **gewählt: 04 Minimal Slate**
- [x] Stack-Entscheidung: **Laravel + MySQL (XAMPP)** + separater Node-Bot-Worker
- [x] Verträge: `DESIGN.md` (04 hell/dunkel), `DATA-MODEL.md`, `routes/web.php`, `ARCHITECTURE.md`
- [x] Codebasis gebaut: Laravel-App (Website + Dashboard + Admin + Multi-Bot-Registry) + Bot-Worker (discord.js)
- [ ] **Aktuell:** XAMPP + Composer installieren → `composer install && php artisan migrate --seed` → lokaler Testlauf (siehe `SETUP-XAMPP.md`)
- [ ] Discord-App anlegen (OAuth-Redirect + Bot-Token + Intents) → Bot einladen
- [ ] Danach: Feinschliff, dann Phase 2 (Guard, Level, Partner)
