package com.prolog.cs.biz.inbound.dto.rcv;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.cs.biz.inbound.constant.ValidatorGroup.validAdd;
import com.prolog.cs.biz.inbound.constant.ValidatorGroup.validEdit;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @Description 收货单对应的源单列表（存类型是ASN+业务单） 与收货单头 1：N关系
 * @Author Xiong
 * @Date 2021-04-02
 */

@ApiModel
public class RcvHeadersSrcBillsDTO implements Serializable {
	private static final long serialVersionUID = 5311835744118134482L;
	@ApiModelProperty(value = "收货来源单列表来源单单头ID")
	private String rcvHeaderSrcBillId;

	@ApiModelProperty(value = "单头ID", required = true)
	@NotBlank(message = "单头ID can not blank!", groups = validEdit.class)
	private String rcvHeaderId;

	@ApiModelProperty(value = "批准人")
	private String confirmedBy;

	@ApiModelProperty(value = "来源单类型(CG XT YC)")
	private String srcHeaderType;

	@ApiModelProperty(value = "收货日期", required = true)
	@NotNull(message = "收货日期 can not blank!", groups = validAdd.class)
	//@Past(message = "收货日期 can not greater than now!", groups = validAdd.class)
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date rcvDate;

	@ApiModelProperty(value = "收货类型", required = true)
	@NotBlank(message = "收货类型 can not blank!", groups = validAdd.class)
	private String rcvType;

	@ApiModelProperty(value = "last_updated_name")
	private String lastUpdatedName;

	@ApiModelProperty(value = "批准人名称")
	private String confirmedName;

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

	@ApiModelProperty(value = "来源单ID列表")
	private String srcHeaderId;

	@ApiModelProperty(value = "来源单号列表")
	private String srcAutoBullNum;

	@ApiModelProperty(value = "来源单ID列表(ASN)")
	private String asnHeaderId;

	@ApiModelProperty(value = "来源单号列表(ASN)")
	private String asnAutoBillNum;

	public String getRcvHeaderSrcBillId() {
		return rcvHeaderSrcBillId;
	}

	public void setRcvHeaderSrcBillId(String rcvHeaderSrcBillId) {
		this.rcvHeaderSrcBillId = rcvHeaderSrcBillId;
	}

	public String getRcvHeaderId() {
		return rcvHeaderId;
	}

	public void setRcvHeaderId(String rcvHeaderId) {
		this.rcvHeaderId = rcvHeaderId;
	}

	public String getConfirmedBy() {
		return confirmedBy;
	}

	public void setConfirmedBy(String confirmedBy) {
		this.confirmedBy = confirmedBy;
	}

	public String getSrcHeaderType() {
		return srcHeaderType;
	}

	public void setSrcHeaderType(String srcHeaderType) {
		this.srcHeaderType = srcHeaderType;
	}

	public Date getRcvDate() {
		return rcvDate;
	}

	public void setRcvDate(Date rcvDate) {
		this.rcvDate = rcvDate;
	}

	public String getRcvType() {
		return rcvType;
	}

	public void setRcvType(String rcvType) {
		this.rcvType = rcvType;
	}

	public String getLastUpdatedName() {
		return lastUpdatedName;
	}

	public void setLastUpdatedName(String lastUpdatedName) {
		this.lastUpdatedName = lastUpdatedName;
	}

	public String getConfirmedName() {
		return confirmedName;
	}

	public void setConfirmedName(String confirmedName) {
		this.confirmedName = confirmedName;
	}

	public Date getConfirmDate() {
		return confirmDate;
	}

	public void setConfirmDate(Date confirmDate) {
		this.confirmDate = confirmDate;
	}

	public String getSrcHeaderId() {
		return srcHeaderId;
	}

	public void setSrcHeaderId(String srcHeaderId) {
		this.srcHeaderId = srcHeaderId;
	}

	public String getSrcAutoBullNum() {
		return srcAutoBullNum;
	}

	public void setSrcAutoBullNum(String srcAutoBullNum) {
		this.srcAutoBullNum = srcAutoBullNum;
	}

	public String getAsnHeaderId() {
		return asnHeaderId;
	}

	public void setAsnHeaderId(String asnHeaderId) {
		this.asnHeaderId = asnHeaderId;
	}

	public String getAsnAutoBillNum() {
		return asnAutoBillNum;
	}

	public void setAsnAutoBillNum(String asnAutoBillNum) {
		this.asnAutoBillNum = asnAutoBillNum;
	}

}
