using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using Aitex.Core.Common;

namespace MECF.Framework.Common.Jobs
{
    [Serializable]
    [DataContract]
    public class ControlJobInfo
    {
        [DataMember]
        public string Name { get; set; }

        public Guid InnerId { get; set; }

        public bool BeenPosted { get; set; }
        [DataMember]
        public string Module { get; set; }
 
        public List<string> ProcessJobNameList { get; set; }
        [DataMember]
        public EnumControlJobState State { get; set; }
        [DataMember]
        public string LotName { get; set; }
        public Guid LotInnerId { get; set; }
        [DataMember]
        public List<WaferInfo> LotWafers { get; set; }

        public string CarrierID { get; set; }

        public bool IsPreJobCleanDone { get; set; }

        public bool IsPostJobCleanDone { get; set; }

        public WaferSize JobWaferSize { get; set; }

        public DateTime StartTime { get; set; }

        public DateTime EndTime { get; set; }

        public string PreJobClean { get; set; }

        public string PostJobClean { get; set; }

        [DataMember]
        public string[] SequenceNameList { get; set; }

        [DataMember]
        public int CycleNumber { get; set; }


        public ControlJobInfo()
        {
            ProcessJobNameList = new List<string>();
            State = EnumControlJobState.Queued;
            InnerId = Guid.NewGuid();
        }

        public void SetState(EnumControlJobState state)
        {
            State = state;
        }
    }
}