package com.jeeplus.assess.invoice.domain.OMS;

import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

/**
 * 货物运输服务特定要素子实体类
 * 仅在开具货物运输服务特定要素的数电发票（specificFactor为04时）需要传入
 * 最多2000行，至少1行
 */
public class GoodsTransport {

    /**
     * 运输工具种类
     * 必填，可选值：1(铁路运输)、2(公路运输)、3(水路运输)、4(航空运输)、5(管道运输)
     */
    @NotBlank(message = "运输工具种类transportTool不能为空")
    @Pattern(regexp = "^1|2|3|4|5$",
            message = "运输工具种类transportTool只能传入：1-5的数字，对应铁路/公路/水路/航空/管道运输")
    private String transportTool;

    /**
     * 运输工具牌号
     * 必填，最大40字符
     */
    @NotBlank(message = "运输工具牌号transportToolNum不能为空")
    @Size(max = 40, message = "运输工具牌号transportToolNum不能超过40字符")
    private String transportToolNum;

    /**
     * 起运地
     * 必填，最大80字符
     */
    @NotBlank(message = "起运地origin不能为空")
    @Size(max = 80, message = "起运地origin不能超过80字符")
    private String origin;

    /**
     * 到达地
     * 必填，最大80字符
     */
    @NotBlank(message = "到达地destination不能为空")
    @Size(max = 80, message = "到达地destination不能超过80字符")
    private String destination;

    /**
     * 货物运输名称
     * 必填，最大80字符
     */
    @NotBlank(message = "货物运输名称goodsName不能为空")
    @Size(max = 80, message = "货物运输名称goodsName不能超过80字符")
    private String goodsName;

    public String getTransportTool() {
        return transportTool;
    }

    public void setTransportTool(String transportTool) {
        this.transportTool = transportTool;
    }

    public String getTransportToolNum() {
        return transportToolNum;
    }

    public void setTransportToolNum(String transportToolNum) {
        this.transportToolNum = transportToolNum;
    }

    public String getOrigin() {
        return origin;
    }

    public void setOrigin(String origin) {
        this.origin = origin;
    }

    public String getDestination() {
        return destination;
    }

    public void setDestination(String destination) {
        this.destination = destination;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }
}
