From 42bd9f7c20f204de28b80127c75f0af9597151dd Mon Sep 17 00:00:00 2001 From: Maxiwere45 Date: Tue, 9 Jun 2026 11:12:05 +0200 Subject: [PATCH] feat(domain): add PokemonRepository interface Co-Authored-By: Claude Opus 4.8 --- .../repositories/pokemon_repository.dart | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 lib/domain/repositories/pokemon_repository.dart diff --git a/lib/domain/repositories/pokemon_repository.dart b/lib/domain/repositories/pokemon_repository.dart new file mode 100644 index 0000000..4aeedf3 --- /dev/null +++ b/lib/domain/repositories/pokemon_repository.dart @@ -0,0 +1,22 @@ +import '../entities/pokemon.dart'; + +/// Contrat d'accès aux données Pokémon. L'UI et le domaine ne connaissent que cette interface. +abstract interface class PokemonRepository { + /// Tous les Pokémon (DB locale d'abord, complétée par l'API si nécessaire). + Future> getAll(); + + /// Un Pokémon par id (DB d'abord, sinon API + mise en cache). `null` si introuvable. + Future getById(int id); + + /// Insère/remplace une liste de Pokémon. + Future saveAll(List pokemons); + + /// Met à jour un Pokémon existant. + Future update(Pokemon pokemon); + + /// Nombre de Pokémon attrapés. + Future caughtCount(); + + /// Nombre de Pokémon vus. + Future seenCount(); +}