using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;

namespace AxCopilot.Models;

public class ChatExecutionEvent
{
	[JsonPropertyName("timestamp")]
	public DateTime Timestamp { get; set; } = DateTime.Now;

	[JsonPropertyName("type")]
	public string Type { get; set; } = "Thinking";

	[JsonPropertyName("toolName")]
	public string ToolName { get; set; } = "";

	[JsonPropertyName("summary")]
	public string Summary { get; set; } = "";

	[JsonPropertyName("filePath")]
	public string? FilePath { get; set; }

	[JsonPropertyName("success")]
	public bool Success { get; set; } = true;

	[JsonPropertyName("stepCurrent")]
	public int StepCurrent { get; set; }

	[JsonPropertyName("stepTotal")]
	public int StepTotal { get; set; }

	[JsonPropertyName("steps")]
	public List<string>? Steps { get; set; }

	[JsonPropertyName("elapsedMs")]
	public long ElapsedMs { get; set; }

	[JsonPropertyName("inputTokens")]
	public int InputTokens { get; set; }

	[JsonPropertyName("outputTokens")]
	public int OutputTokens { get; set; }

	[JsonPropertyName("toolInput")]
	public string? ToolInput { get; set; }

	[JsonPropertyName("iteration")]
	public int Iteration { get; set; }
}
