namespace LittleTown.Core.Ports;

/// <summary>
/// Interface d'un port permettan de récupérer les données statique du jeu
/// </summary>
public interface IStaticDataGetter
{
    /// <summary> Recuperer un plateau de jeu  </summary>
    /// <param name="version">la version du plateau (1 ou 2)</param>
    /// <returns> une instance du plateau avec les données statique</returns>
    public Task<Board> GetBoardAsync(int version);

    /// <summary> Recuperer un plateau de jeu  </summary>
    /// <param name="version">la version du plateau (1 ou 2)</param>
    /// <returns> une instance du plateau avec les données statique</returns>
    public Board GetBoard(int version);

    /// <summary> Recupérer la liste des batiments et leurs données statiques </summary>
    /// <returns></returns>
    public ICollection<Building> GetBuildings();

    /// <summary> Récupérer la liste des objectifs du jeu </summary>
    /// <returns></returns>
    public ICollection<Objective> GetObjectives();
}

