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

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

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.product.core.base.group.AddGroup;
import com.prolog.product.core.base.group.EditGroup;

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

/**
 * 车辆加油管理表 Vo
 * <p>
 * Copyright: Copyright (C) 2020 prolog-int, Inc. All rights reserved.
 * <p>
 * Company: 湖北普罗格科技股份有限公司
 *
 *
 * @author xiaoyf
 * @since 2020-06-09 17:07
 */
@Data
@ApiModel("车辆加油管理表 VO")
public class TVmFuelRecordVO implements Serializable {

	private static final long serialVersionUID = 1L;

	@ApiModelProperty(value = "机构ID")
	@NotBlank(message = "机构ID必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "机构ID最大长度32", groups = { AddGroup.class, EditGroup.class })
	private Long branchId;

	@ApiModelProperty(value = "机构牌号")
	@NotBlank(message = "机构牌号必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "机构牌号最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String branchname;

	@ApiModelProperty(value = "加油单号")
	@NotBlank(message = "加油单号必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 64, message = "加油单号最大长度64", groups = { AddGroup.class, EditGroup.class })
	private String billno;

	@ApiModelProperty(value = "车牌号")
	@Size(max = 20, message = "车牌号最大长度20", groups = { AddGroup.class, EditGroup.class })
	private String platenumber;

	@ApiModelProperty(value = "加油站编号")
	@Size(max = 20, message = "加油站编号最大长度20", groups = { AddGroup.class, EditGroup.class })
	private String gsCode;

	@ApiModelProperty(value = "加油站名称")
	@Size(max = 40, message = "加油站名称最大长度40", groups = { AddGroup.class, EditGroup.class })
	private String gsName;

	@ApiModelProperty(value = "油型")
	@Size(max = 10, message = "油型最大长度10", groups = { AddGroup.class, EditGroup.class })
	private String oiltype;

	@ApiModelProperty(value = "油价")
	private BigDecimal oilPrice;

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

	@ApiModelProperty(value = "加油人")
	@Size(max = 32, message = "加油人最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String oilPerson;

	@ApiModelProperty(value = "加油量")
	private BigDecimal oilQuantity;

	@ApiModelProperty(value = "里程数")
	@Size(max = 20, message = "里程数最大长度20", groups = { AddGroup.class, EditGroup.class })
	private String odometer;

	@ApiModelProperty(value = "金额")
	@Size(max = 20, message = "金额最大长度20", groups = { AddGroup.class, EditGroup.class })
	private String amount;

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

	@ApiModelProperty(value = "审核人")
	@Size(max = 32, message = "审核人最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String auditperson;

	@ApiModelProperty(value = "状态")
	@NotBlank(message = "状态必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 4, message = "状态最大长度4", groups = { AddGroup.class, EditGroup.class })
	private String status;

	@ApiModelProperty(value = "备注")
	@Size(max = 1024, message = "备注最大长度1024", groups = { AddGroup.class, EditGroup.class })
	private String memo;

	@ApiModelProperty(value = "扩展字段1")
	@Size(max = 128, message = "扩展字段1最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String extend01;

	@ApiModelProperty(value = "扩展字段2")
	@Size(max = 128, message = "扩展字段2最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String extend02;

	@ApiModelProperty(value = "扩展字段3")
	@Size(max = 128, message = "扩展字段3最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String extend03;

	@ApiModelProperty(value = "扩展字段4")
	@Size(max = 128, message = "扩展字段4最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String extend04;

	@ApiModelProperty(value = "扩展字段5")
	@Size(max = 128, message = "扩展字段5最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String extend05;

	private Integer pageNum;

	private Integer pageSize;

	private Date startdate;

	private Date enddate;

	@ApiModelProperty(value = "审核状态")
	private String auditstatus;

	@ApiModelProperty(value = "审核意见")
	private String auditdescrible;

	@ApiModelProperty(value = "多个状态")
	private String[] statuses;

	private String[] branchids;
}
