package com.erp.logistics.dto.response;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 运单状态响应
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "运单状态响应")
public class WaybillStatusResponse {

    @Schema(description = "主键ID")
    private Long id;

    @Schema(description = "运单号")
    private String waybillNo;

    @Schema(description = "物流商编码")
    private String carrier;

    @Schema(description = "物流商名称")
    private String carrierName;

    @Schema(description = "运单状态")
    private String status;

    @Schema(description = "状态标签")
    private String statusLabel;

    @Schema(description = "当前位置")
    private String location;

    @Schema(description = "状态描述")
    private String description;

    @Schema(description = "最后轨迹时间")
    private LocalDateTime lastTraceTime;

    @Schema(description = "签收时间")
    private LocalDateTime signedTime;

    @Schema(description = "同步状态：0-未同步, 1-同步中, 2-已同步, 3-同步失败")
    private Integer syncStatus;

    @Schema(description = "同步失败原因")
    private String syncFailReason;

    @Schema(description = "订单ID")
    private Long orderId;

    @Schema(description = "订单编号")
    private String orderNo;

    @Schema(description = "收件人姓名")
    private String receiverName;

    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;
}
