package cn.iocoder.yudao.module.custom.entity;

import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.math.BigDecimal;

/**
 * 用户积分（余额）、卡券变动记录 DO
 *
 * @author pqz
 */
@TableName("base_customer_balance_change")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CustomerBalanceChange extends TenantBaseDO {

    /**
     * 主键标识
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 客户id
     */
    private String cusId;
    /**
     * 用户id
     */
    private Long userId;
    /**
     * 关联卡券id
     */
    private String couponId;
    /**
     * 变动类型（充值、消费、退款、赠送、卡券核销）
     */
    private String changeType;
    /**
     * 变动主体（余额、卡券）
     */
    private String changeMain;
    /**
     * 变动规则（计次、面额）
     */
    private String changeRule;
    /**
     * 变动金额
     */
    private BigDecimal changeBalance;
    /**
     * 变动后剩余积分
     */
    private BigDecimal remBalance;
    /**
     * 变动原因
     */
    private String reason;

}