This commit is contained in:
2026-05-13 13:19:23 +02:00
parent 24d21818cf
commit 693a456e62
19 changed files with 631 additions and 40 deletions

View File

@@ -105,6 +105,9 @@ pub struct LocalPipelineDiagnosticSummaryDto {
/// Diagnostics grouped by pair materialization/actionability class.
pub pair_actionability_summaries:
std::vec::Vec<crate::LocalPairActionabilityDiagnosticSummaryDto>,
/// Diagnostics grouped by pair trading readiness class.
pub pair_trading_readiness_summaries:
std::vec::Vec<crate::LocalPairTradingReadinessDiagnosticSummaryDto>,
/// Diagnostics grouped by decoded event kind.
pub decoded_event_summaries: std::vec::Vec<crate::LocalDecodedEventDiagnosticSummaryDto>,
/// Diagnostics grouped by decoded event category, lifecycle kind and actionability.
@@ -187,6 +190,12 @@ pub struct LocalPairDiagnosticSummaryDto {
pub pair_candle_count: i64,
/// Last known price.
pub last_price_quote_per_base: std::option::Option<f64>,
/// Pair trading-readiness class derived from base/quote orientation.
pub pair_trading_readiness: std::string::String,
/// Quote asset class used by the readiness classifier.
pub quote_asset_class: std::string::String,
/// Whether the pair likely requires a router or aggregator before direct bot execution.
pub trading_route_required: bool,
}
/// Local pair diagnostics grouped by materialization/actionability class.
@@ -210,6 +219,27 @@ pub struct LocalPairActionabilityDiagnosticSummaryDto {
pub pair_candle_count: i64,
}
/// Local pair diagnostics grouped by trading readiness class.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct LocalPairTradingReadinessDiagnosticSummaryDto {
/// Pair trading-readiness class.
pub pair_trading_readiness: std::string::String,
/// Quote asset class attached to this readiness group.
pub quote_asset_class: std::string::String,
/// Whether the group requires a router or aggregator before direct execution.
pub trading_route_required: bool,
/// Total pairs in this readiness group.
pub pair_count: i64,
/// Total decoded events attached to pairs in this readiness group.
pub decoded_event_count: i64,
/// Total decoded trade candidates attached to pairs in this readiness group.
pub decoded_trade_candidate_count: i64,
/// Total persisted trade events attached to pairs in this readiness group.
pub trade_event_count: i64,
/// Total persisted candle buckets attached to pairs in this readiness group.
pub pair_candle_count: i64,
}
/// Local decoded-event diagnostics summary.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct LocalDecodedEventDiagnosticSummaryDto {
@@ -464,6 +494,9 @@ pub(crate) struct LocalPairDiagnosticSummaryRow {
pub(crate) invalid_trade_event_count: i64,
pub(crate) pair_candle_count: i64,
pub(crate) last_price_quote_per_base: std::option::Option<f64>,
pub(crate) pair_trading_readiness: std::string::String,
pub(crate) quote_asset_class: std::string::String,
pub(crate) trading_route_required: i64,
}
/// SQL row for local pair actionability diagnostics.
@@ -479,6 +512,19 @@ pub(crate) struct LocalPairActionabilityDiagnosticSummaryRow {
pub(crate) pair_candle_count: i64,
}
/// SQL row for local pair trading-readiness diagnostics.
#[derive(Debug, Clone, sqlx::FromRow)]
pub(crate) struct LocalPairTradingReadinessDiagnosticSummaryRow {
pub(crate) pair_trading_readiness: std::string::String,
pub(crate) quote_asset_class: std::string::String,
pub(crate) trading_route_required: i64,
pub(crate) pair_count: i64,
pub(crate) decoded_event_count: i64,
pub(crate) decoded_trade_candidate_count: i64,
pub(crate) trade_event_count: i64,
pub(crate) pair_candle_count: i64,
}
/// SQL row for local decoded-event diagnostics.
#[derive(Debug, Clone, sqlx::FromRow)]
pub(crate) struct LocalDecodedEventDiagnosticSummaryRow {