package cn.iocoder.yudao.module.mes.controller.admin.organization.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "管理后台 - 产线数据运行分析 树形结构")
public class LineAnalysisTreeDTO {

    @Schema(description = "产线节点列表")
    private List<LineNode> lines = new ArrayList<>();

    // 产线节点
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class LineNode {
        private Long id;        // 产线ID
        private String name;    // 产线名称
        private String orgClass;  // 组织等级
        private Long parentId;
//        private List<EquipmentNode> equipments = new ArrayList<>();
        private List<EquipmentNode> equipments;
        private List<LineNode> children;

    }

    // 设备节点
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class EquipmentNode {
        private Long id;        // 设备ID
        private String name;    // 设备名称
        private List<ParameterNode> parameters;
    }

    // 参数节点
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class ParameterNode {
        private Long id;        // 参数ID
        private String name;    // 参数名称 (对应attributeName)
        private String code;    // 参数编码 (对应attributeCode)
        private String type;    // 参数类型 (对应attributeType)
        private String dataType;// 数据类型
        private String unit;    // 单位
        private Double ratio;   // 倍率
    }
}