using MainShell.Common;
using MainShell.Models;
using MainShell.Models.Wafer;
using MainShell.Recipe.BaseBoard.Model;
using System;
using System.Collections.Generic;

namespace MainShell.Process
{
    public class DieTransferPathRequest
    {
        public DieTransferPathRequest()
        {
            DieCandidates = Array.Empty<Die>();
            PadCandidates = Array.Empty<Pad>();
            TransPathType = TransPathType.Sequence;
            PadRowDirectionStrategy = DieTransferRowTraversalStrategy.AllPositive;
            DieRowDirectionStrategy = DieTransferRowTraversalStrategy.Serpentine;
            SkipNgDie = true;
        }

        public IReadOnlyCollection<Die> DieCandidates { get; set; }

        public IReadOnlyCollection<Pad> PadCandidates { get; set; }

        public RegionModel DieRegion { get; set; }

        public RegionModel SubstrateRegion { get; set; }

        public TransPathType TransPathType { get; set; }

        public DieTransferRowTraversalStrategy PadRowDirectionStrategy { get; set; }

        public DieTransferRowTraversalStrategy DieRowDirectionStrategy { get; set; }

        public bool SkipNgDie { get; set; }
    }
}