diff --git a/publish/Dapper.AOT.dll b/publish/Dapper.AOT.dll
new file mode 100644
index 00000000..49c3b48f
Binary files /dev/null and b/publish/Dapper.AOT.dll differ
diff --git a/publish/Dapper.dll b/publish/Dapper.dll
new file mode 100644
index 00000000..84d2de05
Binary files /dev/null and b/publish/Dapper.dll differ
diff --git a/publish/FastEndpoints.Attributes.dll b/publish/FastEndpoints.Attributes.dll
new file mode 100644
index 00000000..fa4614bf
Binary files /dev/null and b/publish/FastEndpoints.Attributes.dll differ
diff --git a/publish/FastEndpoints.Messaging.Core.dll b/publish/FastEndpoints.Messaging.Core.dll
new file mode 100644
index 00000000..861e651f
Binary files /dev/null and b/publish/FastEndpoints.Messaging.Core.dll differ
diff --git a/publish/FastEndpoints.dll b/publish/FastEndpoints.dll
new file mode 100644
index 00000000..22cc8e13
Binary files /dev/null and b/publish/FastEndpoints.dll differ
diff --git a/publish/FluentValidation.dll b/publish/FluentValidation.dll
new file mode 100644
index 00000000..bfd0db65
Binary files /dev/null and b/publish/FluentValidation.dll differ
diff --git a/publish/Hangfire.AspNetCore.dll b/publish/Hangfire.AspNetCore.dll
new file mode 100644
index 00000000..670102f0
Binary files /dev/null and b/publish/Hangfire.AspNetCore.dll differ
diff --git a/publish/Hangfire.Core.dll b/publish/Hangfire.Core.dll
new file mode 100644
index 00000000..0f7b1e15
Binary files /dev/null and b/publish/Hangfire.Core.dll differ
diff --git a/publish/Hangfire.NetCore.dll b/publish/Hangfire.NetCore.dll
new file mode 100644
index 00000000..788cba93
Binary files /dev/null and b/publish/Hangfire.NetCore.dll differ
diff --git a/publish/Hangfire.PostgreSql.dll b/publish/Hangfire.PostgreSql.dll
new file mode 100644
index 00000000..9616cd6b
Binary files /dev/null and b/publish/Hangfire.PostgreSql.dll differ
diff --git a/publish/KArtSell.BuildingBlocks.dll b/publish/KArtSell.BuildingBlocks.dll
new file mode 100644
index 00000000..61acc5de
Binary files /dev/null and b/publish/KArtSell.BuildingBlocks.dll differ
diff --git a/publish/KArtSell.BuildingBlocks.pdb b/publish/KArtSell.BuildingBlocks.pdb
new file mode 100644
index 00000000..7e33513d
Binary files /dev/null and b/publish/KArtSell.BuildingBlocks.pdb differ
diff --git a/publish/KArtSell.Host.deps.json b/publish/KArtSell.Host.deps.json
new file mode 100644
index 00000000..b8f47d85
--- /dev/null
+++ b/publish/KArtSell.Host.deps.json
@@ -0,0 +1,781 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v10.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v10.0": {
+ "KArtSell.Host/1.0.0": {
+ "dependencies": {
+ "FastEndpoints": "7.1.0",
+ "Hangfire.AspNetCore": "1.8.24",
+ "Hangfire.PostgreSql": "1.21.1",
+ "KArtSell.BuildingBlocks": "1.0.0",
+ "KArtSell.Modules.ModelOperations": "1.0.0",
+ "KArtSell.Modules.SignalEngine": "1.0.0",
+ "Newtonsoft.Json": "13.0.3",
+ "Npgsql": "10.0.3",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.17.0",
+ "OpenTelemetry.Extensions.Hosting": "1.17.0",
+ "OpenTelemetry.Instrumentation.AspNetCore": "1.17.0",
+ "OpenTelemetry.Instrumentation.Http": "1.17.0",
+ "OpenTelemetry.Instrumentation.Runtime": "1.17.0",
+ "Polly": "8.7.0",
+ "Serilog.AspNetCore": "10.0.0",
+ "Serilog.Settings.Configuration": "10.0.1",
+ "Serilog.Sinks.Console": "6.1.1",
+ "Swashbuckle.AspNetCore": "10.2.3"
+ },
+ "runtime": {
+ "KArtSell.Host.dll": {}
+ }
+ },
+ "Dapper/2.1.79": {
+ "runtime": {
+ "lib/net10.0/Dapper.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.1.79.29349"
+ }
+ }
+ },
+ "Dapper.AOT/1.0.48": {
+ "runtime": {
+ "lib/net8.0/Dapper.AOT.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "1.0.48.20364"
+ }
+ }
+ },
+ "FastEndpoints/7.1.0": {
+ "dependencies": {
+ "FastEndpoints.Attributes": "7.1.0",
+ "FastEndpoints.Messaging.Core": "7.1.0",
+ "FluentValidation": "12.0.0"
+ },
+ "runtime": {
+ "lib/net10.0/FastEndpoints.dll": {
+ "assemblyVersion": "7.1.0.0",
+ "fileVersion": "7.1.0.0"
+ }
+ }
+ },
+ "FastEndpoints.Attributes/7.1.0": {
+ "runtime": {
+ "lib/netstandard2.0/FastEndpoints.Attributes.dll": {
+ "assemblyVersion": "7.1.0.0",
+ "fileVersion": "7.1.0.0"
+ }
+ }
+ },
+ "FastEndpoints.Messaging.Core/7.1.0": {
+ "runtime": {
+ "lib/netstandard2.1/FastEndpoints.Messaging.Core.dll": {
+ "assemblyVersion": "7.1.0.0",
+ "fileVersion": "7.1.0.0"
+ }
+ }
+ },
+ "FluentValidation/12.0.0": {
+ "runtime": {
+ "lib/net8.0/FluentValidation.dll": {
+ "assemblyVersion": "12.0.0.0",
+ "fileVersion": "12.0.0.0"
+ }
+ }
+ },
+ "Hangfire.AspNetCore/1.8.24": {
+ "dependencies": {
+ "Hangfire.NetCore": "1.8.24"
+ },
+ "runtime": {
+ "lib/netcoreapp3.0/Hangfire.AspNetCore.dll": {
+ "assemblyVersion": "1.8.24.0",
+ "fileVersion": "1.8.24.0"
+ }
+ }
+ },
+ "Hangfire.Core/1.8.24": {
+ "dependencies": {
+ "Newtonsoft.Json": "13.0.3"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Hangfire.Core.dll": {
+ "assemblyVersion": "1.8.24.0",
+ "fileVersion": "1.8.24.0"
+ }
+ },
+ "resources": {
+ "lib/netstandard2.0/ca/Hangfire.Core.resources.dll": {
+ "locale": "ca"
+ },
+ "lib/netstandard2.0/de/Hangfire.Core.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Hangfire.Core.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fa/Hangfire.Core.resources.dll": {
+ "locale": "fa"
+ },
+ "lib/netstandard2.0/fr/Hangfire.Core.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/nb/Hangfire.Core.resources.dll": {
+ "locale": "nb"
+ },
+ "lib/netstandard2.0/nl/Hangfire.Core.resources.dll": {
+ "locale": "nl"
+ },
+ "lib/netstandard2.0/pt-BR/Hangfire.Core.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-PT/Hangfire.Core.resources.dll": {
+ "locale": "pt-PT"
+ },
+ "lib/netstandard2.0/pt/Hangfire.Core.resources.dll": {
+ "locale": "pt"
+ },
+ "lib/netstandard2.0/ru/Hangfire.Core.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/sv/Hangfire.Core.resources.dll": {
+ "locale": "sv"
+ },
+ "lib/netstandard2.0/tr-TR/Hangfire.Core.resources.dll": {
+ "locale": "tr-TR"
+ },
+ "lib/netstandard2.0/zh-TW/Hangfire.Core.resources.dll": {
+ "locale": "zh-TW"
+ },
+ "lib/netstandard2.0/zh/Hangfire.Core.resources.dll": {
+ "locale": "zh"
+ }
+ }
+ },
+ "Hangfire.NetCore/1.8.24": {
+ "dependencies": {
+ "Hangfire.Core": "1.8.24"
+ },
+ "runtime": {
+ "lib/netstandard2.1/Hangfire.NetCore.dll": {
+ "assemblyVersion": "1.8.24.0",
+ "fileVersion": "1.8.24.0"
+ }
+ }
+ },
+ "Hangfire.PostgreSql/1.21.1": {
+ "dependencies": {
+ "Dapper": "2.1.79",
+ "Dapper.AOT": "1.0.48",
+ "Hangfire.Core": "1.8.24",
+ "Npgsql": "10.0.3"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Hangfire.PostgreSql.dll": {
+ "assemblyVersion": "1.21.1.0",
+ "fileVersion": "1.21.1.0"
+ }
+ }
+ },
+ "Microsoft.Extensions.DependencyModel/10.0.0": {
+ "runtime": {
+ "lib/net10.0/Microsoft.Extensions.DependencyModel.dll": {
+ "assemblyVersion": "10.0.0.0",
+ "fileVersion": "10.0.25.52411"
+ }
+ }
+ },
+ "Microsoft.OpenApi/2.7.5": {
+ "runtime": {
+ "lib/net8.0/Microsoft.OpenApi.dll": {
+ "assemblyVersion": "2.7.5.0",
+ "fileVersion": "2.7.5.0"
+ }
+ }
+ },
+ "Newtonsoft.Json/13.0.3": {
+ "runtime": {
+ "lib/net6.0/Newtonsoft.Json.dll": {
+ "assemblyVersion": "13.0.0.0",
+ "fileVersion": "13.0.3.27908"
+ }
+ }
+ },
+ "Npgsql/10.0.3": {
+ "runtime": {
+ "lib/net10.0/Npgsql.dll": {
+ "assemblyVersion": "10.0.3.0",
+ "fileVersion": "10.0.3.0"
+ }
+ }
+ },
+ "OpenTelemetry/1.17.0": {
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.17.0"
+ },
+ "runtime": {
+ "lib/net10.0/OpenTelemetry.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "1.17.0.2115"
+ }
+ }
+ },
+ "OpenTelemetry.Api/1.17.0": {
+ "runtime": {
+ "lib/net10.0/OpenTelemetry.Api.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "1.17.0.2115"
+ }
+ }
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions/1.17.0": {
+ "dependencies": {
+ "OpenTelemetry.Api": "1.17.0"
+ },
+ "runtime": {
+ "lib/net10.0/OpenTelemetry.Api.ProviderBuilderExtensions.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "1.17.0.2115"
+ }
+ }
+ },
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol/1.17.0": {
+ "dependencies": {
+ "OpenTelemetry": "1.17.0"
+ },
+ "runtime": {
+ "lib/net10.0/OpenTelemetry.Exporter.OpenTelemetryProtocol.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "1.17.0.2115"
+ }
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting/1.17.0": {
+ "dependencies": {
+ "OpenTelemetry": "1.17.0"
+ },
+ "runtime": {
+ "lib/net10.0/OpenTelemetry.Extensions.Hosting.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "1.17.0.2115"
+ }
+ }
+ },
+ "OpenTelemetry.Instrumentation.AspNetCore/1.17.0": {
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.17.0"
+ },
+ "runtime": {
+ "lib/net10.0/OpenTelemetry.Instrumentation.AspNetCore.dll": {
+ "assemblyVersion": "1.17.0.1204",
+ "fileVersion": "1.17.0.1204"
+ }
+ }
+ },
+ "OpenTelemetry.Instrumentation.Http/1.17.0": {
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.17.0"
+ },
+ "runtime": {
+ "lib/net10.0/OpenTelemetry.Instrumentation.Http.dll": {
+ "assemblyVersion": "1.17.0.1210",
+ "fileVersion": "1.17.0.1210"
+ }
+ }
+ },
+ "OpenTelemetry.Instrumentation.Runtime/1.17.0": {
+ "dependencies": {
+ "OpenTelemetry.Api": "1.17.0"
+ },
+ "runtime": {
+ "lib/net10.0/OpenTelemetry.Instrumentation.Runtime.dll": {
+ "assemblyVersion": "1.17.0.1215",
+ "fileVersion": "1.17.0.1215"
+ }
+ }
+ },
+ "Polly/8.7.0": {
+ "dependencies": {
+ "Polly.Core": "8.7.0"
+ },
+ "runtime": {
+ "lib/net6.0/Polly.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.7.0.5801"
+ }
+ }
+ },
+ "Polly.Core/8.7.0": {
+ "runtime": {
+ "lib/net8.0/Polly.Core.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.7.0.5801"
+ }
+ }
+ },
+ "Serilog/4.3.0": {
+ "runtime": {
+ "lib/net9.0/Serilog.dll": {
+ "assemblyVersion": "4.3.0.0",
+ "fileVersion": "4.3.0.0"
+ }
+ }
+ },
+ "Serilog.AspNetCore/10.0.0": {
+ "dependencies": {
+ "Serilog": "4.3.0",
+ "Serilog.Extensions.Hosting": "10.0.0",
+ "Serilog.Formatting.Compact": "3.0.0",
+ "Serilog.Settings.Configuration": "10.0.1",
+ "Serilog.Sinks.Console": "6.1.1",
+ "Serilog.Sinks.Debug": "3.0.0",
+ "Serilog.Sinks.File": "7.0.0"
+ },
+ "runtime": {
+ "lib/net10.0/Serilog.AspNetCore.dll": {
+ "assemblyVersion": "10.0.0.0",
+ "fileVersion": "10.0.0.0"
+ }
+ }
+ },
+ "Serilog.Extensions.Hosting/10.0.0": {
+ "dependencies": {
+ "Serilog": "4.3.0",
+ "Serilog.Extensions.Logging": "10.0.0"
+ },
+ "runtime": {
+ "lib/net10.0/Serilog.Extensions.Hosting.dll": {
+ "assemblyVersion": "10.0.0.0",
+ "fileVersion": "10.0.0.0"
+ }
+ }
+ },
+ "Serilog.Extensions.Logging/10.0.0": {
+ "dependencies": {
+ "Serilog": "4.3.0"
+ },
+ "runtime": {
+ "lib/net10.0/Serilog.Extensions.Logging.dll": {
+ "assemblyVersion": "10.0.0.0",
+ "fileVersion": "10.0.0.0"
+ }
+ }
+ },
+ "Serilog.Formatting.Compact/3.0.0": {
+ "dependencies": {
+ "Serilog": "4.3.0"
+ },
+ "runtime": {
+ "lib/net8.0/Serilog.Formatting.Compact.dll": {
+ "assemblyVersion": "3.0.0.0",
+ "fileVersion": "3.0.0.0"
+ }
+ }
+ },
+ "Serilog.Settings.Configuration/10.0.1": {
+ "dependencies": {
+ "Microsoft.Extensions.DependencyModel": "10.0.0",
+ "Serilog": "4.3.0"
+ },
+ "runtime": {
+ "lib/net10.0/Serilog.Settings.Configuration.dll": {
+ "assemblyVersion": "10.0.1.0",
+ "fileVersion": "10.0.1.0"
+ }
+ }
+ },
+ "Serilog.Sinks.Console/6.1.1": {
+ "dependencies": {
+ "Serilog": "4.3.0"
+ },
+ "runtime": {
+ "lib/net8.0/Serilog.Sinks.Console.dll": {
+ "assemblyVersion": "6.1.1.0",
+ "fileVersion": "6.1.1.0"
+ }
+ }
+ },
+ "Serilog.Sinks.Debug/3.0.0": {
+ "dependencies": {
+ "Serilog": "4.3.0"
+ },
+ "runtime": {
+ "lib/net8.0/Serilog.Sinks.Debug.dll": {
+ "assemblyVersion": "3.0.0.0",
+ "fileVersion": "3.0.0.0"
+ }
+ }
+ },
+ "Serilog.Sinks.File/7.0.0": {
+ "dependencies": {
+ "Serilog": "4.3.0"
+ },
+ "runtime": {
+ "lib/net9.0/Serilog.Sinks.File.dll": {
+ "assemblyVersion": "7.0.0.0",
+ "fileVersion": "7.0.0.0"
+ }
+ }
+ },
+ "Swashbuckle.AspNetCore/10.2.3": {
+ "dependencies": {
+ "Swashbuckle.AspNetCore.Swagger": "10.2.3",
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.2.3",
+ "Swashbuckle.AspNetCore.SwaggerUI": "10.2.3"
+ }
+ },
+ "Swashbuckle.AspNetCore.Swagger/10.2.3": {
+ "dependencies": {
+ "Microsoft.OpenApi": "2.7.5"
+ },
+ "runtime": {
+ "lib/net10.0/Swashbuckle.AspNetCore.Swagger.dll": {
+ "assemblyVersion": "10.2.3.0",
+ "fileVersion": "10.2.3.2721"
+ }
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerGen/10.2.3": {
+ "dependencies": {
+ "Swashbuckle.AspNetCore.Swagger": "10.2.3"
+ },
+ "runtime": {
+ "lib/net10.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
+ "assemblyVersion": "10.2.3.0",
+ "fileVersion": "10.2.3.2721"
+ }
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerUI/10.2.3": {
+ "runtime": {
+ "lib/net10.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
+ "assemblyVersion": "10.2.3.0",
+ "fileVersion": "10.2.3.2721"
+ }
+ }
+ },
+ "KArtSell.BuildingBlocks/1.0.0": {
+ "dependencies": {
+ "Dapper": "2.1.79",
+ "Npgsql": "10.0.3"
+ },
+ "runtime": {
+ "KArtSell.BuildingBlocks.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "1.0.0.0"
+ }
+ }
+ },
+ "KArtSell.Modules.ModelOperations/1.0.0": {
+ "dependencies": {
+ "Dapper": "2.1.79",
+ "FastEndpoints": "7.1.0",
+ "Hangfire.Core": "1.8.24",
+ "KArtSell.BuildingBlocks": "1.0.0",
+ "Newtonsoft.Json": "13.0.3"
+ },
+ "runtime": {
+ "KArtSell.Modules.ModelOperations.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "1.0.0.0"
+ }
+ }
+ },
+ "KArtSell.Modules.SignalEngine/1.0.0": {
+ "dependencies": {
+ "Dapper": "2.1.79",
+ "FastEndpoints": "7.1.0",
+ "KArtSell.BuildingBlocks": "1.0.0"
+ },
+ "runtime": {
+ "KArtSell.Modules.SignalEngine.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "1.0.0.0"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "KArtSell.Host/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Dapper/2.1.79": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-8YijbzgTfmqmQOnVNorYM6K++pxqnW3nJ4aC1sRHzxUA2CcuoJ9gsTem3kgBnPRMc38zZHl4Esb6hAezXIEEuw==",
+ "path": "dapper/2.1.79",
+ "hashPath": "dapper.2.1.79.nupkg.sha512"
+ },
+ "Dapper.AOT/1.0.48": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rsLM3yKr4g+YKKox9lhc8D+kz67P7Q9+xdyn1LmCsoYr1kYpJSm+Nt6slo5UrfUrcTiGJ57zUlyO8XUdV7G7iA==",
+ "path": "dapper.aot/1.0.48",
+ "hashPath": "dapper.aot.1.0.48.nupkg.sha512"
+ },
+ "FastEndpoints/7.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-0GmWCYlzDz6bXj8FeRDAG3XxaZ6EeaQg8EdlOCo+HYWSHjbKSt5WpbxR8RznCLJGNkDRNZvnBaVHZg/4hsGKoA==",
+ "path": "fastendpoints/7.1.0",
+ "hashPath": "fastendpoints.7.1.0.nupkg.sha512"
+ },
+ "FastEndpoints.Attributes/7.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6JpMZ1smMs2bMT6IY+sezbz4qLiBDePjiQ9jn4L3NTnAO6jH7eEEuhxGVl8CiawbCZuslPBPsnHfwCp7emncXQ==",
+ "path": "fastendpoints.attributes/7.1.0",
+ "hashPath": "fastendpoints.attributes.7.1.0.nupkg.sha512"
+ },
+ "FastEndpoints.Messaging.Core/7.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-P9cp727v7fLYaMNRh79dG2tnSAwp35dMK+VflsybITvnrv+H+UCAlESgVisI6K34oWWG/LOvz5GWRkE00QssIw==",
+ "path": "fastendpoints.messaging.core/7.1.0",
+ "hashPath": "fastendpoints.messaging.core.7.1.0.nupkg.sha512"
+ },
+ "FluentValidation/12.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-8NVLxtMUXynRHJIX3Hn1ACovaqZIJASufXIIFkD0EUbcd5PmMsL1xUD5h548gCezJ5BzlITaR9CAMrGe29aWpA==",
+ "path": "fluentvalidation/12.0.0",
+ "hashPath": "fluentvalidation.12.0.0.nupkg.sha512"
+ },
+ "Hangfire.AspNetCore/1.8.24": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-K7eugZIFcBgGI+lI6Z3H9a7Ax6ZkauWjOUJxE5xawu5UQmH+WS7gXBlar1zGUqLTWqWxNAMj+K95OE0zvAtHNg==",
+ "path": "hangfire.aspnetcore/1.8.24",
+ "hashPath": "hangfire.aspnetcore.1.8.24.nupkg.sha512"
+ },
+ "Hangfire.Core/1.8.24": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-XhiE55abcXXw4jEe0EClnU1fainkfi7ZVINbcCB+Se6ZatfVAglLsvNc6wtTMq5aZz0tv2DuW+U5lx1R0DcWOg==",
+ "path": "hangfire.core/1.8.24",
+ "hashPath": "hangfire.core.1.8.24.nupkg.sha512"
+ },
+ "Hangfire.NetCore/1.8.24": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-iKRSO7gzMq4KhI+px98OtRubI5FaDHJgHvhLqlILvsuCPVFraTdVWdRgwjIS4bIyahl/3RaiGhFOqlpwgU724Q==",
+ "path": "hangfire.netcore/1.8.24",
+ "hashPath": "hangfire.netcore.1.8.24.nupkg.sha512"
+ },
+ "Hangfire.PostgreSql/1.21.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-hFNZAxv+1p72/XCZdImnH6ovCzZ2DKAMTOI8CReT0P3yw/k0b0YJP2teA18agNH1ZYInPzhtxGk8hx5n2cxbbQ==",
+ "path": "hangfire.postgresql/1.21.1",
+ "hashPath": "hangfire.postgresql.1.21.1.nupkg.sha512"
+ },
+ "Microsoft.Extensions.DependencyModel/10.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-RFYJR7APio/BiqdQunRq6DB+nDB6nc2qhHr77mlvZ0q0BT8PubMXN7XicmfzCbrDE/dzhBnUKBRXLTcqUiZDGg==",
+ "path": "microsoft.extensions.dependencymodel/10.0.0",
+ "hashPath": "microsoft.extensions.dependencymodel.10.0.0.nupkg.sha512"
+ },
+ "Microsoft.OpenApi/2.7.5": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-0FA67RSnRM4tcBKqiqVu/HPdZ9+QOKbmeRjxRUGTCjPU4C0bmUhd97Dso7Yild5P7nOV6GxJ2xrK0Kv/O9xp0w==",
+ "path": "microsoft.openapi/2.7.5",
+ "hashPath": "microsoft.openapi.2.7.5.nupkg.sha512"
+ },
+ "Newtonsoft.Json/13.0.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
+ "path": "newtonsoft.json/13.0.3",
+ "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
+ },
+ "Npgsql/10.0.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w==",
+ "path": "npgsql/10.0.3",
+ "hashPath": "npgsql.10.0.3.nupkg.sha512"
+ },
+ "OpenTelemetry/1.17.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rMLOTftlMlTm7+MSrvXDHnJRjVkROFNKXHZrYjOsX+LankaFG7QSflx7qRRGjoqZoirohnxmJQ7GEb9occO4Gg==",
+ "path": "opentelemetry/1.17.0",
+ "hashPath": "opentelemetry.1.17.0.nupkg.sha512"
+ },
+ "OpenTelemetry.Api/1.17.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mSBxzomZgHIJu9CyVNqyDu/n2JHEtqVgfcCD1Br0cV5iLYogjZOMqhlVLt99PEp+0KGBNUR3GXgeOdN2GR3F9g==",
+ "path": "opentelemetry.api/1.17.0",
+ "hashPath": "opentelemetry.api.1.17.0.nupkg.sha512"
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions/1.17.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Xgc3Qf9B9TFMFpx6exTdGqMWuYIT2miNzkdMPutVvT9YuMFaEovXWke1Gb6z8NxYaQbbGF38vYLuSg1JCeui5Q==",
+ "path": "opentelemetry.api.providerbuilderextensions/1.17.0",
+ "hashPath": "opentelemetry.api.providerbuilderextensions.1.17.0.nupkg.sha512"
+ },
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol/1.17.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-R1omQOrQpGlS0Cp5UIr/TAiuEA48JrPlgr1NPV5gESiTU7HhWU+ILe2EBSYb1fKdsSavZ7nZkHcUxAzofPqr2A==",
+ "path": "opentelemetry.exporter.opentelemetryprotocol/1.17.0",
+ "hashPath": "opentelemetry.exporter.opentelemetryprotocol.1.17.0.nupkg.sha512"
+ },
+ "OpenTelemetry.Extensions.Hosting/1.17.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-t1OwL/4qgboGMobYVT+UV5zgWnFqCp4Pw8lcsmzh8m2K8PQsTKkyxrC32tqYTMYny3GOW4q5cltE3dTVzLmRew==",
+ "path": "opentelemetry.extensions.hosting/1.17.0",
+ "hashPath": "opentelemetry.extensions.hosting.1.17.0.nupkg.sha512"
+ },
+ "OpenTelemetry.Instrumentation.AspNetCore/1.17.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rGbmk1vuy1kvgZmE0ps7Vb99YZvDap6AalrrF60FwnNit1uW/PbeFZj1cpb0T8MPkYmjhBrRJ1/JB6QqXkRjHA==",
+ "path": "opentelemetry.instrumentation.aspnetcore/1.17.0",
+ "hashPath": "opentelemetry.instrumentation.aspnetcore.1.17.0.nupkg.sha512"
+ },
+ "OpenTelemetry.Instrumentation.Http/1.17.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-uTwVtxIJ/xB96wGYTaDsbkJVeCFdUxTwvrlDUn2YJixy0UuKc8DvQMzwKNJMTzNFiiyYO9c40id6tUHTmWs33A==",
+ "path": "opentelemetry.instrumentation.http/1.17.0",
+ "hashPath": "opentelemetry.instrumentation.http.1.17.0.nupkg.sha512"
+ },
+ "OpenTelemetry.Instrumentation.Runtime/1.17.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HyYenisDn/xdtyVXdjImsCl+RNC2gq01N0rvSR7tsYAylXR2sxX/YgMsyTajMXA27+r1vB7lNU8cWRhV0fwL+Q==",
+ "path": "opentelemetry.instrumentation.runtime/1.17.0",
+ "hashPath": "opentelemetry.instrumentation.runtime.1.17.0.nupkg.sha512"
+ },
+ "Polly/8.7.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-0qR4f0OR8FeCAfLWcfwzAM7w6EmpUgwa22PgxKjcL25dEAto7sKpQQXbtxp38vVvK+V3RFkh/TeI7g/iUdoYIQ==",
+ "path": "polly/8.7.0",
+ "hashPath": "polly.8.7.0.nupkg.sha512"
+ },
+ "Polly.Core/8.7.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-BS2t+nsBer16PIebCEPNBK5fgMisADQyRCd7K+BgkMWpFmSaiYE+rVVNpFhGRqUkJmNSLmw0uCNzHHWfgml28Q==",
+ "path": "polly.core/8.7.0",
+ "hashPath": "polly.core.8.7.0.nupkg.sha512"
+ },
+ "Serilog/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+cDryFR0GRhsGOnZSKwaDzRRl4MupvJ42FhCE4zhQRVanX0Jpg6WuCBk59OVhVDPmab1bB+nRykAnykYELA9qQ==",
+ "path": "serilog/4.3.0",
+ "hashPath": "serilog.4.3.0.nupkg.sha512"
+ },
+ "Serilog.AspNetCore/10.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-a/cNa1mY4On1oJlfGG1wAvxjp5g7OEzk/Jf/nm7NF9cWoE7KlZw1GldrifUBWm9oKibHkR7Lg/l5jy3y7ACR8w==",
+ "path": "serilog.aspnetcore/10.0.0",
+ "hashPath": "serilog.aspnetcore.10.0.0.nupkg.sha512"
+ },
+ "Serilog.Extensions.Hosting/10.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-E7juuIc+gzoGxgzFooFgAV8g9BfiSXNKsUok9NmEpyAXg2odkcPsMa/Yo4axkJRlh0se7mkYQ1GXDaBemR+b6w==",
+ "path": "serilog.extensions.hosting/10.0.0",
+ "hashPath": "serilog.extensions.hosting.10.0.0.nupkg.sha512"
+ },
+ "Serilog.Extensions.Logging/10.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-vx0kABKl2dWbBhhqAfTOk53/i8aV/5VaT3a6il9gn72Wqs2pM7EK2OB6No6xdqK2IaY6Zf9gdjLuK9BVa2rT+Q==",
+ "path": "serilog.extensions.logging/10.0.0",
+ "hashPath": "serilog.extensions.logging.10.0.0.nupkg.sha512"
+ },
+ "Serilog.Formatting.Compact/3.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-wQsv14w9cqlfB5FX2MZpNsTawckN4a8dryuNGbebB/3Nh1pXnROHZov3swtu3Nj5oNG7Ba+xdu7Et/ulAUPanQ==",
+ "path": "serilog.formatting.compact/3.0.0",
+ "hashPath": "serilog.formatting.compact.3.0.0.nupkg.sha512"
+ },
+ "Serilog.Settings.Configuration/10.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ayFE7h66mqMqzwfPrzDCMbWU27FdNC2bkCG+jnkeHFZTBRh+yWdr4aa/2WuX7c8RmqxGPMW2UqoJ3fw9hK3QhA==",
+ "path": "serilog.settings.configuration/10.0.1",
+ "hashPath": "serilog.settings.configuration.10.0.1.nupkg.sha512"
+ },
+ "Serilog.Sinks.Console/6.1.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-8jbqgjUyZlfCuSTaJk6lOca465OndqOz3KZP6Cryt/IqZYybyBu7GP0fE/AXBzrrQB3EBmQntBFAvMVz1COvAA==",
+ "path": "serilog.sinks.console/6.1.1",
+ "hashPath": "serilog.sinks.console.6.1.1.nupkg.sha512"
+ },
+ "Serilog.Sinks.Debug/3.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-4BzXcdrgRX7wde9PmHuYd9U6YqycCC28hhpKonK7hx0wb19eiuRj16fPcPSVp0o/Y1ipJuNLYQ00R3q2Zs8FDA==",
+ "path": "serilog.sinks.debug/3.0.0",
+ "hashPath": "serilog.sinks.debug.3.0.0.nupkg.sha512"
+ },
+ "Serilog.Sinks.File/7.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fKL7mXv7qaiNBUC71ssvn/dU0k9t0o45+qm2XgKAlSt19xF+ijjxyA3R6HmCgfKEKwfcfkwWjayuQtRueZFkYw==",
+ "path": "serilog.sinks.file/7.0.0",
+ "hashPath": "serilog.sinks.file.7.0.0.nupkg.sha512"
+ },
+ "Swashbuckle.AspNetCore/10.2.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-8KNh1RWvofdU6DVLyBs4Z/OpUMnmf8oNvJQc0QxpwySRbi42bwLfdVMMrXZWANg5U5KQGQq1xW6r/hlcqw99tQ==",
+ "path": "swashbuckle.aspnetcore/10.2.3",
+ "hashPath": "swashbuckle.aspnetcore.10.2.3.nupkg.sha512"
+ },
+ "Swashbuckle.AspNetCore.Swagger/10.2.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1jUUs3WQnrS0FUtaZPLSy1yYMEwS1zlvDmvQ2/eldPHUANX0LJSLVZecCMgSMdeGiRqeaRrIXLtSz++TCiTMww==",
+ "path": "swashbuckle.aspnetcore.swagger/10.2.3",
+ "hashPath": "swashbuckle.aspnetcore.swagger.10.2.3.nupkg.sha512"
+ },
+ "Swashbuckle.AspNetCore.SwaggerGen/10.2.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-y7t4coDRAeFYChmvlMRiH2OjbiRrm9AVIDgt17fQfs3x9PVAI5PiwWYOhg+4F13R4Q36WDc9lqfoOnNa3tNbGg==",
+ "path": "swashbuckle.aspnetcore.swaggergen/10.2.3",
+ "hashPath": "swashbuckle.aspnetcore.swaggergen.10.2.3.nupkg.sha512"
+ },
+ "Swashbuckle.AspNetCore.SwaggerUI/10.2.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-nthWONRs/FJ4yyG206g1cC52WEG8EqrjuMWjGdR+5XG7lbjFto6NqcI9EMICgVFom/UivIjUVwI76ZHbHwTPfQ==",
+ "path": "swashbuckle.aspnetcore.swaggerui/10.2.3",
+ "hashPath": "swashbuckle.aspnetcore.swaggerui.10.2.3.nupkg.sha512"
+ },
+ "KArtSell.BuildingBlocks/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "KArtSell.Modules.ModelOperations/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "KArtSell.Modules.SignalEngine/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/publish/KArtSell.Host.dll b/publish/KArtSell.Host.dll
new file mode 100644
index 00000000..0d8fa086
Binary files /dev/null and b/publish/KArtSell.Host.dll differ
diff --git a/publish/KArtSell.Host.exe b/publish/KArtSell.Host.exe
new file mode 100644
index 00000000..3726098a
Binary files /dev/null and b/publish/KArtSell.Host.exe differ
diff --git a/publish/KArtSell.Host.pdb b/publish/KArtSell.Host.pdb
new file mode 100644
index 00000000..41f7429d
Binary files /dev/null and b/publish/KArtSell.Host.pdb differ
diff --git a/publish/KArtSell.Host.runtimeconfig.json b/publish/KArtSell.Host.runtimeconfig.json
new file mode 100644
index 00000000..29111500
--- /dev/null
+++ b/publish/KArtSell.Host.runtimeconfig.json
@@ -0,0 +1,20 @@
+{
+ "runtimeOptions": {
+ "tfm": "net10.0",
+ "frameworks": [
+ {
+ "name": "Microsoft.NETCore.App",
+ "version": "10.0.0"
+ },
+ {
+ "name": "Microsoft.AspNetCore.App",
+ "version": "10.0.0"
+ }
+ ],
+ "configProperties": {
+ "System.GC.Server": true,
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/publish/KArtSell.Host.staticwebassets.endpoints.json b/publish/KArtSell.Host.staticwebassets.endpoints.json
new file mode 100644
index 00000000..21da96bf
--- /dev/null
+++ b/publish/KArtSell.Host.staticwebassets.endpoints.json
@@ -0,0 +1 @@
+{"Version":1,"ManifestType":"Publish","Endpoints":[]}
\ No newline at end of file
diff --git a/publish/KArtSell.Modules.ModelOperations.dll b/publish/KArtSell.Modules.ModelOperations.dll
new file mode 100644
index 00000000..8205345e
Binary files /dev/null and b/publish/KArtSell.Modules.ModelOperations.dll differ
diff --git a/publish/KArtSell.Modules.ModelOperations.pdb b/publish/KArtSell.Modules.ModelOperations.pdb
new file mode 100644
index 00000000..7b4b0813
Binary files /dev/null and b/publish/KArtSell.Modules.ModelOperations.pdb differ
diff --git a/publish/KArtSell.Modules.SignalEngine.dll b/publish/KArtSell.Modules.SignalEngine.dll
new file mode 100644
index 00000000..e882a44e
Binary files /dev/null and b/publish/KArtSell.Modules.SignalEngine.dll differ
diff --git a/publish/KArtSell.Modules.SignalEngine.pdb b/publish/KArtSell.Modules.SignalEngine.pdb
new file mode 100644
index 00000000..81e37dcb
Binary files /dev/null and b/publish/KArtSell.Modules.SignalEngine.pdb differ
diff --git a/publish/Microsoft.Extensions.DependencyModel.dll b/publish/Microsoft.Extensions.DependencyModel.dll
new file mode 100644
index 00000000..dae19509
Binary files /dev/null and b/publish/Microsoft.Extensions.DependencyModel.dll differ
diff --git a/publish/Microsoft.OpenApi.dll b/publish/Microsoft.OpenApi.dll
new file mode 100644
index 00000000..fc8cd69f
Binary files /dev/null and b/publish/Microsoft.OpenApi.dll differ
diff --git a/publish/Newtonsoft.Json.dll b/publish/Newtonsoft.Json.dll
new file mode 100644
index 00000000..d035c38b
Binary files /dev/null and b/publish/Newtonsoft.Json.dll differ
diff --git a/publish/Npgsql.dll b/publish/Npgsql.dll
new file mode 100644
index 00000000..184db8d5
Binary files /dev/null and b/publish/Npgsql.dll differ
diff --git a/publish/OpenTelemetry.Api.ProviderBuilderExtensions.dll b/publish/OpenTelemetry.Api.ProviderBuilderExtensions.dll
new file mode 100644
index 00000000..2ba5dcc3
Binary files /dev/null and b/publish/OpenTelemetry.Api.ProviderBuilderExtensions.dll differ
diff --git a/publish/OpenTelemetry.Api.dll b/publish/OpenTelemetry.Api.dll
new file mode 100644
index 00000000..56a63a5a
Binary files /dev/null and b/publish/OpenTelemetry.Api.dll differ
diff --git a/publish/OpenTelemetry.Exporter.OpenTelemetryProtocol.dll b/publish/OpenTelemetry.Exporter.OpenTelemetryProtocol.dll
new file mode 100644
index 00000000..47a5a5d4
Binary files /dev/null and b/publish/OpenTelemetry.Exporter.OpenTelemetryProtocol.dll differ
diff --git a/publish/OpenTelemetry.Extensions.Hosting.dll b/publish/OpenTelemetry.Extensions.Hosting.dll
new file mode 100644
index 00000000..58aa298b
Binary files /dev/null and b/publish/OpenTelemetry.Extensions.Hosting.dll differ
diff --git a/publish/OpenTelemetry.Instrumentation.AspNetCore.dll b/publish/OpenTelemetry.Instrumentation.AspNetCore.dll
new file mode 100644
index 00000000..8de005c8
Binary files /dev/null and b/publish/OpenTelemetry.Instrumentation.AspNetCore.dll differ
diff --git a/publish/OpenTelemetry.Instrumentation.Http.dll b/publish/OpenTelemetry.Instrumentation.Http.dll
new file mode 100644
index 00000000..7dff026d
Binary files /dev/null and b/publish/OpenTelemetry.Instrumentation.Http.dll differ
diff --git a/publish/OpenTelemetry.Instrumentation.Runtime.dll b/publish/OpenTelemetry.Instrumentation.Runtime.dll
new file mode 100644
index 00000000..e52a185e
Binary files /dev/null and b/publish/OpenTelemetry.Instrumentation.Runtime.dll differ
diff --git a/publish/OpenTelemetry.dll b/publish/OpenTelemetry.dll
new file mode 100644
index 00000000..fdac6763
Binary files /dev/null and b/publish/OpenTelemetry.dll differ
diff --git a/publish/Polly.Core.dll b/publish/Polly.Core.dll
new file mode 100644
index 00000000..bea44fb6
Binary files /dev/null and b/publish/Polly.Core.dll differ
diff --git a/publish/Polly.dll b/publish/Polly.dll
new file mode 100644
index 00000000..765b9ee0
Binary files /dev/null and b/publish/Polly.dll differ
diff --git a/publish/Serilog.AspNetCore.dll b/publish/Serilog.AspNetCore.dll
new file mode 100644
index 00000000..6f50f9e9
Binary files /dev/null and b/publish/Serilog.AspNetCore.dll differ
diff --git a/publish/Serilog.Extensions.Hosting.dll b/publish/Serilog.Extensions.Hosting.dll
new file mode 100644
index 00000000..b050a9b0
Binary files /dev/null and b/publish/Serilog.Extensions.Hosting.dll differ
diff --git a/publish/Serilog.Extensions.Logging.dll b/publish/Serilog.Extensions.Logging.dll
new file mode 100644
index 00000000..fa270b86
Binary files /dev/null and b/publish/Serilog.Extensions.Logging.dll differ
diff --git a/publish/Serilog.Formatting.Compact.dll b/publish/Serilog.Formatting.Compact.dll
new file mode 100644
index 00000000..bbd2122c
Binary files /dev/null and b/publish/Serilog.Formatting.Compact.dll differ
diff --git a/publish/Serilog.Settings.Configuration.dll b/publish/Serilog.Settings.Configuration.dll
new file mode 100644
index 00000000..68151ee2
Binary files /dev/null and b/publish/Serilog.Settings.Configuration.dll differ
diff --git a/publish/Serilog.Sinks.Console.dll b/publish/Serilog.Sinks.Console.dll
new file mode 100644
index 00000000..8d0638da
Binary files /dev/null and b/publish/Serilog.Sinks.Console.dll differ
diff --git a/publish/Serilog.Sinks.Debug.dll b/publish/Serilog.Sinks.Debug.dll
new file mode 100644
index 00000000..7c940154
Binary files /dev/null and b/publish/Serilog.Sinks.Debug.dll differ
diff --git a/publish/Serilog.Sinks.File.dll b/publish/Serilog.Sinks.File.dll
new file mode 100644
index 00000000..066c164e
Binary files /dev/null and b/publish/Serilog.Sinks.File.dll differ
diff --git a/publish/Serilog.dll b/publish/Serilog.dll
new file mode 100644
index 00000000..de3e99db
Binary files /dev/null and b/publish/Serilog.dll differ
diff --git a/publish/Swashbuckle.AspNetCore.Swagger.dll b/publish/Swashbuckle.AspNetCore.Swagger.dll
new file mode 100644
index 00000000..d912cb7a
Binary files /dev/null and b/publish/Swashbuckle.AspNetCore.Swagger.dll differ
diff --git a/publish/Swashbuckle.AspNetCore.SwaggerGen.dll b/publish/Swashbuckle.AspNetCore.SwaggerGen.dll
new file mode 100644
index 00000000..8db37011
Binary files /dev/null and b/publish/Swashbuckle.AspNetCore.SwaggerGen.dll differ
diff --git a/publish/Swashbuckle.AspNetCore.SwaggerUI.dll b/publish/Swashbuckle.AspNetCore.SwaggerUI.dll
new file mode 100644
index 00000000..0dc52133
Binary files /dev/null and b/publish/Swashbuckle.AspNetCore.SwaggerUI.dll differ
diff --git a/publish/appsettings.Development.json b/publish/appsettings.Development.json
new file mode 100644
index 00000000..9e76dd5c
--- /dev/null
+++ b/publish/appsettings.Development.json
@@ -0,0 +1,5 @@
+{
+ "Authentication": {
+ "Mode": "DevelopmentHeader"
+ }
+}
diff --git a/publish/appsettings.json b/publish/appsettings.json
new file mode 100644
index 00000000..534246e5
--- /dev/null
+++ b/publish/appsettings.json
@@ -0,0 +1,41 @@
+{
+ "Kestrel": {
+ "Endpoints": {
+ "Http": {
+ "Url": "http://127.0.0.1:5002"
+ }
+ }
+ },
+ "ConnectionStrings": {
+ "Postgres": "Host=127.0.0.1;Port=5432;Database=kartselldb;Username=kartsell;Password=kartsell4321@!"
+ },
+ "ExternalApis": {
+ "KrxOpenApi": {
+ "ApiKey": "${KRX_API_KEY}",
+ "BaseUrl": "https://openapi.krx.co.kr"
+ }
+ },
+ "Authentication": {
+ "Mode": "FailClosed"
+ },
+ "Capabilities": {
+ "AutomaticOrder": false,
+ "KisOrderAdapter": false,
+ "ClientPublication": false,
+ "ShadowEvaluation": true
+ },
+ "Serilog": {
+ "MinimumLevel": {
+ "Default": "Information",
+ "Override": {
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+ },
+ "OTEL_EXPORTER_OTLP_ENDPOINT": "http://localhost:4317",
+ "ModelOperations": {
+ "DispatcherEnabled": false,
+ "DispatcherCron": "*/15 * * * *",
+ "Boundary": "EVIDENCE_ONLY_NO_AUTO_MODEL_OR_ORDER_MUTATION"
+ }
+}
diff --git a/publish/ca/Hangfire.Core.resources.dll b/publish/ca/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..28d3d414
Binary files /dev/null and b/publish/ca/Hangfire.Core.resources.dll differ
diff --git a/publish/de/Hangfire.Core.resources.dll b/publish/de/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..1fc202ec
Binary files /dev/null and b/publish/de/Hangfire.Core.resources.dll differ
diff --git a/publish/es/Hangfire.Core.resources.dll b/publish/es/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..453ebea9
Binary files /dev/null and b/publish/es/Hangfire.Core.resources.dll differ
diff --git a/publish/fa/Hangfire.Core.resources.dll b/publish/fa/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..db3e3545
Binary files /dev/null and b/publish/fa/Hangfire.Core.resources.dll differ
diff --git a/publish/fr/Hangfire.Core.resources.dll b/publish/fr/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..63d241b7
Binary files /dev/null and b/publish/fr/Hangfire.Core.resources.dll differ
diff --git a/publish/nb/Hangfire.Core.resources.dll b/publish/nb/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..e4115701
Binary files /dev/null and b/publish/nb/Hangfire.Core.resources.dll differ
diff --git a/publish/nl/Hangfire.Core.resources.dll b/publish/nl/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..a26b22d4
Binary files /dev/null and b/publish/nl/Hangfire.Core.resources.dll differ
diff --git a/publish/pt-BR/Hangfire.Core.resources.dll b/publish/pt-BR/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..21fe660b
Binary files /dev/null and b/publish/pt-BR/Hangfire.Core.resources.dll differ
diff --git a/publish/pt-PT/Hangfire.Core.resources.dll b/publish/pt-PT/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..3a3cd536
Binary files /dev/null and b/publish/pt-PT/Hangfire.Core.resources.dll differ
diff --git a/publish/pt/Hangfire.Core.resources.dll b/publish/pt/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..f07b93b0
Binary files /dev/null and b/publish/pt/Hangfire.Core.resources.dll differ
diff --git a/publish/ru/Hangfire.Core.resources.dll b/publish/ru/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..43bb9a17
Binary files /dev/null and b/publish/ru/Hangfire.Core.resources.dll differ
diff --git a/publish/sv/Hangfire.Core.resources.dll b/publish/sv/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..112a688a
Binary files /dev/null and b/publish/sv/Hangfire.Core.resources.dll differ
diff --git a/publish/tr-TR/Hangfire.Core.resources.dll b/publish/tr-TR/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..246525f6
Binary files /dev/null and b/publish/tr-TR/Hangfire.Core.resources.dll differ
diff --git a/publish/web.config b/publish/web.config
new file mode 100644
index 00000000..9ac20edd
--- /dev/null
+++ b/publish/web.config
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/publish/zh-TW/Hangfire.Core.resources.dll b/publish/zh-TW/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..371ea43c
Binary files /dev/null and b/publish/zh-TW/Hangfire.Core.resources.dll differ
diff --git a/publish/zh/Hangfire.Core.resources.dll b/publish/zh/Hangfire.Core.resources.dll
new file mode 100644
index 00000000..9f260ac5
Binary files /dev/null and b/publish/zh/Hangfire.Core.resources.dll differ
diff --git a/src/KArtSell.Host/Features/SecurityMaster/VS02_SyncSecurityMasterEndpoint.cs b/src/KArtSell.Host/Features/SecurityMaster/VS02_SyncSecurityMasterEndpoint.cs
index 68da26a3..b2a4c15d 100644
--- a/src/KArtSell.Host/Features/SecurityMaster/VS02_SyncSecurityMasterEndpoint.cs
+++ b/src/KArtSell.Host/Features/SecurityMaster/VS02_SyncSecurityMasterEndpoint.cs
@@ -30,52 +30,51 @@ public sealed class SyncSecurityMasterResponse
public List Conflicts { get; set; } = new();
}
-// DISABLED: SecurityMaster sync endpoint requires full DI setup
-// public sealed class SyncSecurityMasterEndpoint : Endpoint
-// {
-// private readonly ISecurityMasterSyncHandler _handler;
-//
-// public SyncSecurityMasterEndpoint(ISecurityMasterSyncHandler handler)
-// {
-// _handler = handler;
-// }
-//
-// public override void Configure()
-// {
-// Post("/api/security/master/sync");
-// Roles("SecurityAdmin");
-// AllowAnonymous(); // Override role check if needed for service-to-service
-// }
-//
-// public override async Task HandleAsync(SyncSecurityMasterRequest req, CancellationToken ct)
-// {
-// var correlationId = HttpContext.TraceIdentifier;
-// var idempotencyKey = SecurityMasterPolicy.CreateIdempotencyKey(req.FromVersion, correlationId);
-//
-// var result = await _handler.SyncAsync(
-// fromVersion: req.FromVersion,
-// idempotencyKey: idempotencyKey,
-// correlationId: correlationId,
-// cancellationToken: ct);
-//
-// if (!result.IsSuccess)
-// {
-// ThrowError($"Version conflict. Local: {req.FromVersion}, Remote: {result.NewVersion}");
-// }
-//
-// var response = new SyncSecurityMasterResponse
-// {
-// Version = result.NewVersion,
-// RulesCount = result.AppliedRules.Count,
-// SyncedAt = DateTime.UtcNow,
-// Conflicts = result.Conflicts,
-// };
-//
-// HttpContext.Response.StatusCode = StatusCodes.Status200OK;
-// HttpContext.Response.ContentType = "application/json";
-// await HttpContext.Response.WriteAsync(JsonSerializer.Serialize(response), ct);
-// }
-// }
+public sealed class SyncSecurityMasterEndpoint : Endpoint
+{
+ private readonly ISecurityMasterSyncHandler _handler;
+
+ public SyncSecurityMasterEndpoint(ISecurityMasterSyncHandler handler)
+ {
+ _handler = handler;
+ }
+
+ public override void Configure()
+ {
+ Post("/api/security/master/sync");
+ Roles("SecurityAdmin");
+ AllowAnonymous(); // Override role check if needed for service-to-service
+ }
+
+ public override async Task HandleAsync(SyncSecurityMasterRequest req, CancellationToken ct)
+ {
+ var correlationId = HttpContext.TraceIdentifier;
+ var idempotencyKey = SecurityMasterPolicy.CreateIdempotencyKey(req.FromVersion, correlationId);
+
+ var result = await _handler.SyncAsync(
+ fromVersion: req.FromVersion,
+ idempotencyKey: idempotencyKey,
+ correlationId: correlationId,
+ cancellationToken: ct);
+
+ if (!result.IsSuccess)
+ {
+ ThrowError($"Version conflict. Local: {req.FromVersion}, Remote: {result.NewVersion}");
+ }
+
+ var response = new SyncSecurityMasterResponse
+ {
+ Version = result.NewVersion,
+ RulesCount = result.AppliedRules.Count,
+ SyncedAt = DateTime.UtcNow,
+ Conflicts = result.Conflicts,
+ };
+
+ HttpContext.Response.StatusCode = StatusCodes.Status200OK;
+ HttpContext.Response.ContentType = "application/json";
+ await HttpContext.Response.WriteAsync(JsonSerializer.Serialize(response), ct);
+ }
+}
///
/// VS-02 BE: Get Security Rules Endpoint
@@ -103,59 +102,58 @@ public sealed class SecurityRuleDto
public DateTime? ExpiresAt { get; set; }
}
-// DISABLED: GetSecurityMasterRulesEndpoint requires full DI setup
-// public sealed class GetSecurityMasterRulesEndpoint : EndpointWithoutRequest
-// {
-// private readonly ISecurityMasterRulesStore _store;
-// private readonly IClock _clock;
-//
-// public GetSecurityMasterRulesEndpoint(ISecurityMasterRulesStore store, IClock clock)
-// {
-// _store = store;
-// _clock = clock;
-// }
-//
-// public override void Configure()
-// {
-// Get("/api/security/master/rules");
-// AllowAnonymous();
-// }
-//
-// public override async Task HandleAsync(CancellationToken ct)
-// {
-// var state = await _store.GetCurrentStateAsync(ct);
-//
-// var staleTreshold = _clock.UtcNow.AddMinutes(-5);
-// if (state.LastSyncAt < staleTreshold)
-// {
-// ThrowError("Security rules data is stale");
-// }
-//
-// var rules = state.Rules
-// .Where(r => SecurityMasterPolicy.IsRuleActive(r, _clock.UtcNow.DateTime))
-// .Select(r => new SecurityRuleDto
-// {
-// RuleId = r.RuleId,
-// ResourceName = r.ResourceName,
-// Action = r.Action,
-// Version = r.Version,
-// EffectiveAt = r.EffectiveAt,
-// ExpiresAt = r.ExpiresAt,
-// })
-// .ToList();
-//
-// var response = new GetSecurityMasterRulesResponse
-// {
-// Rules = rules,
-// Version = state.Version,
-// LastSyncAt = state.LastSyncAt,
-// };
-//
-// HttpContext.Response.StatusCode = StatusCodes.Status200OK;
-// HttpContext.Response.ContentType = "application/json";
-// await HttpContext.Response.WriteAsync(JsonSerializer.Serialize(response), ct);
-// }
-// }
+public sealed class GetSecurityMasterRulesEndpoint : EndpointWithoutRequest
+{
+ private readonly ISecurityMasterRulesStore _store;
+ private readonly IClock _clock;
+
+ public GetSecurityMasterRulesEndpoint(ISecurityMasterRulesStore store, IClock clock)
+ {
+ _store = store;
+ _clock = clock;
+ }
+
+ public override void Configure()
+ {
+ Get("/api/security/master/rules");
+ AllowAnonymous();
+ }
+
+ public override async Task HandleAsync(CancellationToken ct)
+ {
+ var state = await _store.GetCurrentStateAsync(ct);
+
+ var staleTreshold = _clock.UtcNow.AddMinutes(-5);
+ if (state.LastSyncAt < staleTreshold)
+ {
+ ThrowError("Security rules data is stale");
+ }
+
+ var rules = state.Rules
+ .Where(r => SecurityMasterPolicy.IsRuleActive(r, _clock.UtcNow.DateTime))
+ .Select(r => new SecurityRuleDto
+ {
+ RuleId = r.RuleId,
+ ResourceName = r.ResourceName,
+ Action = r.Action,
+ Version = r.Version,
+ EffectiveAt = r.EffectiveAt,
+ ExpiresAt = r.ExpiresAt,
+ })
+ .ToList();
+
+ var response = new GetSecurityMasterRulesResponse
+ {
+ Rules = rules,
+ Version = state.Version,
+ LastSyncAt = state.LastSyncAt,
+ };
+
+ HttpContext.Response.StatusCode = StatusCodes.Status200OK;
+ HttpContext.Response.ContentType = "application/json";
+ await HttpContext.Response.WriteAsync(JsonSerializer.Serialize(response), ct);
+ }
+}
///
/// VS-02 Application Handler: Orchestrates sync operation
diff --git a/src/KArtSell.Host/Program.cs b/src/KArtSell.Host/Program.cs
index a51e4a73..fe1a4353 100644
--- a/src/KArtSell.Host/Program.cs
+++ b/src/KArtSell.Host/Program.cs
@@ -132,6 +132,46 @@ builder.Services.AddScoped();
+// Feature Services (DI for Endpoints)
+// Market Data (VS-03)
+builder.Services.AddScoped(sp =>
+ new KArtSell.Host.Features.MarketData.MarketDataIngestionService(
+ sp.GetRequiredService(),
+ sp.GetRequiredService()));
+
+// Portfolio (VS-04~05)
+builder.Services.AddScoped(sp =>
+ new KArtSell.Host.Features.Portfolio.PortfolioRebalanceService(
+ sp.GetRequiredService(),
+ sp.GetRequiredService()));
+
+builder.Services.AddScoped(sp =>
+ new KArtSell.Host.Features.Portfolio.RiskMetricsService(
+ sp.GetRequiredService()));
+
+// Risk & Stress (VS-06~07)
+builder.Services.AddScoped(sp =>
+ new KArtSell.Host.Features.Portfolio.StressTestService(
+ sp.GetRequiredService(),
+ sp.GetRequiredService()));
+
+builder.Services.AddScoped(sp =>
+ new KArtSell.Host.Features.Portfolio.AlertService(
+ sp.GetRequiredService()));
+
+// Dashboard (VS-08)
+builder.Services.AddScoped(sp =>
+ new KArtSell.Host.Features.Portfolio.DashboardService(
+ sp.GetRequiredService()));
+
+// Security Master (VS-02) - Temporarily disabled: ISecurityMasterRulesStore implementation pending
+// builder.Services.AddScoped(sp =>
+// new KArtSell.Host.Features.SecurityMaster.SecurityMasterSyncHandler(
+// sp.GetRequiredService(),
+// sp.GetRequiredService(),
+// sp.GetRequiredService(),
+// sp.GetRequiredService()));
+
builder.Services.AddProblemDetails();
const string authenticationScheme = "KArtSell";