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.math.BigDecimal;
import java.util.List;

@Schema(description = "管理后台 - 模型准确度分析")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AiModelAnalysisResultVO {

    @Schema(description = "样本分析列表")
    private List<SampleAnalysis> samples;

    @Schema(description = "样本分析")
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class SampleAnalysis {
        @Schema(description = "样本ID")
        private Long sampleId;

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

        @Schema(description = "枚举标签", example = "猫")
        private String enumTag;

        @Schema(description = "模型分析结果列表")
        private List<ModelAnalysisResult> modelResults;
    }

    @Schema(description = "模型分析结果")
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class ModelAnalysisResult {
        @Schema(description = "模型ID")
        private Long modelId;

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

        @Schema(description = "模型版本", example = "V1.0.0")
        private String modelVersion;

        @Schema(description = "物种识别结果", example = "猫")
        private String speciesResult;

        @Schema(description = "物种匹配度", example = "1.00")
        private BigDecimal speciesMatchRate;

        @Schema(description = "情绪识别结果", example = "兴奋")
        private String emotionResult;

        @Schema(description = "情绪匹配度", example = "0.95")
        private BigDecimal emotionMatchRate;
    }
}
