#![allow(clippy::module_name_repetitions)]
pub mod event;
pub mod store;
pub mod wrap;
use thiserror::Error;
pub use event::{EventKind, SessionRow, StoredEvent};
pub use store::Store;
pub use wrap::{CommandCount, EventCounts, WrapReport};
#[derive(Debug, Error)]
pub enum SessionError {
#[error("sqlite: {0}")]
Sql(#[from] rusqlite::Error),
#[error("migration: {0}")]
Migration(String),
#[error("serialize: {0}")]
Serde(#[from] serde_json::Error),
#[error("io: {0}")]
Io(#[from] std::io::Error),
}
pub mod milestones {
pub const WELCOME_SHOWN: &str = "welcome_shown";
pub const FIRST_LIVE_TRADE_AT: &str = "first_live_trade_at";
pub const LAST_DAILY_WRAP_AT: &str = "last_daily_wrap_at";
}