using System;
using System.Runtime.Serialization;
using MECF.Framework.Common.Equipment;

namespace MECF.Framework.Common.CommonData
{
	[Serializable]
	[DataContract]
	public class RobotMoveInfo : NotifiableItem
    {
        private ModuleName _targetModule;
		private string _bladeTarget;
		private RobotArm _armTarget;
		private RobotAction _action;
        
        
        [DataMember]
        public ModuleName TargetModule
        {
            get => _targetModule;
            set
            {
                _targetModule = value;
                InvokePropertyChanged(nameof(TargetModule));
            }
        }
        

		[DataMember]
		public string BladeTarget
		{
			get => _bladeTarget;
            set
			{
				_bladeTarget = value;
				InvokePropertyChanged("BladeTarget");
			}
		}

		[DataMember]
		public RobotArm ArmTarget
		{
			get => _armTarget;
            set
			{
				_armTarget = value;
				InvokePropertyChanged("ArmTarget");
			}
		}

		[DataMember]
		public RobotAction Action
		{
			get => _action;
            set
			{
				_action = value;
				InvokePropertyChanged("Action");
			}
		}

		public override string ToString()
		{
			return $"{_bladeTarget} - {_action}";
		}
	}
}
