package com.prolog.rdc.tms.model.vo;

import com.prolog.rdc.tms.model.entity.BmsFreightPriceConditionModel;
import com.prolog.rdc.tms.model.entity.BmsFreightPriceLadderModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

@Data
public class FreightPriceVO implements Serializable {

    @ApiModelProperty(value = "id")
    private Long id;

    @ApiModelProperty(value = "0：运输费用，1：附加费")
    private Integer isSurcharge;

    @ApiModelProperty(value = "合同编号")
    private String contractNo;

    @ApiModelProperty(value = "费用ID")
    private Long expenseId;

    @ApiModelProperty(value = "费用名称")
    private String expenseName;

    @ApiModelProperty(value = "价格编号")
    private String priceNo;

    @ApiModelProperty(value = "价格名称")
    private String priceName;

    @ApiModelProperty(value = "始发地省")
    private String shipperProvince;

    @ApiModelProperty(value = "始发地省名称")
    private String shipperProvinceName;

    @ApiModelProperty(value = "始发地市")
    private String shipperCity;

    @ApiModelProperty(value = "始发地市名称")
    private String shipperCityName;

    @ApiModelProperty(value = "始发地区")
    private String shipperDistrict;

    @ApiModelProperty(value = "始发地区名称")
    private String shipperDistrictName;

    @ApiModelProperty(value = "始发地详细地址")
    //@NotEmpty(message = "始发地不能为空")
    private String shipperAddress;

    @ApiModelProperty(value = "目的地省")
    private String consigneeProvince;

    @ApiModelProperty(value = "目的地省名称")
    private String consigneeProvinceName;

    @ApiModelProperty(value = "目的地市")
    private String consigneeCity;

    @ApiModelProperty(value = "目的地市名称")
    private String consigneeCityName;

    @ApiModelProperty(value = "目的地区")
    private String consigneeDistrict;

    @ApiModelProperty(value = "目的地区名称")
    private String consigneeDistrictName;

    @ApiModelProperty(value = "目的地详细地址")
   // @NotEmpty(message = "目的地不能为空")
    private String consigneeAddress;

    @ApiModelProperty(value = "时效(时)")
    private int aging;

    @ApiModelProperty(value = "里程(KM)")
    private BigDecimal mileage;

    @ApiModelProperty(value = "费用")
    private Integer costType;

    @ApiModelProperty(value = "备注")
    private String memo;

    @ApiModelProperty(value = "计费模式 SETTLEMENT_MODEL 分组编码重量KG，公里MILEAGE")
    @NotNull(message = "计费模式不能为空")
    private Integer settlementModel;

    @ApiModelProperty(value = "阶梯方式 LADDER_TYPE")
    private Integer ladderType;

    @ApiModelProperty(value = "计费方式 SETTLEMENT_TYPE")
    private Integer settlementType;

    @ApiModelProperty(value = "时间策略")
    private Long timeStrategyId;

    @ApiModelProperty(value = "合并策略")
    private Long mergeStrategyId;

    @ApiModelProperty(value = "比例策略")
    private Long proportionStrategyId;

    @ApiModelProperty(value = "一口价")
    private BigDecimal price;

    @ApiModelProperty(value = "计费单据 SETTLEMENT_ORDER_TYPE")
    private Integer settlementOrderType;

    @ApiModelProperty(value = "匹配条件")
    private List<BmsFreightPriceConditionModel> conditionList;

    @ApiModelProperty(value = "阶梯计费")
    private List<BmsFreightPriceLadderModel> ladderList;

//    @ApiModelProperty(value = "体积价格")
//    private BigDecimal volumePrice;

}