package com.yonge.cooleshow.biz.dal.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yonge.cooleshow.biz.dal.enums.PayChannelEnum;
import com.yonge.cooleshow.biz.dal.enums.TradeStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;

/**
 * 平台订单支付表
 */
@TableName("user_order_payment")
@ApiModel(value = "UserOrderPayment对象", description = "平台订单支付表")
public class UserOrderPayment implements Serializable {
	private static final long serialVersionUID = 1L;
    @TableId(value = "id_", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("订单号 ")
	@TableField(value = "order_no_")
    private String orderNo;
    @ApiModelProperty("交易流水号 ")
	@TableField(value = "trans_no_")
    private String transNo;
    @ApiModelProperty("支付渠道:  alipay 支付宝  wx_lite 微信 ")
	@TableField(value = "pay_channel_")
    private PayChannelEnum payChannel;
    @ApiModelProperty("交易金额，必须大于0，保留两位小数点，如0.10、100.05等 ")
	@TableField(value = "pay_amt_")
    private BigDecimal payAmt;
    @ApiModelProperty("汇付收取的服务费 ")
    @TableField(value = "fee_amt_")
    private BigDecimal feeAmt;
    @ApiModelProperty("支付详情信息（用于拉起支付） ")
	@TableField(value = "pay_info_")
    private String payInfo;
    @ApiModelProperty("交易状态 pending 交易处理中 succeeded 交易成功 failed 交易失败")
    @TableField(value = "status_")
    private TradeStatusEnum status;
    @ApiModelProperty("失败信息 ")
    @TableField(value = "pay_fail_msg_")
    private String payFailMsg;
    @ApiModelProperty("到账时间 ")
	@TableField(value = "arrival_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date arrivalTime;
    @ApiModelProperty("关单状态 pending 交易处理中 succeeded 交易成功 failed 交易失败")
    @TableField(value = "close_status_")
    private TradeStatusEnum closeStatus;
    @ApiModelProperty("关单失败信息 ")
    @TableField(value = "close_fail_msg_")
    private String closeFailMsg;
    @ApiModelProperty("创建时间 ")
    @TableField(value = "create_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;
    @ApiModelProperty("更新时间 ")
    @TableField(value = "update_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;

    public Long getId() {
        return id;
    }

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

    public String getOrderNo() {
        return orderNo;
    }

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

    public String getTransNo() {
        return transNo;
    }

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

    public PayChannelEnum getPayChannel() {
        return payChannel;
    }

    public void setPayChannel(PayChannelEnum payChannel) {
        this.payChannel = payChannel;
    }

    public BigDecimal getPayAmt() {
        return payAmt;
    }

    public void setPayAmt(BigDecimal payAmt) {
        this.payAmt = payAmt;
    }

    public BigDecimal getFeeAmt() {
        return feeAmt;
    }

    public void setFeeAmt(BigDecimal feeAmt) {
        this.feeAmt = feeAmt;
    }

    public String getPayInfo() {
        return payInfo;
    }

    public void setPayInfo(String payInfo) {
        this.payInfo = payInfo;
    }

    public TradeStatusEnum getStatus() {
        return status;
    }

    public void setStatus(TradeStatusEnum status) {
        this.status = status;
    }

    public String getPayFailMsg() {
        return payFailMsg;
    }

    public void setPayFailMsg(String payFailMsg) {
        this.payFailMsg = payFailMsg;
    }

    public Date getArrivalTime() {
        return arrivalTime;
    }

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

    public TradeStatusEnum getCloseStatus() {
        return closeStatus;
    }

    public void setCloseStatus(TradeStatusEnum closeStatus) {
        this.closeStatus = closeStatus;
    }

    public String getCloseFailMsg() {
        return closeFailMsg;
    }

    public void setCloseFailMsg(String closeFailMsg) {
        this.closeFailMsg = closeFailMsg;
    }

    public Date getCreateTime() {
        return createTime;
    }

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

    public Date getUpdateTime() {
        return updateTime;
    }

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