namespace RecipeMenuCore.API
{
  public class RecipePageEntry
  {
    /// <summary>
    /// The ultimate items in UltimateFore recipes or the inputs in other recipes.
    /// </summary>
    public int[] ItemIdExtension { get; protected set; }

    /// <summary>
    /// The normal item in UltimateFore recipes or the output in other recipes.
    /// </summary>
    public int ItemIdBase { get; protected set; }

    /// <summary>
    /// The MinAmount of items created from a recipe.
    /// </summary>
    public int MinAmount { get; protected set; }

    /// <summary>
    /// The MaxBonusAmount to be added to the base value.
    /// </summary>
    public int MaxBonusAmount { get; protected set; }

    /// <summary>
    /// Use to create a new RecipePageEntry.
    /// </summary>
    /// <param name="id1">The first ultimate item in UltimateFore recipes or the first input in other recipes.</param>
    /// <param name="id2">The second ultimate item in UltimateFore recipes or the second input in other recipes.</param>
    /// <param name="id3">The third ultimate item in UltimateFore recipes or the third input in other recipes.</param>
    /// <param name="idBase">The normal item in UltimateFore recipes or the output in other recipes.</param>
    /// <param name="min">The minimum amount of items created from a recipe.</param>
    /// <param name="maxBonus">The maximum bonus amount of items created from a recipe.</param>
    public RecipePageEntry(int id1, int id2, int id3, int idBase, int min = 1, int maxBonus = 0)
    {
      ItemIdExtension = new int[] { id1, id2, id3 };
      ItemIdBase = idBase;
      MinAmount = min;
      MaxBonusAmount = maxBonus;
    }
  }
}