This commit is contained in:
2026-05-14 17:44:01 +02:00
parent 403f271083
commit 3f6d2e9f7f
21 changed files with 775 additions and 88 deletions

View File

@@ -138,6 +138,8 @@ pub struct LocalPipelineDiagnosticSummaryDto {
/// Missing trade events grouped by diagnostic reason.
pub missing_trade_event_reason_summaries:
std::vec::Vec<crate::LocalMissingTradeEventReasonSummaryDto>,
/// Prioritized samples of tokens whose display metadata is still incomplete.
pub token_metadata_gap_samples: std::vec::Vec<crate::LocalTokenMetadataGapDiagnosticSampleDto>,
/// Total pairs with only non-actionable missing trade events.
pub non_actionable_pair_count: i64,
/// Pair summaries for non-actionable missing trade events.
@@ -712,6 +714,35 @@ pub struct LocalPairGapDiagnosticSampleDto {
pub pair_candle_count: i64,
}
/// Prioritized sample of an incomplete token metadata row.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct LocalTokenMetadataGapDiagnosticSampleDto {
/// Token id.
pub token_id: i64,
/// Mint address.
pub mint: std::string::String,
/// Current symbol, when present.
pub symbol: std::option::Option<std::string::String>,
/// Current name, when present.
pub name: std::option::Option<std::string::String>,
/// Current mint decimals, when known.
pub decimals: std::option::Option<i64>,
/// Token program id.
pub token_program: std::string::String,
/// Whether this token row is flagged as quote token.
pub is_quote_token: bool,
/// Whether the token appears in at least one pair with materialized trades.
pub used_by_trade_materialized_pair: bool,
/// Whether the token appears on the quote side of at least one pair.
pub used_as_quote_token: bool,
/// Number of trade-materialized pairs using this token.
pub trade_materialized_pair_count: i64,
/// Number of catalog pairs using this token.
pub total_pair_count: i64,
/// Human-readable prioritization bucket.
pub priority: std::string::String,
}
/// SQL row for missing trade event reason summaries.
#[derive(Debug, Clone, sqlx::FromRow)]
pub(crate) struct LocalMissingTradeEventReasonSummaryRow {
@@ -803,3 +834,20 @@ pub(crate) struct LocalPairGapDiagnosticSampleRow {
pub(crate) trade_event_count: i64,
pub(crate) pair_candle_count: i64,
}
/// SQL row for incomplete token metadata samples.
#[derive(Debug, Clone, sqlx::FromRow)]
pub(crate) struct LocalTokenMetadataGapDiagnosticSampleRow {
pub(crate) token_id: i64,
pub(crate) mint: std::string::String,
pub(crate) symbol: std::option::Option<std::string::String>,
pub(crate) name: std::option::Option<std::string::String>,
pub(crate) decimals: std::option::Option<i64>,
pub(crate) token_program: std::string::String,
pub(crate) is_quote_token: i64,
pub(crate) used_by_trade_materialized_pair: i64,
pub(crate) used_as_quote_token: i64,
pub(crate) trade_materialized_pair_count: i64,
pub(crate) total_pair_count: i64,
pub(crate) priority: std::string::String,
}