quel-est-ce-pokemon/lib/domain/repositories/pokemon_repository.dart
Maxiwere45 42bd9f7c20 feat(domain): add PokemonRepository interface
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:12:05 +02:00

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();
}