using FastEndpoints;
using Kbx.Shared.Runtime;

namespace Kbx.Modules.Common.Runtime.Operations;

public sealed class Request { public int Limit { get; init; } = 20; }
public sealed class Endpoint(KbxOperationRunRepository repository) : Endpoint<Request, IReadOnlyList<KbxOperationRunDto>>
{
    public override void Configure() { Get("/api/kbx/runtime/operations"); Permissions("common.runtime.read"); }
    public override async Task HandleAsync(Request req, CancellationToken ct)
        => await Send.OkAsync(await repository.GetRecentAsync(RuntimeIdentity.TenantId(User), RuntimeIdentity.UserId(User), req.Limit, ct), ct);
}
