package com.sckw.transport.model.param.forklift.reponse;

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 GatekeeperOrderResp implements Serializable {

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

    /**
     * 门卫订单主键id
     */
    @Schema(description = "门卫订单主键id")
    private Long id;

    /**
     * 运单编号
     */
    @Schema(description = "运单编号")
    private String  waybillOrderNo;

    /**
     * 企业id
     */
    @Schema(description = "企业id")
    private Long entId;

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

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

    /**
     * 门卫类型（1-装货单，2-卸货单）
     */
    private Integer type;

    /**
     * 门卫类型描述
     */
    private String typeDesc;

    /**
     * 状态（1-待进场，5-已进场、10-待离场、15-空载待离场、20-已放行未离场、25-已离场、30-空载离场）
     */
    @Schema(description = "状态（1-待进场，5-已进场、10-待离场、15-空载待离场、20-已放行未离场、25-已离场、30-空载离场）")
    private Integer status;

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

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

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

    /**
     * 运输司机车牌主键id
     */
    @Schema(description = "运输司机车牌主键id")
    private Long truckId;

    /**
     * 运输司机车牌号
     */
    @Schema(description = "运输司机车牌号")
    private String truckNo;

    /**
     * 运输司机姓名
     */
    @Schema(description = "运输司机姓名")
    private String name ;

    /**
     * 运输司机电话
     */
    @Schema(description = "运输司机电话")
    private String phone;

    /**
     * 运输司机身份证号
     */
    @Schema(description = "运输司机身份证号")
    private String idCard;

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

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

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

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

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

    /**
     * 车辆类型
     */
    @Schema(description = "车辆类型")
    private String truckType;

    /**
     * 车辆轴数
     */
    @Schema(description = "车辆轴数")
    private String carAxisName;

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

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

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

    /**
     * 场内耗时
     */
    @Schema(description = "场内耗时")
    private double durationTime;

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

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

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;

    /**
     * 订单类型
     */
    @Schema(description = "订单类型")
    private Integer orderType;

    /**
     * 订单类型
     */
    @Schema(description = "订单类型")
    private String orderTypeDesc;

    /**
     * 货损率（装货量-卸货量）*装货量*100%
     */
    @Schema(description = "货损率")
    private BigDecimal lossRate;

    /**
     * 货损率是否超过千分之三
     */
    @Schema(description = "货损率是否超过千分之三")
    private Boolean isPassReason;

    /**
     * 皮重
     */
    @Schema(description = "卸货皮重")
    private BigDecimal unloadingTareAmount;

    /**
     * 毛重
     */
    @Schema(description = "卸货毛重")
    private BigDecimal unloadingGrossAmount;

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

    /**
     * 地磅id
     */
    private Long weighbridgeId;


}
