Files
dofus-manager/docs/prd/epic-6-dofusdb-integration.md
2026-01-19 08:52:38 +01:00

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:

  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