systemprompt_analytics/models/cli/
session.rs1use 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}