Skip to main content

systemprompt_analytics/models/cli/
session.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3use sqlx::FromRow;
4use systemprompt_identifiers::{SessionId, UserId};
5
6#[derive(Debug, Clone, Copy, Serialize, Deserialize, FromRow)]
7pub struct SessionStatsRow {
8    pub total_sessions: i64,
9    pub unique_users: i64,
10    pub avg_duration: Option<f64>,
11    pub avg_requests: Option<f64>,
12    pub conversions: i64,
13}
14
15#[derive(Debug, Clone, Copy, Serialize, Deserialize, FromRow)]
16pub struct ActiveSessionCountRow {
17    pub count: 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}