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

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 javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


@Data
public class DriverSettlementOrderUpdateVO implements Serializable {

    @ApiModelProperty(value = "派车单")
    private List<SettlementLoadingVO> loadingVOS;

    @NotNull(message = "结算单id不能为空")
    @ApiModelProperty(value = "支出结算主表id")
    private Long settlementId;

    @NotEmpty(message = "结算单号不能为空")
    @ApiModelProperty(value = "结算单号")
    private String settlementNo;

    @NotEmpty(message = "结算单名称不能为空")
    @ApiModelProperty(value = "结算单名称")
    private String settlementName;

    @ApiModelProperty(value = "结算周期")
    private String settlementCycle;

    @ApiModelProperty(value = "往来单位id")
    private Integer carrierId;

    @ApiModelProperty(value = "往来单位编码")
    private String carrierCode;

    @ApiModelProperty(value = "往来单位名称")
    private String carrierName;

    @NotEmpty(message = "结算公司不能为空")
    @ApiModelProperty(value = "结算公司")
    private String settlementCompany;

    @NotEmpty(message = "结算部门不能为空")
    @ApiModelProperty(value = "结算部门")
    private String settlementDepartment;

    @ApiModelProperty(value = "挂账结束日期")
    private Date accountEndDate;

    @ApiModelProperty(value = "开票结束日期")
    private Date invoiceEndDate;

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

    @ApiModelProperty(value = "含税金额")
    private BigDecimal taxAmt;

    @ApiModelProperty(value = "无税金额")
    private BigDecimal noTaxAmt;

    @ApiModelProperty(value = "总税额")
    private BigDecimal tax;

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

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

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

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

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

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

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

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

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

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

    @ApiModelProperty(value = "数值属性扩展5")
    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")
    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")
    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")
    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")
    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")
    private Date extDate5;

}