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

//! Observed token entity.

/// Persisted observed token row.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, sqlx::FromRow)]
pub struct ObservedTokenEntity {
    /// Numeric primary key.
    pub id: i64,
    /// Token mint address.
    pub mint: std::string::String,
    /// Optional token symbol.
    pub symbol: std::option::Option<std::string::String>,
    /// Optional token display name.
    pub name: std::option::Option<std::string::String>,
    /// Optional decimals value.
    pub decimals: std::option::Option<i64>,
    /// Token program id.
    pub token_program: std::string::String,
    /// Local status stored as stable integer.
    pub status: i16,
    /// First seen timestamp encoded as RFC3339 UTC text.
    pub first_seen_at: std::string::String,
    /// Last seen timestamp encoded as RFC3339 UTC text.
    pub last_seen_at: std::string::String,
    /// Last update timestamp encoded as RFC3339 UTC text.
    pub updated_at: std::string::String,
}
