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

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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


@Data
public class LogisticsContractDTO implements Serializable {

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

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

    @ApiModelProperty(value = "合同名称")
    private String contractName;

    @ApiModelProperty(value = "合同类型 CONTRACT_TYPE" )
    private int contractType;
    private String contractTypeName;

    @ApiModelProperty(value = "结算方式  SETTLEMENT_TYPE")
    private Integer settlementType;
    private String settlementTypeName;

    @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 = "甲方类型 数据字典 C:货主 D:部门")
    private String firstPartyTypeName;

    @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 = "乙方类型 数据字典 C:承运商 D:部门")
    private String secondPartyTypeName;

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

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

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "生效日期")
    private Date effectiveDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "失效日期")
    private Date expiryDate;

    @ApiModelProperty(value = "合同期限")
    private int contractPeriod;

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

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

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

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

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

    @ApiModelProperty(value = "状态")
    private int status;
    private String contractStatus;

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

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

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

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

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

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