using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using DorkNet.Server.Data; namespace DorkNet.Server.Controllers.API.PlayersBanned; /// /// api.{rec.net,localhost}/api/PlayersBanned/v1/all — current global /// ban list. The watch's mod panel queries this on open. /// [ApiController] public class PlayersBannedController(DorkNetDbContext db) : ControllerBase { [HttpGet("api/PlayersBanned/v1/all")] public async Task All() { var now = DateTime.UtcNow; var rows = await db.Players .Where(p => p.BannedUntil != null && p.BannedUntil > now) .Select(p => new { PlayerId = (int)p.Id, p.Username, BannedUntil = p.BannedUntil, }) .ToListAsync(); return Ok(rows); } }