85 lines
3.7 KiB
Markdown
85 lines
3.7 KiB
Markdown
# Epic 4: Progression Tracking
|
|
|
|
**Goal:** Implémenter le tracking des progressions par personnage : quêtes Dofus, donjons par paliers, et recherchés par région. L'utilisateur peut marquer les progressions comme complétées et voir les statistiques par team.
|
|
|
|
## Story 4.1: Progression Database Schema
|
|
|
|
**As a** developer,
|
|
**I want** a flexible schema for tracking character progressions,
|
|
**so that** different types of progressions can be managed uniformly.
|
|
|
|
**Acceptance Criteria:**
|
|
1. Model `ProgressionType`: id, category (enum: DOFUS_QUEST, DUNGEON, WANTED), name, region (nullable), levelRange (nullable), createdAt
|
|
2. Model `CharacterProgression`: characterId, progressionTypeId, completed (boolean), completedAt (nullable)
|
|
3. Enum `ProgressionCategory`: DOFUS_QUEST, DUNGEON, WANTED
|
|
4. Index composite sur (characterId, progressionTypeId) pour performance
|
|
5. Migration générée et appliquée
|
|
6. Seed script avec données de progression types :
|
|
- 10 quêtes Dofus (Turquoise, Pourpre, Émeraude, Glaces, Abyssal, Nébuleux, Domakuro, Dorigami, Tacheté, Vulbis)
|
|
- Donjons par paliers (1-50, 51-100, 101-150, 151-190, 191-200)
|
|
- Recherchés par région (Astrub, Amakna, Frigost I/II/III, etc.)
|
|
|
|
## Story 4.2: Character Progression View
|
|
|
|
**As a** user,
|
|
**I want** to see and edit a character's progressions on their detail page,
|
|
**so that** I can track what each character has completed.
|
|
|
|
**Acceptance Criteria:**
|
|
1. Section "Progressions" sur la page `/characters/:id`
|
|
2. Onglets par catégorie : Quêtes Dofus | Donjons | Recherchés
|
|
3. Liste des items avec checkbox pour marquer fait/pas fait
|
|
4. Date de complétion affichée si complété
|
|
5. Clic sur checkbox toggle l'état et sauvegarde immédiatement
|
|
6. Compteur de progression par catégorie (ex: "7/10 Dofus")
|
|
7. Filtres : Tous | Faits | Non faits
|
|
8. Items triés par nom ou par ordre logique (niveau pour donjons)
|
|
|
|
## Story 4.3: Bulk Progression Update
|
|
|
|
**As a** user,
|
|
**I want** to update progressions for multiple characters at once,
|
|
**so that** I can quickly mark a dungeon done for my whole team.
|
|
|
|
**Acceptance Criteria:**
|
|
1. Page `/progressions/bulk` accessible depuis le menu
|
|
2. Sélecteur de personnages (multi-select avec filtres)
|
|
3. Sélection possible par team entière (bouton "Sélectionner team X")
|
|
4. Sélecteur de progression type à mettre à jour
|
|
5. Action : "Marquer comme fait" ou "Marquer comme non fait"
|
|
6. Confirmation avant exécution avec récapitulatif (X personnages, progression Y)
|
|
7. Toast de succès avec nombre de mises à jour effectuées
|
|
8. Retour à la page précédente après action
|
|
|
|
## Story 4.4: Team Progression Status
|
|
|
|
**As a** user,
|
|
**I want** to see the progression status of my team for a specific objective,
|
|
**so that** I can see who still needs to complete it.
|
|
|
|
**Acceptance Criteria:**
|
|
1. Sur `/teams/:id`, nouvelle section "Statut des progressions"
|
|
2. Sélecteur de progression type (ex: "Dofus Turquoise")
|
|
3. Tableau : membres de la team avec statut (fait/pas fait) pour cette progression
|
|
4. Pourcentage global affiché (ex: "6/8 = 75%")
|
|
5. Indicateur visuel clair (vert = fait, rouge = pas fait)
|
|
6. Bouton "Marquer fait pour tous" pour bulk update depuis cette vue
|
|
7. Filtrable par catégorie de progression
|
|
|
|
## Story 4.5: Progression Filters in Character List
|
|
|
|
**As a** user,
|
|
**I want** to filter characters by progression status,
|
|
**so that** I can find who hasn't completed a specific objective.
|
|
|
|
**Acceptance Criteria:**
|
|
1. Nouvelle section dans la sidebar des filtres : "Progression"
|
|
2. Sélecteur de progression type
|
|
3. Options : "A fait" / "N'a pas fait"
|
|
4. Combinable avec les autres filtres existants
|
|
5. Exemple d'usage : "Montrer tous les Cra qui n'ont pas fait le Dofus Turquoise"
|
|
6. Compteur de résultats mis à jour
|
|
7. Filtre stocké dans l'URL
|
|
|
|
---
|