using MECF.Framework.Common.Equipment;

namespace MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel
{
    /// <summary>
    /// Recipe工艺步骤气体流量计算器接口。
    /// </summary>
    public interface IRecipeGasFlowCalculator
    {
        /// <summary>
        /// 计算指定工艺步骤的气体流量。
        /// </summary>
        /// <param name="step">工艺步骤对象。</param>
        /// <param name="chamberName">
        /// 当前配方步骤所属反应腔的名称，可用的名称请参考<see cref="ModuleName"/>。
        /// <remarks>
        /// 为什么需要传入反应腔名称？
        /// <br/>
        /// 计算Vent Flow时，需要使用TCS、TMA的气体流量参数；而上述两个流量的计算需要使用
        /// 系统配置中PM.{chamberName}.Efficiency.TCS-Eff或TMA-Eff的配置值。因此计算
        /// 配方气体流量时需要传入反应腔名称以获取这两个配置参数的数值。
        /// </remarks>
        /// </param>
        void Calculate(RecipeStep step, string chamberName);
    }
}
