// file: kb_lib/src/db/entities/pair_analytic_signal.rs

//! Pair-analytic-signal entity.

/// Persisted pair-analytic-signal row.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, sqlx::FromRow)]
pub struct PairAnalyticSignalEntity {
    /// Numeric primary key.
    pub id: i64,
    /// Related pair id.
    pub pair_id: i64,
    /// Stable signal kind.
    pub signal_kind: std::string::String,
    /// Signal severity.
    pub severity: i16,
    /// Timeframe in seconds. Zero means non-bucketed signal.
    pub timeframe_seconds: i64,
    /// Inclusive bucket start in unix seconds. Zero means non-bucketed signal.
    pub bucket_start_unix: i64,
    /// Optional numeric score.
    pub score: std::option::Option<f64>,
    /// Signal value JSON encoded as text.
    pub signal_value_json: std::string::String,
    /// Optional first transaction id that produced this signal key.
    pub first_transaction_id: std::option::Option<i64>,
    /// Optional last transaction id that produced this signal key.
    pub last_transaction_id: std::option::Option<i64>,
    /// Creation timestamp encoded as RFC3339 UTC text.
    pub created_at: std::string::String,
    /// Update timestamp encoded as RFC3339 UTC text.
    pub updated_at: std::string::String,
}
