package com.jeequan.jeepay.db.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jeequan.jeepay.core.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * <p>
 * 会员充值记录表
 * </p>
 *
 * @author [mybatis plus generator]
 * @since 2023-04-12
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_member_recharge_record")
public class MemberRechargeRecord extends BaseModel {

    public static final LambdaQueryWrapper<MemberRechargeRecord> gw(){
        return new LambdaQueryWrapper<>();
    }

    private static final long serialVersionUID=1L;

    // 充值状态：0-初始化, 1-充值中, 2-充值成功, 3-充值失败
    public static final byte STATE_INIT = 0;
    public static final byte STATE_ING = 1;
    public static final byte STATE_SUCCESS = 2;
    public static final byte STATE_FAIL = 3;

    /**
     * 充值记录ID
     */
    @TableId(value = "recharge_record_id", type = IdType.INPUT)
    private String rechargeRecordId;

    /**
     * 会员ID
     */
    private String mbrId;

    /**
     * 会员名称 快照
     */
    private String mbrName;

    /**
     * 会员手机号 快照
     */
    private String mbrTel;

    /**
     * 所属商户
     */
    private String mchNo;

    /**
     * 支付金额, 单位：分
     */
    private Long payAmount;

    /**
     * 赠送金额, 单位：分
     */
    private Long giveAmount;

    /**
     * 会员入账金额, 单位：分
     */
    private Long entryAmount;

    /**
     * 会员余额, 单位：分
     */
    private Long afterBalance;

    /**
     * 支付方式代码
     */
    private String wayCode;

    /**
     * 支付方式代码分类
     */
    private String wayCodeType;

    /**
     * 充值状态：0-初始化, 1-充值中, 2-充值成功, 3-充值失败
     */
    private Byte state;

    /**
     * 支付订单号
     */
    private String payOrderId;

    /**
     * 订单支付成功时间
     */
    private Date successTime;

    /**
     * 同步跳转地址
     */
    private String returnUrl;

    /**
     * 异步通知地址
     */
    private String notifyUrl;

    /**
     * 支付错误码
     */
    private String errCode;

    /**
     * 支付错误描述
     */
    private String errMsg;

    /**
     * 充值备注
     */
    private String remark;

    /**
     * 创建时间
     */
    private Date createdAt;

    /**
     * 更新时间
     */
    private Date updatedAt;


}
