// file: kb_lib/src/db/dtos/launch_event.rs

//! Launch event DTO helpers.

/// Input used to upsert one launch event row.
#[derive(Debug, Clone)]
pub struct LaunchEventUpsertInput {
    /// Source transaction id.
    pub transaction_id: i64,
    /// Source decoded event id.
    pub decoded_event_id: i64,
    /// Optional DEX id.
    pub dex_id: std::option::Option<i64>,
    /// Optional pool id.
    pub pool_id: std::option::Option<i64>,
    /// Optional pair id.
    pub pair_id: std::option::Option<i64>,
    /// Transaction signature.
    pub signature: std::string::String,
    /// Optional slot number stored as i64.
    pub slot: std::option::Option<i64>,
    /// Protocol code.
    pub protocol_name: std::string::String,
    /// Program id.
    pub program_id: std::string::String,
    /// Decoded event kind.
    pub event_kind: std::string::String,
    /// Optional pool account.
    pub pool_account: std::option::Option<std::string::String>,
    /// Optional actor wallet.
    pub actor_wallet: std::option::Option<std::string::String>,
    /// Launch event role.
    pub event_role: std::string::String,
    /// Optional related account.
    pub related_account: std::option::Option<std::string::String>,
    /// Optional related mint.
    pub related_mint: std::option::Option<std::string::String>,
    /// Raw decoded payload JSON.
    pub payload_json: serde_json::Value,
}

