From 71ab348bc39a4806ba9468c5eae892625269e566 Mon Sep 17 00:00:00 2001 From: Eduardo Lopes <155753879+eduardolopesx03@users.noreply.github.com> Date: Mon, 2 Feb 2026 10:37:39 -0300 Subject: [PATCH] Expose vigencia details in notifications --- Controllers/NotificationsController.cs | 45 +++++++++++++++----------- Dtos/NotificationDto.cs | 5 +++ 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/Controllers/NotificationsController.cs b/Controllers/NotificationsController.cs index 21d6c85..c211428 100644 --- a/Controllers/NotificationsController.cs +++ b/Controllers/NotificationsController.cs @@ -24,25 +24,32 @@ public class NotificationsController : ControllerBase [HttpGet("/notifications")] public async Task>> GetNotifications() { - var query = _db.Notifications.AsNoTracking(); - - var items = await query - .OrderByDescending(n => n.Data) - .Select(n => new NotificationDto - { - Id = n.Id, - Tipo = n.Tipo, - Titulo = n.Titulo, - Mensagem = n.Mensagem, - Data = n.Data, - ReferenciaData = n.ReferenciaData, - DiasParaVencer = n.DiasParaVencer, - Lida = n.Lida, - LidaEm = n.LidaEm, - VigenciaLineId = n.VigenciaLineId, - Cliente = n.Cliente, - Linha = n.Linha - }) + var items = await ( + from notification in _db.Notifications.AsNoTracking() + join vigencia in _db.VigenciaLines.AsNoTracking() + on notification.VigenciaLineId equals vigencia.Id into vigencias + from vigencia in vigencias.DefaultIfEmpty() + orderby notification.Data descending + select new NotificationDto + { + Id = notification.Id, + Tipo = notification.Tipo, + Titulo = notification.Titulo, + Mensagem = notification.Mensagem, + Data = notification.Data, + ReferenciaData = notification.ReferenciaData, + DiasParaVencer = notification.DiasParaVencer, + Lida = notification.Lida, + LidaEm = notification.LidaEm, + VigenciaLineId = notification.VigenciaLineId, + Cliente = notification.Cliente ?? vigencia.Cliente, + Linha = notification.Linha ?? vigencia.Linha, + Conta = vigencia.Conta, + Usuario = notification.Usuario ?? vigencia.Usuario, + PlanoContrato = vigencia.PlanoContrato, + DtEfetivacaoServico = vigencia.DtEfetivacaoServico, + DtTerminoFidelizacao = vigencia.DtTerminoFidelizacao + }) .ToListAsync(); return Ok(items); diff --git a/Dtos/NotificationDto.cs b/Dtos/NotificationDto.cs index 0d7c7e7..6d63e34 100644 --- a/Dtos/NotificationDto.cs +++ b/Dtos/NotificationDto.cs @@ -14,4 +14,9 @@ public class NotificationDto public Guid? VigenciaLineId { get; set; } public string? Cliente { get; set; } public string? Linha { get; set; } + public string? Conta { get; set; } + public string? Usuario { get; set; } + public string? PlanoContrato { get; set; } + public DateTime? DtEfetivacaoServico { get; set; } + public DateTime? DtTerminoFidelizacao { get; set; } }