91 lines
1.7 KiB
TypeScript
91 lines
1.7 KiB
TypeScript
// Database Types
|
|
|
|
export interface Session {
|
|
id: number;
|
|
session_id: string;
|
|
project_id: number;
|
|
user_id: number;
|
|
started_at: Date;
|
|
last_updated: Date;
|
|
conversation: Message[];
|
|
file_changes: FileChange[];
|
|
message_count: number;
|
|
duration_minutes: number;
|
|
file_change_count: number;
|
|
summary?: string;
|
|
total_tokens?: number;
|
|
prompt_tokens?: number;
|
|
completion_tokens?: number;
|
|
estimated_cost_usd?: number;
|
|
primary_ai_model?: string;
|
|
ide_name?: string;
|
|
github_commit_sha?: string;
|
|
github_branch?: string;
|
|
}
|
|
|
|
export interface Message {
|
|
role: string;
|
|
content: string;
|
|
timestamp: Date;
|
|
}
|
|
|
|
export interface FileChange {
|
|
file: string;
|
|
event: string;
|
|
timestamp: Date;
|
|
}
|
|
|
|
export interface WorkCompleted {
|
|
id: number;
|
|
session_id: number;
|
|
project_id: number;
|
|
title: string;
|
|
description?: string;
|
|
category: string;
|
|
files_modified: string[];
|
|
completed_at: Date;
|
|
github_commit_sha?: string;
|
|
}
|
|
|
|
export interface Project {
|
|
id: number;
|
|
name: string;
|
|
workspace_path: string;
|
|
status: string;
|
|
created_at: Date;
|
|
}
|
|
|
|
export interface ArchitecturalDecision {
|
|
id: number;
|
|
project_id: number;
|
|
title: string;
|
|
context?: string;
|
|
decision: string;
|
|
consequences?: string;
|
|
status: string;
|
|
decided_at: Date;
|
|
tags: string[];
|
|
}
|
|
|
|
export interface ApiEndpoint {
|
|
id: number;
|
|
project_id: number;
|
|
method: string;
|
|
path: string;
|
|
description?: string;
|
|
is_active: boolean;
|
|
first_detected: Date;
|
|
last_detected: Date;
|
|
}
|
|
|
|
// Dashboard Stats
|
|
export interface DashboardStats {
|
|
totalSessions: number;
|
|
totalCost: number;
|
|
totalTokens: number;
|
|
totalFeatures: number;
|
|
completedFeatures: number;
|
|
totalDuration: number;
|
|
}
|
|
|