package com.ym.mec.biz.dal.entity;

import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;

import com.ym.mec.common.enums.BaseEnum;

import java.math.BigDecimal;

/**
 * 对应数据库表(goods_order_payment):
 */
public class GoodsOrderPayment {

	public enum PayStatus implements BaseEnum<String, PayStatus> {

		FAILED("FAILED", "支付失败"), WAIT_PAY("WAIT_PAY", "待支付"), PAYING("PAYING", "支付中"), SUCCESSED("SUCCESSED", "支付成功");

		private String code;

		private String desc;

		private PayStatus(String code, String desc) {
			this.code = code;
			this.desc = desc;
		}

		@Override
		public String getCode() {
			return code;
		}

		public String getDesc() {
			return desc;
		}
	}

	/**  */
	private Long id;

	/**  */
	@ApiModelProperty(value = "用户编号",required = false)
	private Integer userId;

	/**  */
	@ApiModelProperty(value = "商品订单编号",required = false)
	private Long goodsOrderId;

	/** 支付渠道 */
	@ApiModelProperty(value = "支付渠道",required = false)
	private String paymentChannel;

	/** 业务渠道 */
	@ApiModelProperty(value = "业务渠道",required = false)
	private String paymentBusinessChannel;

	/** 支付账号 */
	@ApiModelProperty(value = "支付账号",required = false)
	private String paymentAccountNo;

	/** 支付金额 */
	@ApiModelProperty(value = "支付金额",required = false)
	private BigDecimal amount;

	/** 交易流水号 */
	@ApiModelProperty(value = "交易流水号",required = false)
	private String transNo;

	/** 订单号 */
	@ApiModelProperty(value = "订单号",required = false)
	private String orderNo;

	/** 支付状态 */
	@ApiModelProperty(value = "支付状态",required = false)
	private PayStatus payStatus;

	/** 到账时间 */
	@ApiModelProperty(value = "到账时间",required = false)
	private java.util.Date arrivalTime;

	/** 备注 */
	@ApiModelProperty(value = "备注",required = false)
	private String remark;

	/**  */
	private java.util.Date createTime;

	/**  */
	private java.util.Date updateTime;

	public void setId(Long id) {
		this.id = id;
	}

	public Long getId() {
		return this.id;
	}

	public void setUserId(Integer userId) {
		this.userId = userId;
	}

	public Integer getUserId() {
		return this.userId;
	}

	public void setGoodsOrderId(Long goodsOrderId) {
		this.goodsOrderId = goodsOrderId;
	}

	public Long getGoodsOrderId() {
		return this.goodsOrderId;
	}

	public void setPaymentChannel(String paymentChannel) {
		this.paymentChannel = paymentChannel;
	}

	public String getPaymentChannel() {
		return this.paymentChannel;
	}

	public void setPaymentBusinessChannel(String paymentBusinessChannel) {
		this.paymentBusinessChannel = paymentBusinessChannel;
	}

	public String getPaymentBusinessChannel() {
		return this.paymentBusinessChannel;
	}

	public void setPaymentAccountNo(String paymentAccountNo) {
		this.paymentAccountNo = paymentAccountNo;
	}

	public String getPaymentAccountNo() {
		return this.paymentAccountNo;
	}

	public BigDecimal getAmount() {
		return amount;
	}

	public void setAmount(BigDecimal amount) {
		this.amount = amount;
	}

	public void setTransNo(String transNo) {
		this.transNo = transNo;
	}

	public String getTransNo() {
		return this.transNo;
	}

	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	public String getOrderNo() {
		return this.orderNo;
	}

	public void setPayStatus(PayStatus payStatus) {
		this.payStatus = payStatus;
	}

	public PayStatus getPayStatus() {
		return this.payStatus;
	}

	public void setArrivalTime(java.util.Date arrivalTime) {
		this.arrivalTime = arrivalTime;
	}

	public java.util.Date getArrivalTime() {
		return this.arrivalTime;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getRemark() {
		return this.remark;
	}

	public void setCreateTime(java.util.Date createTime) {
		this.createTime = createTime;
	}

	public java.util.Date getCreateTime() {
		return this.createTime;
	}

	public void setUpdateTime(java.util.Date updateTime) {
		this.updateTime = updateTime;
	}

	public java.util.Date getUpdateTime() {
		return this.updateTime;
	}

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}

}
