using MwFramework.ManagerService;
using Stylet;

namespace MainShell.Recipe.Models
{
    /// <summary>
    /// 晶圆信息。
    /// </summary>
    public class WaferInfo : PropertyChangedBase, IParameterItem
    {
        private string _dieColor;

        /// <summary>
        /// 芯片颜色。
        /// </summary>
        public string DieColor
        {
            get { return _dieColor; }
            set { SetAndNotify(ref _dieColor, value); }
        }

        private double _dieSizeX;

        /// <summary>
        /// 芯片 X 尺寸。
        /// </summary>
        public double DieSizeX
        {
            get { return _dieSizeX; }
            set { SetAndNotify(ref _dieSizeX, value); }
        }

        private double _dieSizeY;

        /// <summary>
        /// 芯片 Y 尺寸。
        /// </summary>
        public double DieSizeY
        {
            get { return _dieSizeY; }
            set { SetAndNotify(ref _dieSizeY, value); }
        }

        private double _diePitchX;

        /// <summary>
        /// 芯片 X 间距。
        /// </summary>
        public double DiePitchX
        {
            get { return _diePitchX; }
            set { SetAndNotify(ref _diePitchX, value); }
        }

        private double _diePitchY;

        /// <summary>
        /// 芯片 Y 间距。
        /// </summary>
        public double DiePitchY
        {
            get { return _diePitchY; }
            set { SetAndNotify(ref _diePitchY, value); }
        }

        private double _waferWidth;

        /// <summary>
        /// 晶圆宽度。
        /// </summary>
        public double WaferWidth
        {
            get { return _waferWidth; }
            set { SetAndNotify(ref _waferWidth, value); }
        }

        private double _waferHeight;

        /// <summary>
        /// 晶圆高度。
        /// </summary>
        public double WaferHeight
        {
            get { return _waferHeight; }
            set { SetAndNotify(ref _waferHeight, value); }
        }

        private int _waferRowNum;

        /// <summary>
        /// 晶圆行数。
        /// </summary>
        public int WaferRowNum
        {
            get { return _waferRowNum; }
            set { SetAndNotify(ref _waferRowNum, value); }
        }

        private int _waferColNum;

        /// <summary>
        /// 晶圆列数。
        /// </summary>
        public int WaferColNum
        {
            get { return _waferColNum; }
            set { SetAndNotify(ref _waferColNum, value); }
        }

        public IParameterItem Clone()
        {
            return this.MemberwiseClone() as IParameterItem;
        }
    }
}
