initial commit
This commit is contained in:
94
docs/prd/epic-6-dofusdb-integration.md
Normal file
94
docs/prd/epic-6-dofusdb-integration.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# Epic 6: DofusDB Integration
|
||||
|
||||
**Goal:** Intégrer l'API DofusDB pour importer automatiquement les données de référence du jeu (quêtes, donjons, succès, recherchés). L'utilisateur n'a plus besoin de saisir manuellement ces informations.
|
||||
|
||||
## Story 6.1: DofusDB API Client
|
||||
|
||||
**As a** developer,
|
||||
**I want** a typed HTTP client for the DofusDB API,
|
||||
**so that** I can fetch game reference data reliably.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
1. Module `lib/dofusdb.ts` avec client HTTP typé
|
||||
2. Types TypeScript pour les réponses API (quêtes, donjons, succès, etc.)
|
||||
3. Gestion des erreurs API (timeout, rate limit, 404)
|
||||
4. Configuration via variables d'environnement (API URL, éventuels tokens)
|
||||
5. Retry automatique en cas d'échec temporaire (max 3 retries)
|
||||
6. Logging des appels API pour debug
|
||||
7. Tests unitaires avec mocks des réponses API
|
||||
|
||||
## Story 6.2: Dungeon Data Import
|
||||
|
||||
**As a** user,
|
||||
**I want** to import the list of dungeons from DofusDB,
|
||||
**so that** I don't have to add them manually.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
1. Endpoint ou script pour importer les donjons depuis DofusDB
|
||||
2. Mapping des données DofusDB vers le model `ProgressionType` (category: DUNGEON)
|
||||
3. Import des métadonnées : nom, niveau requis, zone/région
|
||||
4. Gestion des doublons : mise à jour si existant, création sinon
|
||||
5. Rapport d'import : X créés, Y mis à jour, Z erreurs
|
||||
6. Bouton "Importer donjons" dans `/settings/data`
|
||||
7. Indicateur de dernière synchronisation
|
||||
|
||||
## Story 6.3: Quest Data Import
|
||||
|
||||
**As a** user,
|
||||
**I want** to import Dofus quest chains from DofusDB,
|
||||
**so that** I can track my progress on main quests.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
1. Import des quêtes Dofus (les 10 quêtes principales identifiées)
|
||||
2. Mapping vers `ProgressionType` (category: DOFUS_QUEST)
|
||||
3. Import des métadonnées : nom, Dofus associé
|
||||
4. Option de filtrer quelles quêtes importer (sélection manuelle ou toutes)
|
||||
5. Gestion des doublons
|
||||
6. Bouton "Importer quêtes" dans `/settings/data`
|
||||
7. Rapport d'import
|
||||
|
||||
## Story 6.4: Wanted Posters Import
|
||||
|
||||
**As a** user,
|
||||
**I want** to import wanted poster data from DofusDB,
|
||||
**so that** I can track bounties by region.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
1. Import des recherchés par région depuis DofusDB
|
||||
2. Mapping vers `ProgressionType` (category: WANTED)
|
||||
3. Métadonnées : nom, région associée
|
||||
4. Regroupement par région (Astrub, Amakna, Frigost I/II/III, etc.)
|
||||
5. Gestion des doublons
|
||||
6. Bouton "Importer recherchés" dans `/settings/data`
|
||||
7. Rapport d'import
|
||||
|
||||
## Story 6.5: Sync Settings & Automation
|
||||
|
||||
**As a** user,
|
||||
**I want** to configure automatic synchronization with DofusDB,
|
||||
**so that** my reference data stays up to date.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
1. Page `/settings/data` avec configuration de sync
|
||||
2. Option sync manuelle (boutons par type de données)
|
||||
3. Option sync automatique périodique (daily, weekly, disabled)
|
||||
4. Cron job ou scheduled task pour sync auto
|
||||
5. Notification (toast ou log) après sync automatique
|
||||
6. Historique des syncs (date, type, résultat)
|
||||
7. Option de réinitialiser toutes les données de référence
|
||||
|
||||
## Story 6.6: Data Conflict Resolution
|
||||
|
||||
**As a** developer,
|
||||
**I want** a strategy for handling conflicts between local and API data,
|
||||
**so that** user modifications aren't lost during sync.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
1. Les `ProgressionType` importés ont un flag `source: API | MANUAL`
|
||||
2. Sync API ne modifie que les entrées `source: API`
|
||||
3. Entrées `source: MANUAL` préservées lors du sync
|
||||
4. Option de forcer l'écrasement (avec confirmation)
|
||||
5. Détection des entrées supprimées de l'API (soft delete ou warning)
|
||||
6. Log des conflits détectés pour review
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user