Expose vigencia details in notifications

This commit is contained in:
Eduardo Lopes 2026-02-02 10:37:39 -03:00
parent 6c88c3ebfd
commit 71ab348bc3
2 changed files with 31 additions and 19 deletions

View File

@ -24,24 +24,31 @@ public class NotificationsController : ControllerBase
[HttpGet("/notifications")] [HttpGet("/notifications")]
public async Task<ActionResult<List<NotificationDto>>> GetNotifications() public async Task<ActionResult<List<NotificationDto>>> GetNotifications()
{ {
var query = _db.Notifications.AsNoTracking(); var items = await (
from notification in _db.Notifications.AsNoTracking()
var items = await query join vigencia in _db.VigenciaLines.AsNoTracking()
.OrderByDescending(n => n.Data) on notification.VigenciaLineId equals vigencia.Id into vigencias
.Select(n => new NotificationDto from vigencia in vigencias.DefaultIfEmpty()
orderby notification.Data descending
select new NotificationDto
{ {
Id = n.Id, Id = notification.Id,
Tipo = n.Tipo, Tipo = notification.Tipo,
Titulo = n.Titulo, Titulo = notification.Titulo,
Mensagem = n.Mensagem, Mensagem = notification.Mensagem,
Data = n.Data, Data = notification.Data,
ReferenciaData = n.ReferenciaData, ReferenciaData = notification.ReferenciaData,
DiasParaVencer = n.DiasParaVencer, DiasParaVencer = notification.DiasParaVencer,
Lida = n.Lida, Lida = notification.Lida,
LidaEm = n.LidaEm, LidaEm = notification.LidaEm,
VigenciaLineId = n.VigenciaLineId, VigenciaLineId = notification.VigenciaLineId,
Cliente = n.Cliente, Cliente = notification.Cliente ?? vigencia.Cliente,
Linha = n.Linha Linha = notification.Linha ?? vigencia.Linha,
Conta = vigencia.Conta,
Usuario = notification.Usuario ?? vigencia.Usuario,
PlanoContrato = vigencia.PlanoContrato,
DtEfetivacaoServico = vigencia.DtEfetivacaoServico,
DtTerminoFidelizacao = vigencia.DtTerminoFidelizacao
}) })
.ToListAsync(); .ToListAsync();

View File

@ -14,4 +14,9 @@ public class NotificationDto
public Guid? VigenciaLineId { get; set; } public Guid? VigenciaLineId { get; set; }
public string? Cliente { get; set; } public string? Cliente { get; set; }
public string? Linha { 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; }
} }