namespace SHH.CameraSdk;

/// <summary>
/// 帧决策结果模型
/// 功能：告知驱动层单帧数据的处理命运（保留/丢弃、分发目标），是帧调度的核心指令
/// 用途：由 FrameController 生成，传递给驱动层与分发器，指导帧的后续流转
/// </summary>
public class FrameDecision
{
    #region --- 决策核心标识 (Decision Core Identification) ---

    /// <summary> 决策序列号（全局唯一，关联帧的决策记录，用于追踪决策生命周期） </summary>
    public long Sequence { get; set; }

    /// <summary> 决策生成时间戳（记录决策的创建时刻，默认当前时间） </summary>
    public DateTime Timestamp { get; set; } = DateTime.Now;

    #endregion

    #region --- 帧处理决策 (Frame Processing Decision) ---

    /// <summary> 帧是否被保留（true=保留并分发，false=直接丢弃，不进行后续处理） </summary>
    public bool IsCaptured { get; set; }

    #endregion

    #region --- 帧分发目标 (Frame Distribution Targets) ---

    /// <summary> 帧分发目标应用ID列表（记录该帧将服务的所有订阅者AppId） </summary>
    /// <remarks> 示例值：["WPF_Display_Main", "AI_Behavior_Engine"]，仅当 IsCaptured 为 true 时有效 </remarks>
    public List<string> TargetAppIds { get; } = new();

    #endregion

    public double ProcessCostMs { get; set;  }
}