using Microsoft.AspNetCore.Mvc; using System; using System.IO; using System.Threading.Tasks; using WhatsappPromo.Core.Models; using WhatsappPromo.Core.Services; namespace WhatsappPromo.Worker.Controllers { [ApiController] [Route("api/[controller]")] public class ConfigController : ControllerBase { private readonly IConfigService _configService; public ConfigController(IConfigService configService) { _configService = configService; } [HttpGet] public async Task GetConfig() { var config = await _configService.GetConfigAsync(); return Ok(config); } [HttpPost] public async Task UpdateConfig([FromBody] SystemConfig config) { // Validar ruta if (!string.IsNullOrEmpty(config.DownloadPath)) { try { Directory.CreateDirectory(config.DownloadPath); } catch (Exception ex) { return BadRequest($"Ruta inválida: {ex.Message}"); } } await _configService.UpdateConfigAsync(config); return Ok(config); } [HttpPost("start")] public async Task Start() { var config = await _configService.GetConfigAsync(); config.IsActive = true; await _configService.UpdateConfigAsync(config); return Ok(new { status = "Starting" }); } [HttpPost("stop")] public async Task Stop() { var config = await _configService.GetConfigAsync(); config.IsActive = false; await _configService.UpdateConfigAsync(config); return Ok(new { status = "Stopping" }); } } }