package com.dcs.hnyz.domain;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.dcs.common.annotation.Excel;
import com.dcs.common.core.domain.BaseEntity;

import com.fasterxml.jackson.annotation.JsonFormat;


import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.IdType;

/**
 * 模型组件管理对象 model_component
 *
 * @author hmy
 * @date 2025-07-04
 */

@Data
@TableName("model_component")
public class ModelComponent extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 模型唯一 ID
     */
    @TableId(value = "model_id", type = IdType.AUTO)
    private Long modelId;

    /**
     * 模型名称（如 储罐A、管道X）
     */
    @Excel(name = "模型名称")
    @TableField(value = "model_name")
    private String modelName;

    /**
     * 模型类型（如 tank、pipeline、sensor）
     */
    @Excel(name = "模型类型", readConverterExp = "tank、pipeline、sensor")
    @TableField(value = "model_type")
    private String modelType;

    /**
     * 前端组件名（如 M1Tank）
     */
    @Excel(name = "前端组件名")
    @TableField(value = "component_name")
    private String componentName;

    /**
     * 组件类型（如 icon、component）
     */
    @Excel(name = "组件类型", readConverterExp = "icon、component")
    @TableField(value = "component_type")
    private String componentType;

    /**
     * 组件层级
     */
    @JsonProperty("zIndex")
    @Excel(name = "组件层级")
    @TableField(value = "z_index")
    private Integer zIndex;

    /**
     * icon 类型模型对应 class 名
     */
    @Excel(name = "icon 类型模型对应 class 名")
    @TableField(value = "icon_class")
    private String iconClass;

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


}
