Files
KArtSell.Aegis/docs/Design/kbx-foundation-v52-fe-operational-navigation-screen-anatomy/backend/Shared/Runtime/KbxOperationRunRepository.cs
T
kjh2064 c41e5063b7 chore: remove kbx-foundation-v36 reference (superseded by v4 implementation)
Removed entire kbx-foundation-v36 directory as it's been replaced by
the new KBX Foundation v4 patterns implemented in this session:
- Registry-driven screen definitions
- Density-aware UI adapter components
- Feature module templates (ShadowRun, Models)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-08-12 01:39:58 +09:00

25 lines
1.1 KiB
C#

using Dapper;
using Npgsql;
namespace Kbx.Shared.Runtime;
public sealed class KbxOperationRunRepository(NpgsqlDataSource dataSource)
{
public async Task<IReadOnlyList<KbxOperationRunDto>> GetRecentAsync(Guid tenantId, Guid userId, int limit, CancellationToken ct)
{
const string sql = """
select id, operation_type as Type, title, source_screen_id as SourceScreenId,
status, requested_at as RequestedAt, started_at as StartedAt,
completed_at as CompletedAt, processed, total, succeeded, failed,
correlation_id as CorrelationId, result_message as ResultMessage
from kbx.operation_runs
where tenant_id=@tenantId and user_id=@userId
order by requested_at desc
limit @limit;
""";
await using var connection = await dataSource.OpenConnectionAsync(ct);
var rows = await connection.QueryAsync<KbxOperationRunDto>(new CommandDefinition(sql, new { tenantId, userId, limit = Math.Clamp(limit, 1, 50) }, cancellationToken: ct));
return rows.AsList();
}
}