use agtrace_types::{ProjectHash, RepositoryHash, SpawnContext};
#[derive(Debug, Clone)]
pub struct ProjectRecord {
pub hash: ProjectHash,
pub root_path: Option<String>,
pub last_scanned_at: Option<String>,
}
#[derive(Debug, Clone)]
pub struct SessionRecord {
pub id: String,
pub project_hash: ProjectHash,
pub repository_hash: Option<RepositoryHash>,
pub provider: String,
pub start_ts: Option<String>,
pub end_ts: Option<String>,
pub snippet: Option<String>,
pub is_valid: bool,
pub parent_session_id: Option<String>,
pub spawned_by: Option<SpawnContext>,
}
#[derive(Debug, Clone)]
pub struct LogFileRecord {
pub path: String,
pub session_id: String,
pub role: String,
pub file_size: Option<i64>,
pub mod_time: Option<String>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct SessionSummary {
pub id: String,
pub provider: String,
pub project_hash: ProjectHash,
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_hash: Option<RepositoryHash>,
pub project_root: Option<String>,
pub start_ts: Option<String>,
pub snippet: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parent_session_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub spawned_by: Option<SpawnContext>,
}