import { ILeaguePokemon, League } from 'app/models/League';
import { IMaxStats } from 'app/models/Pokemon';

export type IndividualValueKey = 'level' | 'hp' | 'atk' | 'def';
export interface IIndividualValues {
    level : number | null;
    hp : number | null;
    atk : number | null;
    def : number | null;
}

export interface IPokemonExplorerState {
    isLoading : boolean;
    leaguePokemon : ILeaguePokemon | null;
    maxPossibleStats : IMaxStats;
    individualValues : IIndividualValues;
    league : League;
}

export const PokemonExplorerActionTypes = {
    SET_IS_LOADING: 'POKEMON_EXPLORER/SET_IS_LOADING',
    SET_MAX_STATS: 'POKEMON_EXPLORER/SET_MAX_STATS',
    SET_LEAGUE_POKEMON: 'POKEMON_EXPLORER/SET_LEAGUE_POKEMON',
    SET_IV_LEVEL: 'POKEMON_EXPLORER/SET_IV_LEVEL',
    SET_IV_HP: 'POKEMON_EXPLORER/SET_IV_HP',
    SET_IV_ATK: 'POKEMON_EXPLORER/SET_IV_ATK',
    SET_IV_DEF: 'POKEMON_EXPLORER/SET_IV_DEF',
    SET_ACTIVE_LEAGUE: 'POKEMON_EXPLORER/SET_ACTIVE_LEAGUE',
};
