# language: fr

@rgpd @account-deletion
Fonctionnalité: Suppression du compte utilisateur (Article 17 RGPD - Droit à l'effacement)

  # 13.4 - Grace period 30j + anonymisation contenus

  Contexte:
    Étant donné que je suis un utilisateur connecté
    Et que j'ai utilisé l'application depuis plusieurs mois

  Scénario: Demande de suppression depuis les paramètres
    Étant donné que je suis dans "Paramètres > Compte"
    Quand je clique sur "Supprimer mon compte"
    Alors une page d'avertissement s'affiche avec le message:
      """
      Attention: La suppression de votre compte est définitive.

      Que se passe-t-il lors de la suppression?
      - Votre compte sera désactivé immédiatement (connexion impossible)
      - Vos données personnelles seront supprimées dans 30 jours
      - Vos contenus créés resteront disponibles de manière anonyme
      - Vous pouvez annuler la suppression dans les 30 jours

      Voulez-vous vraiment continuer?
      """
    Et deux boutons sont disponibles: "Annuler" et "Confirmer la suppression"

  Scénario: Confirmation de suppression avec mot de passe
    Étant donné que je clique sur "Confirmer la suppression"
    Quand un formulaire de confirmation s'affiche
    Alors je dois entrer mon mot de passe pour confirmer
    Et je dois cocher "Je comprends que cette action est définitive"
    Et un captcha peut être requis pour éviter les suppressions automatisées
    Quand je valide le formulaire
    Alors la suppression est initiée

  # Désactivation immédiate

  Scénario: Compte désactivé immédiatement après confirmation
    Étant donné que j'ai confirmé la suppression de mon compte
    Quand la demande est traitée
    Alors mon compte est désactivé immédiatement
    Et je suis déconnecté de toutes mes sessions
    Et je ne peux plus me reconnecter
    Et si j'essaie de me connecter, je reçois le message:
      """
      Votre compte est en cours de suppression. Si vous souhaitez annuler, cliquez sur le lien reçu par email.
      """

  Scénario: Contenus cachés pendant le grace period
    Étant donné que mon compte est en cours de suppression
    Quand un autre utilisateur recherche mes contenus
    Alors mes contenus ne sont plus diffusés dans l'application
    Et mes contenus n'apparaissent plus dans les recherches
    Et mes contenus ne sont plus recommandés
    Mais mes contenus ne sont pas encore supprimés définitivement

  # Email de confirmation avec lien d'annulation

  Scénario: Email de confirmation envoyé immédiatement
    Étant donné que j'ai confirmé la suppression de mon compte
    Quand la demande est traitée
    Alors je reçois un email avec le sujet "Confirmation de suppression de votre compte RoadWave"
    Et l'email contient:
      """
      Bonjour,

      Votre compte RoadWave est en cours de suppression. Vos données seront définitivement supprimées le [date + 30j].

      Si vous changez d'avis, vous pouvez annuler la suppression en cliquant sur le lien ci-dessous (valide 30 jours):

      [Annuler la suppression]

      Que se passe-t-il ensuite?
      - Votre compte est désactivé immédiatement
      - Vos contenus sont masqués de l'application
      - Vos données seront supprimées dans 30 jours
      - Vous pouvez annuler à tout moment pendant ces 30 jours

      Pour toute question: dpo@roadwave.fr
      """
    Et le lien d'annulation est valide 30 jours

  # Grace period de 30 jours

  Scénario: Annulation de la suppression dans les 30 jours
    Étant donné que j'ai demandé la suppression de mon compte le 2025-01-20
    Et que je reçois l'email de confirmation
    Quand je clique sur le lien "Annuler la suppression" le 2025-02-05 (16 jours plus tard)
    Alors mon compte est réactivé immédiatement
    Et je peux me reconnecter normalement
    Et mes contenus redeviennent visibles dans l'application
    Et toutes mes données sont restaurées
    Et je reçois un email de confirmation: "Votre compte a été réactivé"

  Scénario: Lien d'annulation expire après 30 jours
    Étant donné que j'ai demandé la suppression de mon compte le 2025-01-20
    Quand j'essaie de cliquer sur le lien d'annulation le 2025-02-25 (36 jours plus tard)
    Alors le lien est expiré
    Et je reçois un message "Ce lien a expiré. Votre compte a été définitivement supprimé."
    Et la suppression effective a déjà eu lieu

  # Suppression effective après 30 jours

  Scénario: Suppression effective sans annulation
    Étant donné que j'ai demandé la suppression de mon compte le 2025-01-20
    Et que je n'ai pas cliqué sur le lien d'annulation
    Quand la date atteint le 2025-02-19 (30 jours plus tard)
    Alors un job automatique exécute la suppression définitive
    Et toutes mes données personnelles sont supprimées

  # Données supprimées

  Scénario: Liste des données supprimées définitivement
    Étant donné que la suppression effective est exécutée
    Quand le job de suppression se termine
    Alors les données suivantes sont supprimées:
      | données                          | supprimé |
      | Compte utilisateur (email, mdp)  | oui      |
      | Profil (pseudo, bio, avatar)     | oui      |
      | Historique d'écoute              | oui      |
      | Historique GPS                   | oui      |
      | Centres d'intérêt (jauges)       | oui      |
      | Sessions et tokens               | oui      |
      | Likes et abonnements             | oui      |
      | Notifications non lues           | oui      |
      | Historique consentements         | oui      |
      | Données de paiement              | oui      |
    Et ces suppressions sont irréversibles

  # Contenus conservés anonymement

  Scénario: Anonymisation des contenus créés
    Étant donné que j'ai créé 10 contenus audio
    Quand la suppression effective est exécutée
    Alors mes contenus audio restent disponibles dans l'application
    Et le nom du créateur devient "Utilisateur supprimé"
    Et mon pseudo n'est plus visible
    Et les métadonnées (titre, description, tags, géolocalisation) sont conservées
    Et les fichiers audio restent sur le CDN
    Et les statistiques d'écoute sont conservées

  Scénario: Justification de l'anonymisation (intérêt légitime)
    Étant donné que mes contenus sont conservés anonymement
    Quand un auditeur RGPD vérifie la conformité
    Alors la conservation est justifiée par l'intérêt légitime de la communauté
    Et les contenus ne contiennent plus de données personnelles identifiables
    Et la suppression complète nuirait à l'expérience des autres utilisateurs
    Et cette pratique est conforme au RGPD si anonymisation réelle

  Scénario: Contenu anonymisé visible pour les autres utilisateurs
    Étant donné que mon compte a été supprimé
    Et que mes contenus ont été anonymisés
    Quand un utilisateur consulte un de mes anciens contenus
    Alors le créateur affiché est "Utilisateur supprimé"
    Et le profil du créateur n'est plus accessible
    Et le contenu reste écoutable normalement
    Et les likes et statistiques sont conservés

  # Likes et abonnements supprimés

  Scénario: Suppression de mes likes avec conservation des compteurs
    Étant donné que j'avais liké 50 contenus
    Quand la suppression effective est exécutée
    Alors mes likes sont supprimés de la base de données
    Mais les compteurs de likes sur les contenus sont préservés
    Et les créateurs ne perdent pas leurs statistiques
    Et seule la relation "user X a liké content Y" est supprimée

  Scénario: Suppression de mes abonnements
    Étant donné que je suivais 20 créateurs
    Quand la suppression effective est exécutée
    Alors mes abonnements sont supprimés
    Et les compteurs d'abonnés des créateurs sont décrémentés de 1
    Et les créateurs ne reçoivent pas de notification de désabonnement

  # Sessions et tokens révoqués

  Scénario: Révocation de tous les tokens immédiatement
    Étant donné que je suis connecté sur 3 appareils (mobile, tablette, web)
    Quand je demande la suppression de mon compte
    Alors tous mes tokens d'authentification sont révoqués immédiatement
    Et je suis déconnecté de tous mes appareils
    Et toute tentative de reconnexion échoue

  # Notifications avant suppression

  Scénario: Rappels par email pendant le grace period
    Étant donné que j'ai demandé la suppression de mon compte le 2025-01-20
    Quand le grace period s'écoule
    Alors je reçois des emails de rappel:
      | date       | jours restants | sujet email                                        |
      | 2025-02-04 | 15 jours       | Plus que 15 jours pour annuler la suppression      |
      | 2025-02-12 | 7 jours        | Dernière semaine pour annuler la suppression       |
      | 2025-02-17 | 2 jours        | Attention: suppression définitive dans 2 jours     |
    Et chaque email contient le lien d'annulation

  # Conformité RGPD Article 17

  Scénario: Conformité droit à l'effacement
    Étant donné que la suppression de mon compte est complète
    Quand un auditeur RGPD vérifie la conformité
    Alors le processus respecte l'article 17 du RGPD:
      | exigence RGPD                                  | respecté |
      | Suppression de toutes les données personnelles | oui      |
      | Délai raisonnable (30j grace period acceptable)| oui      |
      | Possibilité d'annulation (bonne pratique)      | oui      |
      | Anonymisation des contenus (intérêt légitime)  | oui      |
      | Révocation des tokens et sessions              | oui      |
      | Suppression irréversible                       | oui      |

  # Cas particuliers

  Scénario: Suppression d'un compte Premium
    Étant donné que j'ai un abonnement Premium actif
    Quand je demande la suppression de mon compte
    Alors mon abonnement est annulé immédiatement
    Et aucun remboursement n'est effectué (conformément aux CGV)
    Et je reçois un email de confirmation d'annulation de l'abonnement
    Et le reste du processus de suppression se déroule normalement

  Scénario: Suppression d'un compte créateur avec revenus en attente
    Étant donné que je suis un créateur avec 75€ de revenus en attente de paiement
    Quand je demande la suppression de mon compte
    Alors un message m'informe:
      """
      Vous avez 75€ de revenus en attente. Souhaitez-vous recevoir ce paiement avant suppression?
      """
    Et je peux choisir "Recevoir le paiement et attendre" ou "Renoncer au paiement"
    Et si je choisis "Recevoir le paiement", la suppression est repoussée de 7 jours

  Scénario: Suppression avec signalements de modération en cours
    Étant donné que j'ai 2 signalements en cours de traitement
    Quand je demande la suppression de mon compte
    Alors les signalements sont automatiquement clôturés
    Et les contenus signalés sont masqués immédiatement
    Et aucune sanction n'est appliquée (compte déjà en suppression)

  # Traçabilité pour audit

  Scénario: Log de la suppression pour traçabilité
    Étant donné que la suppression effective est exécutée
    Quand le job de suppression se termine
    Alors un log est créé avec:
      | champ                  | valeur                     |
      | user_id                | [ID anonymisé]             |
      | deletion_requested_at  | 2025-01-20T10:00:00Z       |
      | deletion_executed_at   | 2025-02-19T02:00:00Z       |
      | deletion_cancelled     | false                      |
      | data_deleted           | [liste des tables]         |
      | contents_anonymized    | 10                         |
    Et ce log est conservé 5 ans pour audit RGPD
    Et l'user_id est pseudonymisé pour anonymat
