using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Caliburn.Micro.Core;
namespace OpenSEMI.ClientBase
{
    public class WaferInfo : PropertyChangedBase
    {
        private int _WaferStatus = 0;   // WaferStatus.Empty;
        public int WaferStatus
        {
            get { return _WaferStatus; }
            set { _WaferStatus = value; NotifyOfPropertyChange("WaferStatus"); }
        }
        public bool HasWafer
        {
            get
            {
                return WaferStatus != 0;
            }
        }
        /// 
        /// SlotID start from 0
        /// 
        private int _slotID;
        public int SlotID
        {
            get { return _slotID; }
            set { _slotID = value; NotifyOfPropertyChange("SlotID"); }
        }
        private bool _isReversed = false;
        public bool IsReversed
        {
            get { return _isReversed&&(WaferStatus!=0); }
            set { _isReversed = value; NotifyOfPropertyChange("IsReversed"); }
        }
        /// 
        /// SlotIndex start from 1
        /// 
        private int _slotIndex;
        public int SlotIndex
        {
            get { return _slotIndex; }
            set { _slotIndex = value; NotifyOfPropertyChange("SlotIndex"); }    
        }
        private string _moduleID;
        public string ModuleID
        {
            get { return _moduleID; }
            set { _moduleID = value; NotifyOfPropertyChange("ModuleID"); }
        }
        private string _waferid;
        public string WaferID
        {
            get { return _waferid; }
            set { _waferid = value; NotifyOfPropertyChange("WaferID"); }
        }
        private string _sourceName;
        public string SourceName
        {
            get { return _sourceName; }
            set { _sourceName = value; NotifyOfPropertyChange("SourceName"); }
        }
        private string _sequenceName = string.Empty;
        public string SequenceName
        {
            get { return _sequenceName; }
            set { _sequenceName = value; NotifyOfPropertyChange("SequenceName"); }
        }
        private string _originName = string.Empty;
        public string OriginName
        {
            get { return _originName; }
            set { _originName = value; NotifyOfPropertyChange("OriginName"); }
        }
        private string _orient = string.Empty;
        public string Orient
        {
            get { return _orient; }
            set { _orient = value; NotifyOfPropertyChange("Orient"); }
        }
    }
}