Overview

The AnalyticsStatsOptions struct provides filtering options when fetching analytics statistics.

Definition

pub struct AnalyticsStatsOptions {
    pub start_date: Option<String>,
    pub end_date: Option<String>,
    pub organization_id: Option<String>,
}

Fields

start_date
Option<String>
The start date for the analytics period in ISO 8601 format (YYYY-MM-DD). If not specified, defaults to 30 days ago.
end_date
Option<String>
The end date for the analytics period in ISO 8601 format (YYYY-MM-DD). If not specified, defaults to today.
organization_id
Option<String>
Filter analytics to a specific organization. If not specified, returns analytics across all organizations.

Usage Example

use wacht::api::analytics::{fetch_analytics_stats, AnalyticsStatsOptions};

// Fetch analytics with default date range (last 30 days)
let default_stats = fetch_analytics_stats(None).await?;

// Fetch analytics for a specific date range
let date_range_options = AnalyticsStatsOptions {
    start_date: Some("2024-01-01".to_string()),
    end_date: Some("2024-01-31".to_string()),
    organization_id: None,
};
let january_stats = fetch_analytics_stats(Some(date_range_options)).await?;

// Fetch analytics for a specific organization
let org_options = AnalyticsStatsOptions {
    organization_id: Some("org_123".to_string()),
    ..Default::default()
};
let org_stats = fetch_analytics_stats(Some(org_options)).await?;

// Fetch year-to-date analytics for an organization
use chrono::{Local, Datelike};
let current_year = Local::now().year();

let ytd_options = AnalyticsStatsOptions {
    start_date: Some(format!("{}-01-01", current_year)),
    end_date: None, // Defaults to today
    organization_id: Some("org_123".to_string()),
};
let ytd_stats = fetch_analytics_stats(Some(ytd_options)).await?;

// Display analytics
println!("Total users: {}", default_stats.total_users);
println!("Active users: {}", default_stats.active_users);
println!("New signups: {}", default_stats.new_signups);
println!("Total organizations: {}", default_stats.total_organizations);

See Also