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;

/**
 * Oracle数据对象 dc_oracle_data
 * 
 * @author ruoyi
 * @date 2025-12-19
 */
public class OracleData extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** Oracle数据ID */
    private Long oracleDataId;

    /** Oracle名称 */
    @Excel(name = "Oracle名称")
    @NotBlank(message = "Oracle名称不能为空")
    @Size(max = 100, message = "Oracle名称长度不能超过100个字符")
    private String oracleName;

    /** Oracle地址 */
    @Excel(name = "Oracle地址")
    @NotBlank(message = "Oracle地址不能为空")
    @Size(max = 100, message = "Oracle地址长度不能超过100个字符")
    private String oracleAddress;

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

    /** 数据值 */
    @Excel(name = "数据值")
    @Size(max = 1000, message = "数据值长度不能超过1000个字符")
    private String dataValue;

    /** 数据类型 */
    @Excel(name = "数据类型")
    @NotBlank(message = "数据类型不能为空")
    @Size(max = 50, message = "数据类型长度不能超过50个字符")
    private String dataType;

    /** 数据签名 */
    @Excel(name = "数据签名")
    @Size(max = 256, message = "数据签名长度不能超过256个字符")
    private String dataSignature;

    /** 更新间隔(秒) */
    @Excel(name = "更新间隔")
    @NotNull(message = "更新间隔不能为空")
    private Long updateInterval;

    /** 最后更新时间 */
    @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lastUpdateTime;

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

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

    /** 描述 */
    @Excel(name = "描述")
    @Size(max = 500, message = "描述长度不能超过500个字符")
    private String description;

    public void setOracleDataId(Long oracleDataId) {
        this.oracleDataId = oracleDataId;
    }

    public Long getOracleDataId() {
        return oracleDataId;
    }

    public void setOracleName(String oracleName) {
        this.oracleName = oracleName;
    }

    public String getOracleName() {
        return oracleName;
    }

    public void setOracleAddress(String oracleAddress) {
        this.oracleAddress = oracleAddress;
    }

    public String getOracleAddress() {
        return oracleAddress;
    }

    public void setDataKey(String dataKey) {
        this.dataKey = dataKey;
    }

    public String getDataKey() {
        return dataKey;
    }

    public void setDataValue(String dataValue) {
        this.dataValue = dataValue;
    }

    public String getDataValue() {
        return dataValue;
    }

    public void setDataType(String dataType) {
        this.dataType = dataType;
    }

    public String getDataType() {
        return dataType;
    }

    public void setDataSignature(String dataSignature) {
        this.dataSignature = dataSignature;
    }

    public String getDataSignature() {
        return dataSignature;
    }

    public void setUpdateInterval(Long updateInterval) {
        this.updateInterval = updateInterval;
    }

    public Long getUpdateInterval() {
        return updateInterval;
    }

    public void setLastUpdateTime(Date lastUpdateTime) {
        this.lastUpdateTime = lastUpdateTime;
    }

    public Date getLastUpdateTime() {
        return lastUpdateTime;
    }

    public void setOracleStatus(String oracleStatus) {
        this.oracleStatus = oracleStatus;
    }

    public String getOracleStatus() {
        return oracleStatus;
    }

    public void setValidationStatus(String validationStatus) {
        this.validationStatus = validationStatus;
    }

    public String getValidationStatus() {
        return validationStatus;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }

    @Override
    public String toString() {
        return "OracleData{" +
                "oracleDataId=" + oracleDataId +
                ", oracleName='" + oracleName + '\'' +
                ", oracleAddress='" + oracleAddress + '\'' +
                ", dataKey='" + dataKey + '\'' +
                ", dataValue='" + dataValue + '\'' +
                ", dataType='" + dataType + '\'' +
                ", dataSignature='" + dataSignature + '\'' +
                ", updateInterval=" + updateInterval +
                ", lastUpdateTime=" + lastUpdateTime +
                ", oracleStatus='" + oracleStatus + '\'' +
                ", validationStatus='" + validationStatus + '\'' +
                ", description='" + description + '\'' +
                '}';
    }
}