using Portfolio.Domain.Features.Pokemon;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Portfolio.Application.Services.PokemonService
{
    public interface IPokemonService
    {
        Task<List<Pokemon>> GetAllPokemonAsync();
        Task<Pokemon> GetPokemonByPokemonIdAsync(int id);
        Task<Pokemon> GetPokemonByIdAsync(int id);
        Task<List<int>> GetAllPokemonIdsAsync();
        Task<int?> GetPreviousPokemonIdAsync(int id);
        Task<int?> GetNextPokemonIdAsync(int id);
        Task<int?> GetVariationPokemonIdAsync(int id);
        Task AddPokemonAsync(Pokemon pokemon);
        Task DeletePokemonAsync(int pokemonId);
        Task UpdatePokemonAsync(Pokemon pokemon);
    }
}
