package com.crm.rely.backend.core.pojo.table.ucard;

import com.crm.rely.backend.core.pojo.BaseTable;
import lombok.Data;

import javax.persistence.Entity;
import javax.persistence.Table;
import java.math.BigDecimal;

/**
 * 加密货币回调记录表
 */
@Data
@Entity
@Table(name = "ucard_crypto_callback_record")
public class UcardCryptoCallbackRecordTable extends BaseTable {

    private String uniqueId;
    /**
     * 到账金额
     */
    private BigDecimal receivedAmount;
    /**
     * API 版本
     */
    private String apiVersion;
    /**
     * 表示一个唯一标识符，用于引用触发回调的特定请求，例如区块链事件订阅、区块链自动化等。
     */
    private String referenceId;
    /**
     * 系统生成的唯一ID，附加到每个回调。服务器用它来识别具有相同数据的数据连续请求，目的是避免重复执行相同的操作。
     */
    private String idempotencyKey;
    /**
     * 代表发送回调的Crypto APIs 2.0产品。
     */
    private String product;
    /**
     * 定义了设置回调订阅的具体事件。
     */
    private String event;
    /**
     * 表示特定的区块链协议名称，例如以太坊、比特币等。
     */
    private String blockchain;
    /**
     * 它表示所使用的区块链网络名称
     */
    private String network;
    /**
     * 它定义了已发送并确认的硬币交易的具体地址。
     */
    private String address;
    /**
     * 定义了此特定区块之前区块链中的区块数量。
     */
    private Integer height;
    /**
     * 代表区块头部的哈希值，即具有固定长度的输出。
     */
    private String hash;
    /**
     * 时间戳-秒
     */
    private Integer timestamp;
    /**
     * 定义了特定交易的唯一ID，即其识别号码。
     */
    private String transactionId;
    private String amount;
    /**
     * 定义交易单位，例如BTC。
     */
    private String unit;
    /**
     * 定义交易是“入账”：incoming 还是“出账：outgoing
     */
    private String direction;
    /**
     * 定义了交易中发送的代币类型，例如ERC 20。
     */
    private String tokenType;
    /**
     * 指定了令牌的名称。
     */
    private String name;
    /**
     * 定义了 Omni Layer 的属性 ID。
     */
    private String propertyId;
    /**
     * 定义交易类型。
     */
    private String transactionType;
    /**
     * 用于创建代币的交易ID。
     */
    private String createdByTransactionId;
    /**
     * 指定一个标识符，最多可以使用五个字母数字字符。
     */
    private String symbol;
    /**
     * 定义了可以用于拆分令牌的小数位数。
     */
    private String decimals;
    /**
     * 指定代币的 ID。
     */
    private String tokenId;
    /**
     * 定义合同的地址。
     */
    private String contractAddress;

}
