package com.webank.wecube.platform.core.entity.workflow;

import javax.persistence. Column;
import javax.persistence. Entity;
import javax.persistence. GeneratedValue;
import javax.persistence. Id;
import javax.persistence. Table;

import com.webank.wecube.platform.core.entity. BaseTraceableEntity;

@Entity
@Table(name = "CORE_RU_TASK_NODE_EXEC_PARAM")
public class TaskNodeExecParamEntity extends BaseTraceableEntity {
    public static final String PARAM_TYPE_REQUEST = "INPUT";
    public static final String PARAM_TYPE_RESPONSE = "OUTPUT";

    public static final String PARAM_DATA_TYPE_NUMBER = "number";
    public static final String PARAM_DATA_TYPE_STRING = "string";
    public static final String PARAM_DATA_TYPE_TIMESTAMP = "timestamp";

    public static final String TIMESTAMP_PATTERN = "yyyyMMddHHmmssSSSZ";

    @Id
    @Column(name = "ID")
    @GeneratedValue
    private Integer id;

    @Column(name = "REQ_ID")
    private String requestId;

    @Column(name = "OBJ_ID")
    private String objectId;

    @Column(name = "ENTITY_TYPE_ID")
    private String entityTypeId;

    @Column(name = "ENTITY_DATA_ID")
    private String entityDataId;

    @Column(name = "PARAM_TYPE")
    private String paramType;

    @Column(name = "PARAM_NAME")
    private String paramName;

    @Column(name = "PARAM_DATA_TYPE")
    private String paramDataType; // int,string,boolean

    @Column(name = "PARAM_DATA_VALUE", columnDefinition = "text")
    private String paramDataValue;
    
    @Column(name = "IS_SENSITIVE")
    private Boolean sensitive;

    public Integer getId() {
        return id;
    }

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

    public String getRequestId() {
        return requestId;
    }

    public void setRequestId(String requestId) {
        this.requestId = requestId;
    }

    public String getObjectId() {
        return objectId;
    }

    public void setObjectId(String objectId) {
        this.objectId = objectId;
    }

    public String getParamType() {
        return paramType;
    }

    public void setParamType(String paramType) {
        this.paramType = paramType;
    }

    public String getParamName() {
        return paramName;
    }

    public void setParamName(String paramName) {
        this.paramName = paramName;
    }

    public String getParamDataType() {
        return paramDataType;
    }

    public void setParamDataType(String paramDataType) {
        this.paramDataType = paramDataType;
    }

    public String getParamDataValue() {
        return paramDataValue;
    }

    public void setParamDataValue(String paramDataValue) {
        this.paramDataValue = paramDataValue;
    }

    public String getEntityTypeId() {
        return entityTypeId;
    }

    public void setEntityTypeId(String entityTypeId) {
        this.entityTypeId = entityTypeId;
    }

    public String getEntityDataId() {
        return entityDataId;
    }

    public void setEntityDataId(String entityDataId) {
        this.entityDataId = entityDataId;
    }

    public Boolean getSensitive() {
        return sensitive;
    }

    public void setSensitive(Boolean sensitive) {
        this.sensitive = sensitive;
    }
}
