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

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

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.framework.core.annotation.Column;
import com.prolog.framework.core.annotation.Id;
import com.prolog.framework.core.annotation.Table;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
@Table(value = "bms_freight_price")
public class BmsFreightPriceModel implements Serializable {

	private static final long serialVersionUID = -292898475601606305L;

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

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

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

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

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

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

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

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

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

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

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

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

	@ApiModelProperty(value = "始发地详细地址")
	@Column(value = "shipper_address")
	private String shipperAddress;

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

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

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

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

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

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

	@ApiModelProperty(value = "目的地详细地址")
	@Column(value = "consignee_address")
	private String consigneeAddress;

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

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

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

	@ApiModelProperty(value = "计费模式")
	@Column(value = "settlement_model")
	private Integer settlementModel;

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

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

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

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

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

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

	@ApiModelProperty(value = "状态  OMS_STATUS")
	@Column(value = "status")
	private Integer status;

	@ApiModelProperty(value = "企业ID")
	@Column(value = "enterprise_id")
	private Long enterpriseId;

	@ApiModelProperty(value = "企业名称")
	@Column(value = "enterprise_name")
	private String enterpriseName;

	@ApiModelProperty(value = "字符属性扩展1")
	@Column(value = "ext_str1")
	private String extStr1;

	@ApiModelProperty(value = "字符属性扩展2")
	@Column(value = "ext_str2")
	private String extStr2;

	@ApiModelProperty(value = "字符属性扩展3")
	@Column(value = "ext_str3")
	private String extStr3;

	@ApiModelProperty(value = "字符属性扩展4")
	@Column(value = "ext_str4")
	private String extStr4;

	@ApiModelProperty(value = "字符属性扩展5")
	@Column(value = "ext_str5")
	private String extStr5;

	@ApiModelProperty(value = "数值属性扩展1")
	@Column(value = "ext_num1")
	private BigDecimal extNum1;

	@ApiModelProperty(value = "数值属性扩展2")
	@Column(value = "ext_num2")
	private BigDecimal extNum2;

	@ApiModelProperty(value = "数值属性扩展3")
	@Column(value = "ext_num3")
	private BigDecimal extNum3;

	@ApiModelProperty(value = "数值属性扩展4")
	@Column(value = "ext_num4")
	private BigDecimal extNum4;

	@ApiModelProperty(value = "数值属性扩展5")
	@Column(value = "ext_num5")
	private BigDecimal extNum5;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展1")
	@Column(value = "ext_date1")
	private Date extDate1;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展2")
	@Column(value = "ext_date2")
	private Date extDate2;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展3")
	@Column(value = "ext_date3")
	private Date extDate3;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展4")
	@Column(value = "ext_date4")
	private Date extDate4;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展5")
	@Column(value = "ext_date5")
	private Date extDate5;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "创建时间")
	@Column(value = "createtime")
	private Date createtime;

	@ApiModelProperty(value = "创建人")
	@Column(value = "createperson")
	private String createperson;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "修改时间")
	@Column(value = "updatetime")
	private Date updatetime;

	@ApiModelProperty(value = "修改人")
	@Column(value = "updateperson")
	private String updateperson;

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

	@ApiModelProperty(value = "来源 数据字典SOURCE 1.新增 2.excel导入 3.接口导入")
	@Column(value = "source")
	private Integer source;

	@ApiModelProperty(value = "计费单据 数据字典SETTLEMENT_ORDER_TYPE 1.运单 2.托运单/派车单")
	@Column(value = "settlement_order_type")
	private Integer settlementOrderType;

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