using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Portfolio.Domain.Features.Pokemon
{
    public interface IPokemonRepository
    {
        Task<List<Pokemon>> GetAllPokemonsAsync();
        Task<Pokemon> GetPokemonByIdAsync(int id);
        Task<Pokemon> GetPokemonByPokemonIdAsync(int id);
        Task<List<int>> GetAllPokemonIdsAsync();
        Task<int?> GetPreviousPokemonIdAsync(int currentPokemonId);
        Task<int?> GetNextPokemonIdAsync(int currentPokemonId);
        Task<int?> GetVariationPokemonIdAsync(int pokemonId);
        Task AddPokemonAsync(Pokemon pokemon);
        Task DeletePokemonAsync(int pokemonId);
        Task UpdatePokemonAsync(Pokemon pokemon);

    }
}
