using Volpe.Cafe.MarketData.Design;
using Volpe.Cafe.ModelSettings;

namespace Volpe.Cafe.Model
{
    /// <summary>
    /// Provides an interface containing modeling progress information.
    /// </summary>
    public interface IModelingProgress
    {
        /// <summary>Gets the progress string to display in the UI. This value may be null.</summary>
        string ProgressString { get; }

        /// <summary>Gets the scenario currently being analyzed by the modeling system. This value may be null.</summary>
        Scenario Scenario { get; }
        /// <summary>Gets the iteration currently being analyzed by the modeling system. This value may be null.</summary>
        int? Iteration { get; }
        /// <summary>Gets the model year currently being analyzed by the modeling system. This value may be null.</summary>
        ModelYear ModelYear { get; }
        /// <summary>Gets the manufacturer currently being analyzed by the modeling system. This value may be null.</summary>
        IManufacturer Manufacturer { get; }

        /// <summary>Gets or sets additional modeling progress information associated with this
        ///     <see cref="IModelingProgress"/> instance. This value may be null.</summary>
        object AdditionalInfo { get; set; }
    }
}
