Feat: Papelera de Avisos

- Se añade la sección de Papelera de Avisos para los avisos eliminados que serán removidos de los registros a los 60 días del cambio de estado. Es esta sección se permite restaurar un aviso eliminado al estado "Borrador".
This commit is contained in:
2026-02-26 20:17:52 -03:00
parent df777400ab
commit 0802dae400
5 changed files with 189 additions and 17 deletions

View File

@@ -74,8 +74,12 @@ public class ChatController : ControllerBase
public async Task<IActionResult> GetInbox(int userId)
{
// Obtener todas las conversaciones donde el usuario es remitente o destinatario
// Pero filtramos los que pertenecen a avisos eliminados (StatusID != 9)
var messages = await _context.ChatMessages
.Where(m => m.SenderID == userId || m.ReceiverID == userId)
.Join(_context.Ads, m => m.AdID, a => a.AdID, (m, a) => new { m, a })
.Where(x => x.a.StatusID != (int)AdStatusEnum.Deleted)
.Select(x => x.m)
.OrderByDescending(m => m.SentAt)
.ToListAsync();
@@ -119,7 +123,8 @@ public class ChatController : ControllerBase
}
var count = await _context.ChatMessages
.CountAsync(m => m.ReceiverID == userId && !m.IsRead);
.Join(_context.Ads, m => m.AdID, a => a.AdID, (m, a) => new { m, a })
.CountAsync(x => x.m.ReceiverID == userId && !x.m.IsRead && x.a.StatusID != (int)AdStatusEnum.Deleted);
return Ok(new { count });
}