using Management.Data; using Management.Security; using Microsoft.AspNetCore.Mvc; using System.Text.Json; namespace Management.Controllers.Admin; /// /// Client activity log — queries tbAccessLog (populated by Gateway's AccessLogMiddleware). /// /// ENDPOINTS: /// POST /api/admin/client-activity/list - Paginated activity for a specific client /// POST /api/admin/client-activity/summary - Request counts + last-seen per client /// [ApiController] [Route("api/admin/client-activity")] public sealed class AdminClientActivityController : AdminControllerBase { private const string Proc = "spClientActivity"; public AdminClientActivityController(SqlService sql, ClientContext client, ILogger log) : base(sql, client, log) { } [HttpPost("list")] public Task List([FromBody] JsonElement body, CancellationToken ct) => CallProc(Proc, "list", body.ToString(), ct); [HttpPost("summary")] public Task Summary([FromBody] JsonElement body, CancellationToken ct) => CallProc(Proc, "summary", body.ToString(), ct); }