package com.microservices.dms.achievementLibrary.domain.blockchain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.microservices.common.core.annotation.Excel;
import com.microservices.common.core.web.domain.BaseEntity;

/**
 * 用户/项目转账信息记录对象 user_project_transfer_records
 * 
 * @author microservices
 * @date 2025-05-27
 */
public class UserProjectTransferRecords extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 唯一标识每条记录 */
    private Long id;

    /** 付款方ID */
    @Excel(name = "付款方ID")
    private String payerId;

    /** 项目ID */
    @Excel(name = "项目ID")
    private String projectId;

    /** 转账金额，支持高精度数值 */
    @Excel(name = "转账金额，支持高精度数值")
    private BigDecimal token;

    /** 收款方ID */
    @Excel(name = "收款方ID")
    private String payeeId;

    /** 交易哈希值，确保每一笔交易唯一 */
    @Excel(name = "交易哈希值，确保每一笔交易唯一")
    private String txHash;

    /** 转账类型：project、user */
    @Excel(name = "转账类型：project、user")
    private String type;

    /** 备用字段1 */
    @Excel(name = "备用字段1")
    private String reserve1;

    /** 备用字段2 */
    @Excel(name = "备用字段2")
    private String reserve2;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setPayerId(String payerId) 
    {
        this.payerId = payerId;
    }

    public String getPayerId() 
    {
        return payerId;
    }
    public void setProjectId(String projectId) 
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }
    public void setToken(BigDecimal token) 
    {
        this.token = token;
    }

    public BigDecimal getToken() 
    {
        return token;
    }
    public void setPayeeId(String payeeId) 
    {
        this.payeeId = payeeId;
    }

    public String getPayeeId() 
    {
        return payeeId;
    }
    public void setTxHash(String txHash) 
    {
        this.txHash = txHash;
    }

    public String getTxHash() 
    {
        return txHash;
    }
    public void setType(String type) 
    {
        this.type = type;
    }

    public String getType() 
    {
        return type;
    }
    public void setReserve1(String reserve1) 
    {
        this.reserve1 = reserve1;
    }

    public String getReserve1() 
    {
        return reserve1;
    }
    public void setReserve2(String reserve2) 
    {
        this.reserve2 = reserve2;
    }

    public String getReserve2() 
    {
        return reserve2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("payerId", getPayerId())
            .append("projectId", getProjectId())
            .append("token", getToken())
            .append("payeeId", getPayeeId())
            .append("txHash", getTxHash())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("type", getType())
            .append("reserve1", getReserve1())
            .append("reserve2", getReserve2())
            .toString();
    }
}
