package cn.iocoder.yudao.module.order.vo.order;

import cn.iocoder.yudao.framework.common.pojo.PageParam;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Data
public class OrderPreloadReq extends PageParam {

    @ApiModelProperty(value = "入仓开始时间")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date rucangTimeStart;

    @ApiModelProperty(value = "入仓结束时间")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date rucangTimeEnd;

    @ApiModelProperty(value = "始发仓ID")
    private Long startWarehouseId;

    @ApiModelProperty(value = "目的仓ID列表")
    private List<Long> destWarehouseIdList;

    @ApiModelProperty(value = "目的仓国家ID")
    private Long destCountryId;

    @ApiModelProperty(value = "订单状态: 1-拆单，2-关联单")
    private Integer orderStatus;

    @ApiModelProperty(value = "备案属性")
    private Integer productRecord;

    @ApiModelProperty(value = "报关方式")
    private Integer customsType;

    @ApiModelProperty(value = "订单编号")
    private String orderNo;

    @ApiModelProperty(value = "品名")
    private String itemName;

    @ApiModelProperty(value = "重货比最小值")
    private BigDecimal weightRatioMin;

    @ApiModelProperty(value = "重货比最大值")
    private BigDecimal weightRatioMax;

    @ApiModelProperty(value = "语言")
    private Integer lang;

    @ApiModelProperty(value = "运输方式")
    private String transportType;

    @ApiModelProperty(value = "渠道ID")
    private String channelId;

    @ApiModelProperty(value = "空运可出货状态： 0 默认值 1 待出 2 可出 3 备货中 4 已备货")
    private Integer airShipment;

    @ApiModelProperty(value = "出货单ID")
    private Long shipmentId;

    //方数
    @ApiModelProperty(value = "方数")
    private BigDecimal volume;

    //重量
    @ApiModelProperty(value = "重量")
    private BigDecimal weight;

    //箱数
    @ApiModelProperty(value = "箱数")
    private Integer num;

    private Integer type;

    private Long relationId;

    @ApiModelProperty(value = "特性ID")
    private String attrId;
}
