Skip to main content

systemprompt_analytics/models/cli/
session.rs

1//! CLI-facing session analytics rows.
2//!
3//! Copyright (c) systemprompt.io — Business Source License 1.1.
4//! See <https://systemprompt.io> for licensing details.
5
6use chrono::{DateTime, Utc};
7use serde::{Deserialize, Serialize};
8use sqlx::FromRow;
9use systemprompt_identifiers::{SessionId, UserId};
10
11#[derive(Debug, Clone, Copy, Serialize, Deserialize, FromRow)]
12pub struct SessionStatsRow {
13    pub total_sessions: i64,
14    pub unique_users: i64,
15    pub avg_duration: Option<f64>,
16    pub avg_requests: Option<f64>,
17    pub conversions: i64,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize, FromRow)]
21pub struct LiveSessionRow {
22    pub session_id: SessionId,
23    pub user_type: Option<String>,
24    pub started_at: DateTime<Utc>,
25    pub duration_seconds: Option<i32>,
26    pub request_count: Option<i32>,
27    pub last_activity_at: DateTime<Utc>,
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize, FromRow)]
31pub struct SessionTrendRow {
32    pub started_at: DateTime<Utc>,
33    pub user_id: Option<UserId>,
34    pub duration_seconds: Option<i32>,
35}