# Coconut Runner Bot

Bot Discord qui surveille en direct un salon de logs de ventes, comptabilise les ventes de
**craft_recipe_23** (affiché comme **Coconuts Spirit**), réagit automatiquement 🥥 sur les
messages comptabilisés, et fournit une commande `/totalrun` réservée au rôle **Direction**
pour afficher les totaux par vendeur sur une période donnée.

Le bot ne traite QUE les nouveaux messages à partir de son démarrage (`messageCreate`) : il
ne va pas scanner l'historique existant du salon.

## 1. Créer l'application Discord

1. Va sur https://discord.com/developers/applications → **New Application**.
2. Onglet **Bot** :
   - Clique sur **Reset Token** et copie le token (tu le mettras dans `.env`).
   - Active l'intent **MESSAGE CONTENT INTENT** (indispensable pour lire les embeds des
     messages qui ne mentionnent pas le bot).
3. Onglet **General Information** : copie l'**Application ID** (= `CLIENT_ID`).
4. Onglet **OAuth2 > URL Generator** :
   - Scopes : `bot`, `applications.commands`
   - Permissions : `View Channels`, `Send Messages`, `Add Reactions`, `Read Message History`
   - Ouvre l'URL générée pour inviter le bot sur ton serveur.

## 2. Récupérer les identifiants Discord

Active le **Mode développeur** (Paramètres Discord > Avancés), puis clic droit pour copier :
- **GUILD_ID** : clic droit sur le serveur
- **LOG_CHANNEL_ID** : clic droit sur le salon des logs de vente
- **DIRECTION_ROLE_ID** : Paramètres du serveur > Rôles > clic droit sur le rôle Direction

## 3. Installer le projet sur ton hébergement OVH

```bash
# Sur ton serveur OVH (SSH), assure-toi d'avoir Node.js 18+ installé
node -v

# Copie le dossier du projet sur le serveur, puis :
cd coconut-runner-bot
npm install
cp .env.example .env
nano .env   # remplis DISCORD_TOKEN, CLIENT_ID, GUILD_ID, LOG_CHANNEL_ID, DIRECTION_ROLE_ID
```

## 4. Déployer la commande slash

```bash
npm run deploy-commands
```

À refaire uniquement si tu modifies la commande `/totalrun` (options, nom, etc.).

## 5. Lancer le bot en continu (pm2)

```bash
npm install -g pm2
pm2 start src/index.js --name coconut-runner-bot
pm2 save
pm2 startup   # suit les instructions affichées pour un démarrage automatique au reboot
```

Commandes utiles :
```bash
pm2 logs coconut-runner-bot   # voir les logs en direct
pm2 restart coconut-runner-bot
pm2 stop coconut-runner-bot
```

## 6. Utilisation

- Chaque nouvelle vente de `craft_recipe_23` postée dans le salon de logs reçoit
  automatiquement la réaction 🥥 et est enregistrée dans `sales.db` (SQLite, créé
  automatiquement à côté du code).
- N'importe qui avec le rôle Direction peut taper `/totalrun` et choisir :
  - **Aujourd'hui**
  - **Cette semaine**
  - **Ce mois-ci**
  - **Personnalisée** (avec `date_debut` et `date_fin` au format `JJ/MM/AAAA`)

Le résultat affiche le total de Coconuts Spirit vendu par personne, trié du plus gros
vendeur au plus petit, avec le total général en bas.

## Notes importantes

- **Aucun rattrapage d'historique** : les ~20 000 messages déjà existants dans le salon ne
  seront pas comptabilisés rétroactivement. Seuls les messages arrivant après le démarrage
  du bot sont pris en compte. (Si tu veux un rattrapage ponctuel de l'historique, c'est
  possible mais c'est un traitement à part, dis-le moi si besoin.)
- **Pas de doublons** : chaque vente est liée à l'ID unique du message Discord. Si le bot
  redémarre, il ne recomptera jamais deux fois la même vente.
- **Changer l'item suivi** : si un jour l'ID de l'item `craft_recipe_23` change ou si tu
  veux suivre un autre produit, il suffit de changer `TARGET_ITEM_KEY` et
  `TARGET_ITEM_LABEL` dans `.env` (pas besoin de toucher au code).
