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, Serialize, Deserialize, FromRow)]
16pub struct LiveSessionRow {
17    pub session_id: SessionId,
18    pub user_type: Option<String>,
19    pub started_at: DateTime<Utc>,
20    pub duration_seconds: Option<i32>,
21    pub request_count: Option<i32>,
22    pub last_activity_at: DateTime<Utc>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize, FromRow)]
26pub struct SessionTrendRow {
27    pub started_at: DateTime<Utc>,
28    pub user_id: Option<UserId>,
29    pub duration_seconds: Option<i32>,
30}