package com.example.system.controller;

import com.example.system.common.R;
import com.example.system.pojo.GenChartByAiRequest;
import com.example.system.pojo.BiResponse;
import com.example.system.service.ChartService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

/**
 * 智能分析控制器
 */
@RestController
@RequestMapping("/api/chart")
public class ChartController {

    @Autowired
    private ChartService chartService;

    /**
     * AI生成图表分析
     *
     * @param file 上传的Excel文件
//     * @param genChartByAiRequest 分析请求参数
     * @return 分析结果
     */
    @CrossOrigin
    @PostMapping("/gen")
    public R<BiResponse> genChartByAi(@RequestParam("file") MultipartFile file,
                                      @RequestParam(value = "name", required = false) String name,
                                      @RequestParam("goal") String goal,
                                      @RequestParam(value = "chartType", required = false) String chartType) {
        // 构建请求对象
        GenChartByAiRequest request = new GenChartByAiRequest();
        request.setName(name);
        request.setGoal(goal);
        request.setChartType(chartType);
//        request.setAdminId(adminId);

        // 调用服务处理
        return chartService.genChartByAi(file, request);
    }

    /**
     * 获取示例提示
     *
     * @return 示例提示列表
     */
    @CrossOrigin
    @GetMapping("/examples")
    public R<Object> getExamples() {
        String[] examples = {
                "分析学生成绩分布情况，使用柱状图",
                "分析各学院参与竞赛人数占比，使用饼图",
                "分析近五年竞赛获奖数量趋势，使用折线图",
                "分析不同竞赛类型的参与人数对比，使用条形图",
                "分析男女生参与各类竞赛的比例，使用堆叠柱状图"
        };

        return R.success("获取成功", examples);
    }

    /**
     * 获取支持的图表类型
     *
     * @return 图表类型列表
     */
    @CrossOrigin
    @GetMapping("/chart-types")
    public R<Object> getChartTypes() {
        String[] chartTypes = {
                "柱状图",
                "折线图",
                "饼图",
                "散点图",
                "雷达图",
                "热力图",
                "漏斗图"
        };

        return R.success("获取成功", chartTypes);
    }
}