using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using UoocProgress.Api.Services; namespace UoocProgress.Api.Controllers; [ApiController] [Authorize(Policy = "AdminOnly")] [Route("api/admin/brush")] public sealed class AdminBrushController(VideoBrushService brushService) : ControllerBase { [HttpGet("tasks")] public ActionResult> GetTasks() => Ok(brushService.GetAllTasks()); [HttpPost("stop/{userId:long}")] public IActionResult Stop(long userId) { brushService.AdminStop(userId); return NoContent(); } [HttpPost("stop-all")] public IActionResult StopAll() { brushService.StopAll(); return NoContent(); } [HttpGet("config")] public ActionResult GetConfig() => Ok(brushService.Config); [HttpPut("config")] public ActionResult UpdateConfig([FromBody] BrushSystemConfig config) { brushService.Config.PauseNewTasks = config.PauseNewTasks; return Ok(brushService.Config); } }