using System.Text.Json.Serialization; namespace AxCopilot.Models; /// /// 하루치 사용 통계. %APPDATA%\AxCopilot\stats\YYYY-MM-DD.json 에 저장됩니다. /// public class DailyUsageStats { [JsonPropertyName("date")] public string Date { get; set; } = ""; /// 런처가 호출된 횟수 (단축키 누름 횟수) [JsonPropertyName("launcherOpens")] public int LauncherOpens { get; set; } /// 명령어별 실행 횟수. key = 프리픽스 포함 명령 문자열 (예: "/lock", "calc") [JsonPropertyName("commandUsage")] public Dictionary CommandUsage { get; set; } = new(); /// PC 잠금 해제 후 활성 상태였던 누적 시간 (초) [JsonPropertyName("activeSeconds")] public int ActiveSeconds { get; set; } // ─── AX Agent 통계 ────────────────────────────────────────────────── /// 탭별 대화 횟수. key = "Chat" | "Cowork" | "Code" [JsonPropertyName("chatCounts")] public Dictionary ChatCounts { get; set; } = new(); /// 일별 총 사용 토큰 수 (Prompt + Completion). [JsonPropertyName("totalTokens")] public long TotalTokens { get; set; } /// 일별 프롬프트 토큰 수. [JsonPropertyName("promptTokens")] public long PromptTokens { get; set; } /// 일별 완료 토큰 수. [JsonPropertyName("completionTokens")] public long CompletionTokens { get; set; } /// 모델별 프롬프트 토큰 수. key = service:model [JsonPropertyName("modelPromptTokens")] public Dictionary ModelPromptTokens { get; set; } = new(); /// 모델별 완료 토큰 수. key = service:model [JsonPropertyName("modelCompletionTokens")] public Dictionary ModelCompletionTokens { get; set; } = new(); /// 모델별 compact 이후 프롬프트 토큰 수. key = service:model [JsonPropertyName("postCompactionPromptTokens")] public Dictionary PostCompactionPromptTokens { get; set; } = new(); /// 모델별 compact 이후 완료 토큰 수. key = service:model [JsonPropertyName("postCompactionCompletionTokens")] public Dictionary PostCompactionCompletionTokens { get; set; } = new(); }