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-08 17:39
 */
@Data
@ApiModel("车辆保险管理表 VO")
public class TVmInsuranceVO 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 = 32, message = "保险单号最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String insurcode;

	@ApiModelProperty(value = "出现日期")
	@NotBlank(message = "出现日期必填", groups = { AddGroup.class, EditGroup.class })
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date outdager;

	@ApiModelProperty(value = "报案编号")
	@NotBlank(message = "报案编号必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "报案编号最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String reportno;

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

	@ApiModelProperty(value = "司机/报案人")
	@NotBlank(message = "司机/报案人必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "司机/报案人最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String reporter;

	@ApiModelProperty(value = "车辆归属单位")
	@NotBlank(message = "车辆归属单位必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "车辆归属单位最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String ascriptionCompanyNo;

	@ApiModelProperty(value = "车辆归属单位名称")
	@NotBlank(message = "车辆归属单位名称必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 64, message = "车辆归属单位名称最大长度64", groups = { AddGroup.class, EditGroup.class })
	private String ascriptionCompanyName;

	@ApiModelProperty(value = "使用性质")
	@Size(max = 32, message = "使用性质最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String nonOperational;

	@ApiModelProperty(value = "出现事故类型")
	@Size(max = 32, message = "出现事故类型最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String insurctype;

	@ApiModelProperty(value = "责任人")
	@NotBlank(message = "责任人必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "责任人最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String dutyman;

	@ApiModelProperty(value = "责任属性")
	@NotBlank(message = "责任属性必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "责任属性最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String resppro;

	@ApiModelProperty(value = "定损金额")
	@NotBlank(message = "定损金额必填", groups = { AddGroup.class, EditGroup.class })
	private BigDecimal amountdam;

	@ApiModelProperty(value = "赔付单位/个人")
	@NotBlank(message = "赔付单位/个人必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "赔付单位/个人最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String paidCustomer;

	@ApiModelProperty(value = "应赔付金额")
	@NotBlank(message = "应赔付金额必填", groups = { AddGroup.class, EditGroup.class })
	private BigDecimal amountcomp;

	@ApiModelProperty(value = "实际赔付金额")
	@NotBlank(message = "实际赔付金额必填", groups = { AddGroup.class, EditGroup.class })
	private BigDecimal amountact;

	@ApiModelProperty(value = "审核时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	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;

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

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

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

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

	private Integer pageNum;

	private Integer pageSize;

	private String sdate;

	private String edate;

	private String[] statuses;

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