package com.ssyf.task.websocket;

import com.ssyf.common.web.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@Api(tags = "机器人WS监控管理")
@RestController
@RequestMapping("/api/robot/ws")
public class WsMonitorController {

    @Autowired
    private WsStatisticsService statsService;

    @Autowired
    private LiveRoomWsManager wsManager;

    @ApiOperation("获取大屏总览数据")
    @GetMapping("/stats/overview")
    public Result<WsBigScreenData> getOverview() {
        return Result.success(statsService.getBigScreenOverview());
    }

    @ApiOperation("获取指定直播间详细WS状态")
    @GetMapping("/stats/room/{roomId}")
    public Result<Object> getRoomStats(@PathVariable Integer roomId) {
        // 这里可以直接从Redis Hash中取
        // 为了演示，假设 statsService 有个 getRoomDetail 方法
        // return Result.success(statsService.getRoomDetail(roomId));
        return Result.success(null); // 需补充实现
    }

    @ApiOperation("[运维] 强制断开并移除指定直播间连接")
    @PostMapping("/admin/disconnect/{roomId}")
    public Result<String> forceDisconnect(@PathVariable Integer roomId) {
        // 这种后门接口通常需要鉴权
        // wsManager 内部可以暴露一个 public remove 方法
        // 这里仅做示意
        return Result.success("指令已下发（需在Manager中实现对应public方法）");
    }
}