using Bitget_Server.Domain.Enums;
using Bitget_Server.Infrastructure.Bitget;
using Microsoft.AspNetCore.Mvc;
namespace Bitget_Server.Api.Controllers;
///
/// 기존 WinForms 의 BitGetWebSocektStart / closeWebSocket 버튼 REST 화.
///
[ApiController]
[Route("api/websocket")]
[Produces("application/json")]
public class WebSocketController : ControllerBase
{
private readonly BitgetWebSocketClient _ws;
private readonly ILogger _logger;
public WebSocketController(BitgetWebSocketClient ws, ILogger logger)
{
_ws = ws;
_logger = logger;
}
/// 현재 WebSocket 연결 상태.
[HttpGet("status")]
[ProducesResponseType(typeof(object), StatusCodes.Status200OK)]
public IActionResult GetStatus() => Ok(new { connected = _ws.IsConnected });
///
/// WebSocket 연결 시작. subscribeArgs 는 Bitget 공식 포맷의 args 리스트.
/// 예: [{"instType":"USDT-FUTURES","channel":"ticker","instId":"BTCUSDT"}]
///
[HttpPost("start")]
[ProducesResponseType(StatusCodes.Status202Accepted)]
[ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status500InternalServerError)]
public async Task Start(
[FromQuery] BitgetWebSocketType type,
[FromBody] IEnumerable