package cn.iocoder.yudao.module.member.dal.dataobject.user;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.util.*;
import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.*;

/**
 * 会员卡充值记录 DO
 *
 * @author 系统管理员
 */
@TableName("member_card_change_record")
@KeySequence("member_card_recharge_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MemberCardChangeRecordDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    /**
     * 会员用户ID
     */
    @Schema(description = "会员用户ID")
    private Long memberUserId;
    /**
     * 会员姓名
     */
    @Schema(description = "会员姓名")
    private String memberUserName;
    /**
     * 会员卡ID
     */
    @Schema(description = "会员卡ID")
    private Long memberCardId;
    /**
     * 会员卡名称
     */
    @Schema(description = "会员卡名称")
    private String cardName;
    /**
     * 会员卡号
     */
    @Schema(description = "会员卡号")
    private String cardNumber;
    /**
     * 变更前金额
     */
    @Schema(description = "变更前金额")
    private BigDecimal beforeChangeAmount;
    /**
     * 变更后金额
     */
    @Schema(description = "变更后金额")
    private BigDecimal afterChangeAmount;
    /**
     * 变更金额
     */
    @Schema(description = "变更金额")
    private BigDecimal amount;
    /**
     * 消费单号
     */
    @Schema(description = "消费单号")
    private String orderNum;
    /**
     * 支付方式
     */
    @Schema(description = "支付方式")
    private String payType;
    /**
     * 支付方式名称
     */
    @Schema(description = "支付方式名称")
    private String payTypeName;
    /**
     * 赠送金额
     */
    @Schema(description = "赠送金额")
    private BigDecimal giftAmount;
    /**
     * 类型 1.充值 2.退款 3.消费
     */
    @Schema(description = "操作类型,1.充值 2.退款 3.消费")
    private Integer type;
    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remarks;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createdTime;
    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private String createdBy;

    private Integer orgType;

}