// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 // source: stats.sql package db import ( "context" ) const getSessionFileChangeSummary = `-- name: GetSessionFileChangeSummary :many SELECT file_path, CAST(COALESCE(SUM(added), 0) AS INTEGER) AS total_added, CAST(COALESCE(SUM(removed), 0) AS INTEGER) AS total_removed, CAST(COUNT(*) AS INTEGER) AS change_count FROM file_changes WHERE session_id = ? GROUP BY file_path ORDER BY file_path ASC ` type GetSessionFileChangeSummaryRow struct { FilePath string `json:"file_path"` TotalAdded int64 `json:"total_added"` TotalRemoved int64 `json:"total_removed"` ChangeCount int64 `json:"change_count"` } func (q *Queries) GetSessionFileChangeSummary(ctx context.Context, sessionID int64) ([]GetSessionFileChangeSummaryRow, error) { rows, err := q.db.QueryContext(ctx, getSessionFileChangeSummary, sessionID) if err != nil { return nil, err } defer rows.Close() items := []GetSessionFileChangeSummaryRow{} for rows.Next() { var i GetSessionFileChangeSummaryRow if err := rows.Scan( &i.FilePath, &i.TotalAdded, &i.TotalRemoved, &i.ChangeCount, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Close(); err != nil { return nil, err } if err := rows.Err(); err != nil { return nil, err } return items, nil } const getSessionFileChanges = `-- name: GetSessionFileChanges :many SELECT id, session_id, file_path, tool_name, added, removed, created_at FROM file_changes WHERE session_id = ? ORDER BY created_at ASC ` func (q *Queries) GetSessionFileChanges(ctx context.Context, sessionID int64) ([]FileChange, error) { rows, err := q.db.QueryContext(ctx, getSessionFileChanges, sessionID) if err != nil { return nil, err } defer rows.Close() items := []FileChange{} for rows.Next() { var i FileChange if err := rows.Scan( &i.ID, &i.SessionID, &i.FilePath, &i.ToolName, &i.Added, &i.Removed, &i.CreatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Close(); err != nil { return nil, err } if err := rows.Err(); err != nil { return nil, err } return items, nil } const getSessionTokenStats = `-- name: GetSessionTokenStats :many SELECT id, session_id, turn, eval_count, prompt_tokens, model, created_at FROM token_stats WHERE session_id = ? ORDER BY turn ASC ` func (q *Queries) GetSessionTokenStats(ctx context.Context, sessionID int64) ([]TokenStat, error) { rows, err := q.db.QueryContext(ctx, getSessionTokenStats, sessionID) if err != nil { return nil, err } defer rows.Close() items := []TokenStat{} for rows.Next() { var i TokenStat if err := rows.Scan( &i.ID, &i.SessionID, &i.Turn, &i.EvalCount, &i.PromptTokens, &i.Model, &i.CreatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Close(); err != nil { return nil, err } if err := rows.Err(); err != nil { return nil, err } return items, nil } const getSessionTotalTokens = `-- name: GetSessionTotalTokens :one SELECT CAST(COALESCE(SUM(eval_count), 0) AS INTEGER) AS total_eval, CAST(COALESCE(SUM(prompt_tokens), 0) AS INTEGER) AS total_prompt, CAST(COUNT(*) AS INTEGER) AS turn_count FROM token_stats WHERE session_id = ? ` type GetSessionTotalTokensRow struct { TotalEval int64 `json:"total_eval"` TotalPrompt int64 `json:"total_prompt"` TurnCount int64 `json:"turn_count"` } func (q *Queries) GetSessionTotalTokens(ctx context.Context, sessionID int64) (GetSessionTotalTokensRow, error) { row := q.db.QueryRowContext(ctx, getSessionTotalTokens, sessionID) var i GetSessionTotalTokensRow err := row.Scan(&i.TotalEval, &i.TotalPrompt, &i.TurnCount) return i, err } const recordFileChange = `-- name: RecordFileChange :one INSERT INTO file_changes (session_id, file_path, tool_name, added, removed) VALUES (?, ?, ?, ?, ?) RETURNING id, session_id, file_path, tool_name, added, removed, created_at ` type RecordFileChangeParams struct { SessionID int64 `json:"session_id"` FilePath string `json:"file_path"` ToolName string `json:"tool_name"` Added int64 `json:"added"` Removed int64 `json:"removed"` } func (q *Queries) RecordFileChange(ctx context.Context, arg RecordFileChangeParams) (FileChange, error) { row := q.db.QueryRowContext(ctx, recordFileChange, arg.SessionID, arg.FilePath, arg.ToolName, arg.Added, arg.Removed, ) var i FileChange err := row.Scan( &i.ID, &i.SessionID, &i.FilePath, &i.ToolName, &i.Added, &i.Removed, &i.CreatedAt, ) return i, err } const recordTokenUsage = `-- name: RecordTokenUsage :one INSERT INTO token_stats (session_id, turn, eval_count, prompt_tokens, model) VALUES (?, ?, ?, ?, ?) RETURNING id, session_id, turn, eval_count, prompt_tokens, model, created_at ` type RecordTokenUsageParams struct { SessionID int64 `json:"session_id"` Turn int64 `json:"turn"` EvalCount int64 `json:"eval_count"` PromptTokens int64 `json:"prompt_tokens"` Model string `json:"model"` } func (q *Queries) RecordTokenUsage(ctx context.Context, arg RecordTokenUsageParams) (TokenStat, error) { row := q.db.QueryRowContext(ctx, recordTokenUsage, arg.SessionID, arg.Turn, arg.EvalCount, arg.PromptTokens, arg.Model, ) var i TokenStat err := row.Scan( &i.ID, &i.SessionID, &i.Turn, &i.EvalCount, &i.PromptTokens, &i.Model, &i.CreatedAt, ) return i, err }