package org.ta.pddserver.model.pddjy.request;

import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
public class PddServiceConsoPackageNoticeRequest extends JYBaseRequestModel implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 单号（必填）
     */
    private String orderCode;

    /**
     * 单据类型（必填），描述orderCode的类型：
     * <p>consoOrder：集运单</p>
     * <p>packOrder：合包单</p>
     * <p>returnOrder：退件单</p>
     */
    private String orderCodeType;

    /**
     * 服务商code（必填）
     */
    private String providerCode;

    /**
     * 运单详情列表（必填，包含运单编号及对应包裹状态）
     */
    private List<MailDetail> mailDetails;


    /**
     * 运单详情（含状态）
     */
    @Data
    public static class MailDetail {
        /**
         * 快递公司编号（必填）
         */
        private String expressCode;

        /**
         * 运单号（必填）
         */
        private String mailNo;

        /**
         * 包裹状态（必填，需结合业务场景传入对应状态值，如received/signed/rejected等）
         */
        private String status;
    }

}
