using GestionIntegral.Api.Dtos.Comunicaciones; using GestionIntegral.Api.Services.Comunicaciones; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace GestionIntegral.Api.Controllers.Comunicaciones { [Route("api/lotes-envio")] [ApiController] [Authorize] public class LotesEnvioController : ControllerBase { private readonly IEmailLogService _emailLogService; public LotesEnvioController(IEmailLogService emailLogService) { _emailLogService = emailLogService; } // GET: api/lotes-envio/123/detalles [HttpGet("{idLote:int}/detalles")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status403Forbidden)] [ProducesResponseType(StatusCodes.Status404NotFound)] public async Task GetDetallesLote(int idLote) { // Reutilizamos un permiso existente, ya que esta es una función de auditoría relacionada. var tienePermiso = User.IsInRole("SuperAdmin") || User.HasClaim(c => c.Type == "permission" && c.Value == "SU006"); if (!tienePermiso) { return Forbid(); } var detalles = await _emailLogService.ObtenerDetallesPorLoteId(idLote); // Devolvemos OK con un array vacío si no hay resultados, el frontend lo manejará. return Ok(detalles); } } }