package com.ruoyi.blockchain.domain;

import java.util.Date;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 哈希映射对象 dc_hash_mapping
 * 
 * @author ruoyi
 * @date 2025-12-17
 */
public class HashMapping extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 映射ID */
    private Long mappingId;

    /** 业务类型 */
    @Excel(name = "业务类型")
    @NotBlank(message = "业务类型不能为空")
    @Size(max = 20, message = "业务类型长度不能超过20个字符")
    private String businessType;

    /** 业务ID */
    @Excel(name = "业务ID")
    @NotNull(message = "业务ID不能为空")
    private Long businessId;

    /** 数据哈希 */
    @Excel(name = "数据哈希")
    @NotBlank(message = "数据哈希不能为空")
    @Size(max = 128, message = "数据哈希长度不能超过128个字符")
    private String dataHash;

    /** 区块链哈希 */
    @Excel(name = "区块链哈希")
    @NotBlank(message = "区块链哈希不能为空")
    @Size(max = 128, message = "区块链哈希长度不能超过128个字符")
    private String blockchainHash;

    /** 哈希算法 */
    @Excel(name = "哈希算法")
    @NotBlank(message = "哈希算法不能为空")
    @Size(max = 20, message = "哈希算法长度不能超过20个字符")
    private String hashAlgorithm;

    /** 验证状态 */
    @Excel(name = "验证状态")
    @NotBlank(message = "验证状态不能为空")
    @Size(max = 20, message = "验证状态长度不能超过20个字符")
    private String verifyStatus;

    /** 创建时间 */
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "创建时间不能为空")
    private Date createTime;

    /** 验证时间 */
    @Excel(name = "验证时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date verifyTime;

    public void setMappingId(Long mappingId) 
    {
        this.mappingId = mappingId;
    }

    public Long getMappingId() 
    {
        return mappingId;
    }
    public void setBusinessType(String businessType) 
    {
        this.businessType = businessType;
    }

    public String getBusinessType() 
    {
        return businessType;
    }
    public void setBusinessId(Long businessId) 
    {
        this.businessId = businessId;
    }

    public Long getBusinessId() 
    {
        return businessId;
    }
    public void setDataHash(String dataHash) 
    {
        this.dataHash = dataHash;
    }

    public String getDataHash() 
    {
        return dataHash;
    }
    public void setBlockchainHash(String blockchainHash) 
    {
        this.blockchainHash = blockchainHash;
    }

    public String getBlockchainHash() 
    {
        return blockchainHash;
    }
    public void setHashAlgorithm(String hashAlgorithm) 
    {
        this.hashAlgorithm = hashAlgorithm;
    }

    public String getHashAlgorithm() 
    {
        return hashAlgorithm;
    }
    public void setVerifyStatus(String verifyStatus) 
    {
        this.verifyStatus = verifyStatus;
    }

    public String getVerifyStatus() 
    {
        return verifyStatus;
    }
    @Override
    public void setCreateTime(Date createTime) 
    {
        this.createTime = createTime;
    }

    @Override
    public Date getCreateTime() 
    {
        return createTime;
    }
    public void setVerifyTime(Date verifyTime) 
    {
        this.verifyTime = verifyTime;
    }

    public Date getVerifyTime() 
    {
        return verifyTime;
    }

    @Override
    public String toString() {
        return "HashMapping{" +
                "mappingId=" + mappingId +
                ", businessType='" + businessType + '\'' +
                ", businessId=" + businessId +
                ", dataHash='" + dataHash + '\'' +
                ", blockchainHash='" + blockchainHash + '\'' +
                ", hashAlgorithm='" + hashAlgorithm + '\'' +
                ", verifyStatus='" + verifyStatus + '\'' +
                ", createTime=" + createTime +
                ", verifyTime=" + verifyTime +
                '}';
    }
}