package com.aps.macroplanner.data;

/**
 * 工艺路线中的一个工序步骤 — 对应 Quintiq 中的 RoutingStep。
 *
 * <p>每个 RoutingStep 包含一个 Operation 和它在工艺路线中的顺序号。
 * 工序间的 WIP 由 {@link Routing} 自动管理, 无需手动配置库存点。</p>
 *
 * <h3>与 Quintiq 模型的对应关系</h3>
 * <pre>
 *   Quintiq RoutingStep:
 *     - SequenceNumber → sequenceNumber
 *     - Operation      → operation
 *     - RoutingID      → 由父 Routing 管理
 *     - PISPNodeInRouting → 由 Routing.expand() 自动生成 WIP 库存点
 * </pre>
 *
 * @see Routing
 */
public class RoutingStep {

    /** 工序顺序号 (从 1 开始, 越小越靠前) */
    private final int sequenceNumber;

    /** 该步骤执行的工序 */
    private final Operation operation;

    /**
     * 创建工艺路线步骤。
     *
     * @param sequenceNumber 顺序号 (1-based, 越小越靠前)
     * @param operation      该步骤执行的工序
     */
    public RoutingStep(int sequenceNumber, Operation operation) {
        this.sequenceNumber = sequenceNumber;
        this.operation = operation;
    }

    public int getSequenceNumber() { return sequenceNumber; }
    public Operation getOperation() { return operation; }
}