package com.tashow.cloud.ai.controller.admin.model.vo;

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

import java.util.List;

/**
 * 样本详情VO - 用于模型分析和差异筛查
 */
@Schema(description = "样本详情VO")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AiSampleDetailVO {

    @Schema(description = "样本ID")
    private Long id;

    @Schema(description = "样本名称")
    private String sampleName;

    @Schema(description = "样本文件地址")
    private String sampleFilePath;

    @Schema(description = "枚举标签列表")
    private List<TagInfo> enumTags;

    @Schema(description = "个性标签列表")
    private List<TagInfo> customTags;

    @Schema(description = "关联模型列表")
    private List<ModelInfo> relatedModels;

    /**
     * 标签信息
     */
    @Schema(description = "标签信息")
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class TagInfo {
        @Schema(description = "标签ID")
        private Long id;

        @Schema(description = "标签名称")
        private String tagName;


        @Schema(description = "枚举值")
        private String enumValue;

        @Schema(description = "分组名称")
        private String groupName;
    }

    /**
     * 模型信息
     */
    @Schema(description = "模型信息")
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class ModelInfo {
        @Schema(description = "模型ID")
        private Long id;

        @Schema(description = "模型名称")
        private String modelName;

        @Schema(description = "版本号")
        private String version;
    }
}
