package com.yolo.keyboard.dal.dataobject.tenantbalancetransaction;

import com.yolo.keyboard.framework.tenant.core.aop.TenantIgnore;
import lombok.*;

import java.math.BigDecimal;
import java.util.*;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.yolo.keyboard.framework.mybatis.core.dataobject.BaseDO;

/**
 * 租户积分记录 DO
 *
 * @author 芋道源码
 */
@TableName("system_tenant_balance_transaction")
@KeySequence("system_tenant_balance_transaction_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TenantIgnore
public class TenantBalanceTransactionDO {

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 本次变动点数，正加负减
     */
    private BigDecimal points;
    /**
     * 变动后余额快照（冗余）
     */
    private BigDecimal balance;
    /**
     * 变动类型，如 TRANSFER_IN, WITHDRAW，REFUND_COMMISSION ，RECHARGE_COMMISSION
     */
    private String type;
    /**
     * 变动描述
     */
    private String description;
    /**
     * 订单 Id/业务单号
     */
    private String orderId;
    /**
     * 业务流水号（转账、订单等唯一标识）
     */
    private String bizNo;
    /**
     * 操作人 Id
     */
    private Long operatorId;
    /**
     * 创建时间
     */
    private LocalDateTime createdAt;
    /**
     * 备注
     */
    private String remark;

    private Long tenantId;
}