Search/AdvisoryAI and DAL conversion to EF finishes up. Preparation for microservices consolidation.

This commit is contained in:
master
2026-02-25 18:19:22 +02:00
parent 4db038123b
commit 63c70a6d37
447 changed files with 52257 additions and 2636 deletions

View File

@@ -29,13 +29,16 @@ public sealed class PostgresTimeTravelRepository : ITimeTravelRepository
private readonly NpgsqlDataSource _dataSource;
private readonly ISnapshotRepository _snapshotRepository;
private readonly JsonSerializerOptions _jsonOptions;
private readonly TimeProvider _timeProvider;
public PostgresTimeTravelRepository(
NpgsqlDataSource dataSource,
ISnapshotRepository snapshotRepository)
ISnapshotRepository snapshotRepository,
TimeProvider? timeProvider = null)
{
_dataSource = dataSource;
_snapshotRepository = snapshotRepository;
_timeProvider = timeProvider ?? TimeProvider.System;
_jsonOptions = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
@@ -49,13 +52,15 @@ public sealed class PostgresTimeTravelRepository : ITimeTravelRepository
{
const string sql = """
SELECT COALESCE(MAX(sequence_number), 0) as seq,
COALESCE(MAX(recorded_at), NOW()) as ts
COALESCE(MAX(recorded_at), @now) as ts
FROM ledger_events
WHERE tenant_id = @tenantId
""";
var now = _timeProvider.GetUtcNow();
await using var cmd = _dataSource.CreateCommand(sql);
cmd.Parameters.AddWithValue("tenantId", tenantId);
cmd.Parameters.AddWithValue("now", now);
await using var reader = await cmd.ExecuteReaderAsync(ct);
await reader.ReadAsync(ct);
@@ -793,7 +798,7 @@ public sealed class PostgresTimeTravelRepository : ITimeTravelRepository
TimeSpan threshold,
CancellationToken ct = default)
{
var checkedAt = DateTimeOffset.UtcNow;
var checkedAt = _timeProvider.GetUtcNow();
const string sql = """
SELECT