using System;
using System.Drawing;

namespace LensAdjustmentTool.Models
{
    public sealed class FrameAnalysisResult : IDisposable
    {
        public AdjustmentMode Mode { get; }
        public Bitmap DisplayImage { get; }
        public double CurrentValue { get; }
        public double AuxiliaryValue { get; }
        public DateTime Timestamp { get; }

        public FrameAnalysisResult(
            AdjustmentMode mode,
            Bitmap displayImage,
            double currentValue,
            double auxiliaryValue)
        {
            Mode = mode;
            DisplayImage = displayImage ?? throw new ArgumentNullException(nameof(displayImage));
            CurrentValue = currentValue;
            AuxiliaryValue = auxiliaryValue;
            Timestamp = DateTime.Now;
        }

        public void Dispose()
        {
            DisplayImage.Dispose();
        }
    }
}
