feat(core): add shared DTOs, MqttTopics constants, DatabaseBootstrapper, and ManagedMqttClient extensions
This commit is contained in:
@@ -6,9 +6,8 @@ using FinlyticCore.Dtos.Sentiment;
|
||||
using FinlyticCore.Dtos.TechnicalAnalysis;
|
||||
using FinlyticCore.Dtos.Yahoo;
|
||||
using FinlyticCore.Models.Trades;
|
||||
using FinlyticCore.Models.Analyzer;
|
||||
using System.Collections.Generic;
|
||||
using FinlyticAssets.Models;
|
||||
using FinlyticCore.Models.Assets;
|
||||
|
||||
namespace FinlyticCore.Util;
|
||||
|
||||
@@ -16,18 +15,11 @@ namespace FinlyticCore.Util;
|
||||
WriteIndented = false,
|
||||
PropertyNamingPolicy = JsonKnownNamingPolicy.CamelCase,
|
||||
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
|
||||
[JsonSerializable(typeof(TradeProposalDto))]
|
||||
[JsonSerializable(typeof(List<TradeProposalDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Logging.LogMessageDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Logging.LogMessageDto>))]
|
||||
[JsonSerializable(typeof(TradeAcceptanceDto))]
|
||||
[JsonSerializable(typeof(List<TradeAcceptanceDto>))]
|
||||
[JsonSerializable(typeof(CloseTradeRequest))]
|
||||
[JsonSerializable(typeof(ManualAnalysisResponseDto))]
|
||||
[JsonSerializable(typeof(N8nAnalysisResponseDto))]
|
||||
[JsonSerializable(typeof(TradeHourlyUpdateDto))]
|
||||
[JsonSerializable(typeof(TradeFeedbackRecord))]
|
||||
[JsonSerializable(typeof(List<TradeFeedbackRecord>))]
|
||||
[JsonSerializable(typeof(NewsArticleDto))]
|
||||
[JsonSerializable(typeof(List<NewsArticleDto>))]
|
||||
[JsonSerializable(typeof(DiscoveredArticle))]
|
||||
@@ -52,9 +44,12 @@ namespace FinlyticCore.Util;
|
||||
[JsonSerializable(typeof(IsinSentimentSummaryDto))]
|
||||
[JsonSerializable(typeof(IsinAnalysisEntry))]
|
||||
[JsonSerializable(typeof(SectorSentimentSummaryDto))]
|
||||
[JsonSerializable(typeof(GetSentimentByIsinRequest))]
|
||||
[JsonSerializable(typeof(GetSectorSentimentRequest))]
|
||||
|
||||
[JsonSerializable(typeof(CandleDto))]
|
||||
[JsonSerializable(typeof(List<CandleDto>))]
|
||||
[JsonSerializable(typeof(IReadOnlyList<CandleDto>))]
|
||||
[JsonSerializable(typeof(ChartPatternDto))]
|
||||
[JsonSerializable(typeof(List<ChartPatternDto>))]
|
||||
[JsonSerializable(typeof(IndicatorValuesDto))]
|
||||
@@ -62,6 +57,9 @@ namespace FinlyticCore.Util;
|
||||
[JsonSerializable(typeof(MarketRegimeDto))]
|
||||
[JsonSerializable(typeof(StrategySignalDto))]
|
||||
[JsonSerializable(typeof(List<StrategySignalDto>))]
|
||||
[JsonSerializable(typeof(StrategyResultDto))]
|
||||
[JsonSerializable(typeof(List<StrategyResultDto>))]
|
||||
[JsonSerializable(typeof(UniverseSource))]
|
||||
[JsonSerializable(typeof(TechnicalAnalysisDto))]
|
||||
[JsonSerializable(typeof(LivePriceDto))]
|
||||
[JsonSerializable(typeof(string))]
|
||||
@@ -79,13 +77,75 @@ namespace FinlyticCore.Util;
|
||||
[JsonSerializable(typeof(AnalyzeSentimentRequest))]
|
||||
[JsonSerializable(typeof(EmptyRequest))]
|
||||
[JsonSerializable(typeof(GetEventsByMonthRequest))]
|
||||
[JsonSerializable(typeof(ManualAnalysisRpcRequest))]
|
||||
[JsonSerializable(typeof(GetTradeProposalsRequest))]
|
||||
[JsonSerializable(typeof(GetActiveTradesRequest))]
|
||||
[JsonSerializable(typeof(EvaluateAssetRequest))]
|
||||
[JsonSerializable(typeof(AddTradeFillRequest))]
|
||||
[JsonSerializable(typeof(UpdateTradeStopLossRequest))]
|
||||
[JsonSerializable(typeof(CloseEngineTradeRequest))]
|
||||
[JsonSerializable(typeof(AcceptTradeProposalRequest))]
|
||||
[JsonSerializable(typeof(CreateManualTradeRequest))]
|
||||
[JsonSerializable(typeof(RpcFaultCode))]
|
||||
[JsonSerializable(typeof(RpcErrorResponse))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.ExecutionMode))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.TradeStatus))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.InstrumentCategoryType))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.TradeProposalDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Trading.TradeProposalDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.AssetEvaluationResultDto))]
|
||||
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.DerivativeSelectionDto))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.AiValidationResultDto))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.ValidationSource))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.TradeFillDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Trading.TradeFillDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.ActiveTradeDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Trading.ActiveTradeDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.TriggerSource))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.OutcomeReason))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.GetEvaluationHistoryRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.EvaluationHistoryEntryDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Trading.EvaluationHistoryEntryDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.OutcomeReasonCountDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Trading.OutcomeReasonCountDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.EvaluationHistorySummaryDto))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Trading.GetEvaluationHistoryResponse))]
|
||||
|
||||
// Simulation DTOs
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Simulation.BacktestRequestDto))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Simulation.BacktestTradeDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Simulation.BacktestTradeDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Simulation.EquityPointDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Simulation.EquityPointDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Simulation.BacktestReportDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Simulation.BacktestReportDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Simulation.StrategyAssetReliabilityDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Simulation.StrategyAssetReliabilityDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Simulation.GetReliabilityRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Simulation.GetBacktestHistoryRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Simulation.BacktestHistoryEntryDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Simulation.BacktestHistoryEntryDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Simulation.GetBacktestRunDetailRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Simulation.GetStrategyParametersRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Simulation.SaveStrategyParametersRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Simulation.StrategyParameterProfileDto))]
|
||||
|
||||
// Bot DTOs
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Bot.BotExecutionVenue))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Bot.BotPositionStatus))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Bot.BotTradeOrderDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Bot.BotTradeOrderDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Bot.AccountSummaryDto))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Bot.ExecuteProposalRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Bot.BotPortfolioSnapshotDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Bot.BotPortfolioSnapshotDto>))]
|
||||
|
||||
|
||||
[JsonSerializable(typeof(ServiceHealthResponse))]
|
||||
|
||||
[JsonSerializable(typeof(List<ServiceHealthResponse>))]
|
||||
[JsonSerializable(typeof(FetchLogoResponse))]
|
||||
[JsonSerializable(typeof(Dictionary<string, string>))]
|
||||
[JsonSerializable(typeof(ServiceConfigUpdatePayload))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Assets.AssetDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Assets.AssetDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Assets.StockDto))]
|
||||
@@ -93,12 +153,14 @@ namespace FinlyticCore.Util;
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Assets.CryptoDto))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Assets.BondDto))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Assets.DerivativeDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Assets.DerivativeDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Assets.SyntheticDto))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Assets.TagDto))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Models.Assets.GetValidAssetRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Models.Assets.SearchAssetsRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Models.Assets.GetDiscoveryAssetsRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Models.Assets.GetDerivativesRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.TradeRepublic.TradeRepublicPriceTick))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.TradeRepublic.TradeRepublicTickerResponse))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.TradeRepublic.TradeRepublicTickerRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.TradeRepublic.TradeRepublicConnectRequest))]
|
||||
@@ -149,8 +211,19 @@ namespace FinlyticCore.Util;
|
||||
[JsonSerializable(typeof(YahooQuoteResultWrapperDto))]
|
||||
[JsonSerializable(typeof(YahooQuoteItemDto))]
|
||||
[JsonSerializable(typeof(List<AssetIndex>))]
|
||||
[JsonSerializable(typeof(N8nAnalysisRequestDto))]
|
||||
[JsonSerializable(typeof(TickMessageDto))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Settings.DynamicSettingDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Settings.DynamicSettingDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Bot.BotStatusDto))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Bot.BotTradeOrderDto))]
|
||||
[JsonSerializable(typeof(List<FinlyticCore.Dtos.Bot.BotTradeOrderDto>))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Bot.AccountSummaryDto))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Bot.ExecuteProposalRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Bot.UpdateBotSettingsRequest))]
|
||||
[JsonSerializable(typeof(FinlyticCore.Dtos.Bot.PanicCloseResultDto))]
|
||||
[JsonSerializable(typeof(Dictionary<string, object?>))]
|
||||
[JsonSerializable(typeof(Dictionary<string, string>))]
|
||||
[JsonSerializable(typeof(List<string>))]
|
||||
public partial class FinlyticJsonSerializerContext : JsonSerializerContext
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user