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,25 +24,32 @@ 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
Id = n.Id, select new NotificationDto
Tipo = n.Tipo, {
Titulo = n.Titulo, Id = notification.Id,
Mensagem = n.Mensagem, Tipo = notification.Tipo,
Data = n.Data, Titulo = notification.Titulo,
ReferenciaData = n.ReferenciaData, Mensagem = notification.Mensagem,
DiasParaVencer = n.DiasParaVencer, Data = notification.Data,
Lida = n.Lida, ReferenciaData = notification.ReferenciaData,
LidaEm = n.LidaEm, DiasParaVencer = notification.DiasParaVencer,
VigenciaLineId = n.VigenciaLineId, Lida = notification.Lida,
Cliente = n.Cliente, LidaEm = notification.LidaEm,
Linha = n.Linha 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(); .ToListAsync();
return Ok(items); return Ok(items);

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; }
} }