package com.ruoyi.platform.domain;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonRawValue;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;

/**
 * (Component)实体类
 *
 * @author makejava
 * @since 2023-12-14 11:17:00
 */
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class Component implements Serializable {
    private static final long serialVersionUID = -56592844039218605L;
    /**
     * 主键
     */
    @ApiModelProperty(name = "id", value = "主键")
    private Integer id;
    /**
     * 类别ID，数据字典配置
     */
    @ApiModelProperty(name = "category_id" ,value = "类别id")
    private Integer categoryId;
    /**
     * 组件name
     */
    @ApiModelProperty(name = "category_name", value = "组件名称")
    private String componentName;
    /**
     * 组件面板名
     */
    @ApiModelProperty(name = "component_label" , value = "组件面板名" )
    private String componentLabel;
    /**
     * 镜像
     */
    @JsonProperty("image")
    @ApiModelProperty(name = "image" ,value = "镜像")
    private String images;
    /**
     * 工作目录
     */
    @ApiModelProperty(name = "working_directory" , value = "工作目录")
    private String workingDirectory;
    /**
     * 启动命令
     */
    @ApiModelProperty(name = "command" , value = "启动命令")
    private String command;
    /**
     * 环境变量
     */
    @JsonProperty("env_variables")
    @ApiModelProperty(name = "env_variables", value = "环境变量")
    //@JsonRawValue
    private String envVirables;
    /**
     * 资源规格
     */
    @ApiModelProperty(name = "resources_standard" , value = "资源规格")
    private String resourcesStandard;
    /**
     * 控制策略
     */
    @ApiModelProperty(name = "control_strategy" ,value = "控制策略")
    private String controlStrategy;
    /**
     * 挂载路径
     */
    @ApiModelProperty(name = "mount_path" , value = "挂载路径")
    private String mountPath;
    /**
     * 输入参数
     */
    @ApiModelProperty(name = "in_parameters" ,value = "输入参数")
    //@JsonRawValue
    private String inParameters;
    /**
     * 输出参数
     */
    @ApiModelProperty(name = "out_parameters" ,value = "输出参数")
    //@JsonRawValue
    private String outParameters;

    /**
     * 可见范围
     */
    @ApiModelProperty(name = "available_range" ,value = "1公开0私有")
    private int availableRange;
    /**
     * 描述
     */
    @ApiModelProperty(name = "description" , value = "描述")
    private String description;

    /**
     * 图标路径
     */
    @ApiModelProperty(name = "icon_path" ,value = "图标路径")


    private String iconPath;
    /**
     * 创建者
     */

    //@JsonProperty("creater")
    @ApiModelProperty(name = "create_by" ,value = "创建者")
    private String createBy;
    /**
     * 创建时间
     */
    @ApiModelProperty(name = "create_time" , value = "创建时间")
    private Date createTime;
    /**
     * 更新者
     */
    //@JsonProperty("modify_by")
    @ApiModelProperty(name = "update_by" , value = "更新者")
    private String updateBy;
    /**
     * 更新时间
     */
    @ApiModelProperty(name = "update_time" , value = "更新时间")
    private Date updateTime;
    /**
     * 0,失效 1生效
     */
    @ApiModelProperty(name = "state" , value = "状态")
    private Integer state;



    public Integer getId() {
        return id;
    }

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

    public Integer getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Integer categoryId) {
        this.categoryId = categoryId;
    }

    public String getComponentName() {
        return componentName;
    }

    public void setComponentName(String componentName) {
        this.componentName = componentName;
    }

    public String getComponentLabel() {
        return componentLabel;
    }

    public void setComponentLabel(String componentLabel) {
        this.componentLabel = componentLabel;
    }

    public String getImages() {
        return images;
    }

    public void setImages(String images) {
        this.images = images;
    }

    public String getWorkingDirectory() {
        return workingDirectory;
    }

    public void setWorkingDirectory(String workingDirectory) {
        this.workingDirectory = workingDirectory;
    }

    public String getCommand() {
        return command;
    }

    public void setCommand(String command) {
        this.command = command;
    }

    public String getEnvVirables() {
        return envVirables;
    }

    public void setEnvVirables(String envVirables) {
        this.envVirables = envVirables;
    }

    public String getResourcesStandard() {
        return resourcesStandard;
    }

    public void setResourcesStandard(String resourcesStandard) {
        this.resourcesStandard = resourcesStandard;
    }

    public String getControlStrategy() {
        return controlStrategy;
    }

    public void setControlStrategy(String controlStrategy) {
        this.controlStrategy = controlStrategy;
    }

    public String getMountPath() {
        return mountPath;
    }

    public void setMountPath(String mountPath) {
        this.mountPath = mountPath;
    }

    public String getInParameters() {
        return inParameters;
    }

    public void setInParameters(String inParameters) {
        this.inParameters = inParameters;
    }

    public String getOutParameters() {
        return outParameters;
    }

    public void setOutParameters(String outParameters) {
        this.outParameters = outParameters;
    }

    public int getAvailableRange() {
        return availableRange;
    }

    public void setAvailableRange(int availableRange) {
        this.availableRange = availableRange;
    }

    public String getDescription() {
        return description;
    }

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


    public String getIconPath() {
        return iconPath;
    }

    public void setIconPath(String iconPath) {
        this.iconPath = iconPath;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }
}