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

//! Pool origin entity.

/// Persisted pool-origin row.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, sqlx::FromRow)]
pub struct PoolOriginEntity {
    /// Numeric primary key.
    pub id: i64,
    /// Related DEX id.
    pub dex_id: i64,
    /// Related pool id.
    pub pool_id: i64,
    /// Optional related pair id.
    pub pair_id: std::option::Option<i64>,
    /// Optional related pool listing id.
    pub pool_listing_id: std::option::Option<i64>,
    /// Founding transaction id in the local model.
    pub founding_transaction_id: i64,
    /// Founding decoded-event id in the local model.
    pub founding_decoded_event_id: i64,
    /// Founding signature in the local model.
    pub founding_signature: std::string::String,
    /// Founding protocol name.
    pub founding_protocol_name: std::string::String,
    /// Founding event kind.
    pub founding_event_kind: std::string::String,
    /// Discovery source kind.
    pub source_kind: i16,
    /// Optional source endpoint logical name.
    pub source_endpoint_name: std::option::Option<std::string::String>,
    /// Optional related launch attribution id.
    pub launch_attribution_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,
}
