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

import com.prolog.framework.core.annotation.Column;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

@Data
public class LogisticsContractVO implements Serializable {

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

    @NotEmpty(message = "合同编号不能为空")
    @ApiModelProperty(value = "合同编号")
    private String contractNo;

    @ApiModelProperty(value = "copy的元合同编号")
    private String origContractNo;

    @NotEmpty(message = "合同名称不能为空")
    @ApiModelProperty(value = "合同名称")
    private String contractName;

    @NotNull(message = "合同类型不能为空")
    @ApiModelProperty(value = "合同类型 CONTRACT_TYPE" )
    private int contractType;

    @NotNull(message = "结算方式不能为空")
    @ApiModelProperty(value = "结算方式  SETTLEMENT_TYPE")
    private Integer settlementType;

    @ApiModelProperty(value = "甲方-货主ID/部门ID")
    private String firstPartyId;

    @ApiModelProperty(value = "甲方-货主编码/部门编码")
    @NotEmpty(message = "甲方信息不能为空")
    private String firstPartyCode;

    @ApiModelProperty(value = "甲方-货主名称/部门名称")
    private String firstPartyName;

    @ApiModelProperty(value = "甲方类型 数据字典 C:货主 D:部门")
    private String firstPartyType;

    @ApiModelProperty(value = "乙方-承运商ID/部门ID")
    private String secondPartyId;

    @ApiModelProperty(value = "乙方-承运商编码/部门编码")
    @NotEmpty(message = "乙方信息不能为空")
    private String secondPartyCode;

    @ApiModelProperty(value = "乙方-承运商ID/部门ID")
    private String secondPartyName;

    @ApiModelProperty(value = "乙方类型 数据字典 C:承运商 D:部门")
    private String secondPartyType;

    @ApiModelProperty(value = "对账完成日期")
    private String reconciliationDate;

    @ApiModelProperty(value = "结算完成日期")
    private String SettlementDate;

    @NotNull(message = "生效日期不能为空")
    @ApiModelProperty(value = "生效日期")
    private Date effectiveDate;

    @NotNull(message = "失效日期不能为空")
    @ApiModelProperty(value = "失效日期")
    private Date expiryDate;

    @NotNull(message = "合同期限不能为空")
    @ApiModelProperty(value = "合同期限")
    private int contractPeriod;

    @ApiModelProperty(value = "税点")
    private String taxPoint;

    @ApiModelProperty(value = "是否启用重泡比")
    private Integer isHeavyBubble;

    @ApiModelProperty(value = "重泡比")
    private String heavyBubble;

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

    @ApiModelProperty(value = "合同模式 1-托运 2-承运 3-司机")
    private Integer contractMode;
}