package com.shzg.project.worn.domain;

import com.shzg.framework.aspectj.lang.annotation.Excel;
import com.shzg.framework.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.List;

/**
 * MQTT主题配置对象 mqtt_topic_config
 *
 * @author shzg
 * @date 2026-04-08
 */
public class MqttTopicConfig extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 项目编码（如 tangshan） */
    @Excel(name = "项目编码")
    private String project;

    /** 仓库编码（如 dianchi） */
    @Excel(name = "仓库编码")
    private String warehouse;

    /** 所属部门ID */
    @Excel(name = "部门ID")
    private Long deptId;

    /** 所属部门名称 */
    @Excel(name = "部门名称")
    private String deptName;

    /** 🔥 数据权限（部门ID集合） */
    private List<Long> deptIds;

    /** 上行订阅Topic */
    @Excel(name = "上行Topic")
    private String topicUp;

    /** 下行Topic前缀 */
    @Excel(name = "下行Topic前缀")
    private String topicDownPrefix;

    /** 状态（0启用 1停用） */
    @Excel(name = "状态", readConverterExp = "0=启用,1=停用")
    private String status;

    /** 删除标识（0正常 1删除） */
    @Excel(name = "删除标识", readConverterExp = "0=正常,1=删除")
    private String isDelete;

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

    public Long getId()
    {
        return id;
    }

    public void setProject(String project)
    {
        this.project = project;
    }

    public String getProject()
    {
        return project;
    }

    public void setWarehouse(String warehouse)
    {
        this.warehouse = warehouse;
    }

    public String getWarehouse()
    {
        return warehouse;
    }

    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }

    public void setDeptName(String deptName)
    {
        this.deptName = deptName;
    }

    public String getDeptName()
    {
        return deptName;
    }

    public void setDeptIds(List<Long> deptIds)
    {
        this.deptIds = deptIds;
    }

    public List<Long> getDeptIds()
    {
        return deptIds;
    }

    public void setTopicUp(String topicUp)
    {
        this.topicUp = topicUp;
    }

    public String getTopicUp()
    {
        return topicUp;
    }

    public void setTopicDownPrefix(String topicDownPrefix)
    {
        this.topicDownPrefix = topicDownPrefix;
    }

    public String getTopicDownPrefix()
    {
        return topicDownPrefix;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setIsDelete(String isDelete)
    {
        this.isDelete = isDelete;
    }

    public String getIsDelete()
    {
        return isDelete;
    }

    @Override
    public String toString()
    {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("project", getProject())
                .append("warehouse", getWarehouse())
                .append("deptId", getDeptId())
                .append("deptName", getDeptName())
                .append("deptIds", getDeptIds())
                .append("topicUp", getTopicUp())
                .append("topicDownPrefix", getTopicDownPrefix())
                .append("status", getStatus())
                .append("remark", getRemark())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("isDelete", getIsDelete())
                .toString();
    }
}