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

//! Token mint event entity.

/// Persisted normalized token mint event row.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, sqlx::FromRow)]
pub struct TokenMintEventEntity {
    /// Numeric primary key.
    pub id: i64,
    /// Related token id.
    pub token_id: i64,
    /// Transaction signature.
    pub signature: std::string::String,
    /// Instruction index inside the transaction.
    pub instruction_index: i64,
    /// Optional slot number.
    pub slot: std::option::Option<i64>,
    /// Optional mint authority wallet.
    pub authority_wallet: std::option::Option<std::string::String>,
    /// Optional destination wallet.
    pub destination_wallet: std::option::Option<std::string::String>,
    /// Minted amount as decimal text.
    pub amount: std::string::String,
    /// Optional supply after mint as decimal text.
    pub supply_after: std::option::Option<std::string::String>,
    /// Execution timestamp encoded as RFC3339 UTC text.
    pub executed_at: std::string::String,
}
