23 lines
725 B
Dart
23 lines
725 B
Dart
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<List<Pokemon>> getAll();
|
|
|
|
/// Un Pokémon par id (DB d'abord, sinon API + mise en cache). `null` si introuvable.
|
|
Future<Pokemon?> getById(int id);
|
|
|
|
/// Insère/remplace une liste de Pokémon.
|
|
Future<void> saveAll(List<Pokemon> pokemons);
|
|
|
|
/// Met à jour un Pokémon existant.
|
|
Future<void> update(Pokemon pokemon);
|
|
|
|
/// Nombre de Pokémon attrapés.
|
|
Future<int> caughtCount();
|
|
|
|
/// Nombre de Pokémon vus.
|
|
Future<int> seenCount();
|
|
}
|