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")]
public async Task<ActionResult<List<NotificationDto>>> 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);

View File

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