package com.sckw.transport.model.param;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author :chenXiaoFei
 * @version :1.0
 * @description : 分页查询运单信息响应参数
 * @create :2025-11-11 20:16:00
 */
@Data
public class WaybillOrderStatusResp implements Serializable {

    @Serial
    private static final long serialVersionUID = -6153312023002477484L;

    /**
     * 运单id
     */
    @Schema(description = "运单id")
    private Long id;

    /**
     * 物流订单id
     */
    @Schema(description = "物流订单id")
    private String logisticsOrderId;

    /**
     * 物流订单编号
     */
    @Schema(description = "物流订单编号")
    private String logisticsOrderNo;
    /**
     * 运单编号
     */
    @Schema(description = "运单编号")
    private String waybillNo;

    /**
     * 托运单位id
     */
    @Schema(description = "托运单位id")
    private String consignCompanyId;

    /**
     * 托运单位名称
     */
    @Schema(description = "托运单位名称")
    private String consignCompanyName;

    /**
     * 商品id
     */
    @Schema(description = "商品id")
    private String goodsId;

    /**
     * 商品名称
     */
    @Schema(description = "商品名称")
    private String goodsName;

    /**
     * 任务量
     */
    @Schema(description = "任务量")
    private BigDecimal taskNum;

    /**
     * 皮重
     */
    @Schema(description = "皮重")
    private BigDecimal tareAmount;

    /**
     * 毛重
     */
    @Schema(description = "毛重")
    private BigDecimal grossAmount;

    /**
     * 装货净重
     */
    @Schema(description = "装货净化重")
    private BigDecimal loadingNetWeight;

    /**
     * 卸货净重
     */
    @Schema(description = "卸货净重")
    private BigDecimal unloadingNetWeight;

    /**
     * 法定载重
     */
    @Schema(description = "法定载重")
    private BigDecimal legalLoad;

    /**
     * 计费方式
     */
    @Schema(description = "计费方式")
    private String chargeType;

    /**
     * 计费方式描述
     */
    @Schema(description = "计费方式描述")
    private String chargeTypeDesc;

    /**
     * 司机id
     */
    @Schema(description = "司机id")
    private Long driverId;

    /**
     * 司机id
     */
    @Schema(description = "司机id")
    private String driverName;

    /**
     * 司机电话
     */
    @Schema(description = "司机id")
    private String driverPhone;

    /**
     * 装货地址
     */
    @Schema(description = "装货地址")
    private String loadAddress;

    /**
     * 经度(装货地址)
     */
    @Schema(description = "经度(装货地址)")
    private String loadLng;

    /**
     * 纬度(装货地址)
     */
    @Schema(description = "纬度(装货地址)")
    private String loadLat;

    /**
     * 卸货地址
     */

    @Schema(description = "卸货地址")
    private String unloadAddress;

    /**
     * 经度(卸货地址)
     */
    @Schema(description = "经度(卸货地址)")
    private String unloadLng;

    /**
     * 纬度(卸货地址)
     */
    @Schema(description = "经度(卸货地址)")
    private String unloadLat;

    /**
     * 装卸货之间距离
     */
    @Schema(description = "装卸货之间距离")
    private String distanceKm;

    /**
     * 派单时间
     */
    @Schema(description = "派单时间")
    private String sendTime;

    /**
     * 派单人
     */
    @Schema(description = "派单人")
    private String sendOperator;

    /**
     * 派单人电话
     */
    @Schema(description = "派单人电话")
    private String sendPhone;

    /**
     * 状态
     */
    @Schema(description = "状态")
    private Integer status;

    /**
     * 状态描述
     */
    @Schema(description = "状态描述")
    private String statusDesc;
    /**
     * 订单余量
     */
    @Schema(description = "订单余量")
    private BigDecimal orderSurplus;

    /**
     * 备注（是否空载离场）
     */
    @Schema(description = "备注（是否空载离场）")
    private String remark;

    /**
     * 订单类型
     */
    @Schema(description = "订单类型（1-原矿转运）")
    private Integer orderType;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 购买企业id
     */
    @Schema(description = "购买企业id")
    private Long prEntId;

    /**
     * 购买企业名称
     */
    @Schema(description = "购买企业名称")
    private String prEntName;


    /**
     * 标签
     */
    private Integer label;

    /**
     * 放行原因
     */
    private String passReason;

    /**
     * 放行图片地址
     */
    private String passUrl;

    /**
     * 货损率是否超过配置的货损率
     */
    @Schema(description = "货损率是否超过配置的货损率")
    private Boolean isPassReason;

}
