3.5 KiB
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:
- Module
lib/dofusdb.tsavec client HTTP typé - Types TypeScript pour les réponses API (quêtes, donjons, succès, etc.)
- Gestion des erreurs API (timeout, rate limit, 404)
- Configuration via variables d'environnement (API URL, éventuels tokens)
- Retry automatique en cas d'échec temporaire (max 3 retries)
- Logging des appels API pour debug
- 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:
- Endpoint ou script pour importer les donjons depuis DofusDB
- Mapping des données DofusDB vers le model
ProgressionType(category: DUNGEON) - Import des métadonnées : nom, niveau requis, zone/région
- Gestion des doublons : mise à jour si existant, création sinon
- Rapport d'import : X créés, Y mis à jour, Z erreurs
- Bouton "Importer donjons" dans
/settings/data - 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:
- Import des quêtes Dofus (les 10 quêtes principales identifiées)
- Mapping vers
ProgressionType(category: DOFUS_QUEST) - Import des métadonnées : nom, Dofus associé
- Option de filtrer quelles quêtes importer (sélection manuelle ou toutes)
- Gestion des doublons
- Bouton "Importer quêtes" dans
/settings/data - 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:
- Import des recherchés par région depuis DofusDB
- Mapping vers
ProgressionType(category: WANTED) - Métadonnées : nom, région associée
- Regroupement par région (Astrub, Amakna, Frigost I/II/III, etc.)
- Gestion des doublons
- Bouton "Importer recherchés" dans
/settings/data - 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:
- Page
/settings/dataavec configuration de sync - Option sync manuelle (boutons par type de données)
- Option sync automatique périodique (daily, weekly, disabled)
- Cron job ou scheduled task pour sync auto
- Notification (toast ou log) après sync automatique
- Historique des syncs (date, type, résultat)
- 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:
- Les
ProgressionTypeimportés ont un flagsource: API | MANUAL - Sync API ne modifie que les entrées
source: API - Entrées
source: MANUALpréservées lors du sync - Option de forcer l'écrasement (avec confirmation)
- Détection des entrées supprimées de l'API (soft delete ou warning)
- Log des conflits détectés pour review