Soiree du jeudi
Le bot gere automatiquement l'organisation de la soiree gaming du jeudi avec un systeme de RSVP, des rappels et un recapitulatif.
Timeline complete
| Heure | Action | Description |
|---|---|---|
| 10h00 | Message RSVP | Envoi du message avec boutons dans le salon jeudi |
| - | Votes en continu | Compteurs mis a jour en temps reel sur le message RSVP |
| - | Notification | Message quand tous les membres ont repondu |
| 20h00 | Recap automatique | Embed recapitulatif des reponses |
| 21h30 | Rappel DM | DM envoye aux presents ayant active l'option |
Tous les crons utilisent le fuseau horaire Europe/Paris.
10h00 - Message RSVP
Le cron thursday-reminder envoie un message dans le salon configure (thursdayChannelId) avec quatre boutons :
- Present (vert) : marque le membre comme present
- Peut-etre (bleu) : marque le membre comme peut-etre
- Absent (rouge) : marque le membre comme absent
- Preciser (gris) : ouvre une modale avec des champs supplementaires
Si un role jeudi est configure (thursdayRoleId), il est mentionne dans le message.
L'ID du message RSVP est stocke dans GuildConfig.thursdayMessageId pour permettre les mises a jour en temps reel.
Votes et mise a jour en temps reel
A chaque vote (clic sur un bouton) :
- La reponse est enregistree dans
WeeklyEventResponse(upsert viauserId + weekNumber + year). - Le message RSVP original est edite pour mettre a jour les compteurs (
X present, Y peut-etre, Z absent). - Le bot verifie si tous les membres actifs ont repondu.
Le numero de semaine est calcule selon la norme ISO 8601 pour determiner la semaine en cours.
Bouton "Preciser"
Ouvre une modale Discord avec trois champs :
| Champ | Description | Requis |
|---|---|---|
| Statut | present, maybe ou absent | Oui |
| Arrivee | Heure d'arrivee estimee (ex: 20h30) | Non |
| Commentaire | Commentaire libre | Non |
Rappel DM opt-in
Quand un membre vote Present, un message ephemere lui propose d'activer le rappel DM a 21h30 avec deux boutons :
- "Me rappeler a 21h30" : active
wantsThursdayDmReminder = true - "Pas de rappel" : laisse a
false
Notification "tout le monde a repondu"
Apres chaque vote, le bot compare le nombre de reponses au nombre de membres actifs (UserProfile.isActive = true). Si tous ont repondu, un message recapitulatif est envoye dans le salon jeudi.
20h00 - Recap automatique
Le cron thursday-recap envoie un embed recapitulatif dans le salon jeudi :
- Liste des presents, peut-etre et absents avec les details (heure d'arrivee, commentaires).
- Nombre de reponses manquantes par rapport aux membres actifs.
21h30 - Rappel DM
Le cron thursday-dm-reminder envoie un DM aux membres presents ayant active l'option.
Idempotence : le champ thursdayDmSentAt sur WeeklyEventResponse garantit qu'un DM n'est envoye qu'une seule fois par semaine et par membre. Le cron filtre les reponses ou ce champ est null.
Si l'envoi de DM echoue (DMs desactives), l'erreur est :
- Loguee dans
SystemLog - Notifiee dans le salon admin (niveau
warn)
