diff --git a/src/KArtSell.Host/Program.cs b/src/KArtSell.Host/Program.cs index 991e5c9c..a51e4a73 100644 --- a/src/KArtSell.Host/Program.cs +++ b/src/KArtSell.Host/Program.cs @@ -161,10 +161,7 @@ builder.Services.AddAuthorization(); builder.Services.AddSignalR(); builder.Services.AddSignalEngineModule(); builder.Services.AddModelOperationsModule(); -builder.Services.AddFastEndpoints(config => -{ - config.SerializerOptions.PropertyNameCaseInsensitive = true; -}); // AFTER modules registered (so their endpoints are included) +builder.Services.AddFastEndpoints(); // AFTER modules registered (so their endpoints are included) builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); diff --git a/src/KArtSell.Modules.ModelOperations/ShadowRun/Sql.cs b/src/KArtSell.Modules.ModelOperations/ShadowRun/Sql.cs index fa07c3d3..b02c44ab 100644 --- a/src/KArtSell.Modules.ModelOperations/ShadowRun/Sql.cs +++ b/src/KArtSell.Modules.ModelOperations/ShadowRun/Sql.cs @@ -53,6 +53,7 @@ public sealed class ShadowRunQueries(IDbConnectionFactory connectionFactory) /// /// Pre-insert shadow run with "Queued" status (no metrics yet). /// Called by InitiateShadowRunHandler to enable immediate polling. + /// Dapper: Convert DateOnly to string for SQL parameter (Dapper limitation). /// public async Task InsertShadowRunQueuedAsync( Guid runId, @@ -65,7 +66,7 @@ public sealed class ShadowRunQueries(IDbConnectionFactory connectionFactory) const string sql = """ insert into model_operations.shadow_run (run_id, model_id, window_start, window_end, status, created_at) - values (@RunId, @ModelId, @WindowStart, @WindowEnd, @Status, @CreatedAt) + values (@RunId, @ModelId, @WindowStart::date, @WindowEnd::date, @Status, @CreatedAt) """; await using var connection = await connectionFactory.OpenAsync(cancellationToken); @@ -76,8 +77,8 @@ public sealed class ShadowRunQueries(IDbConnectionFactory connectionFactory) { RunId = runId, ModelId = modelId, - WindowStart = windowStart, - WindowEnd = windowEnd, + WindowStart = windowStart.ToString("yyyy-MM-dd"), // PostgreSQL: ::date cast + WindowEnd = windowEnd.ToString("yyyy-MM-dd"), // PostgreSQL: ::date cast Status = "Queued", CreatedAt = createdAt },