namespace Managing.Api.Models.Responses
{
    /// <summary>
    /// Summary of agent performance and activity
    /// </summary>
    public class AgentSummaryViewModel
    {
        /// <summary>
        /// Username of the agent
        /// </summary>
        public string Username { get; set; }
        
        /// <summary>
        /// Total profit and loss in USD
        /// </summary>
        public decimal TotalPnL { get; set; }
        
        /// <summary>
        /// Profit and loss in the last 24 hours in USD
        /// </summary>
        public decimal PnLLast24h { get; set; }
        
        /// <summary>
        /// Total return on investment as a percentage
        /// </summary>
        public decimal TotalROI { get; set; }
        
        /// <summary>
        /// Return on investment in the last 24 hours as a percentage
        /// </summary>
        public decimal ROILast24h { get; set; }
        
        /// <summary>
        /// Number of winning trades
        /// </summary>
        public int Wins { get; set; }
        
        /// <summary>
        /// Number of losing trades
        /// </summary>
        public int Losses { get; set; }
        
        /// <summary>
        /// Average win rate as a percentage
        /// </summary>
        public int AverageWinRate { get; set; }
        
        /// <summary>
        /// Number of active strategies for this agent
        /// </summary>
        public int ActiveStrategiesCount { get; set; }
        
        /// <summary>
        /// Total volume traded by this agent in USD
        /// </summary>
        public decimal TotalVolume { get; set; }
        
        /// <summary>
        /// Volume traded in the last 24 hours in USD
        /// </summary>
        public decimal VolumeLast24h { get; set; }
    }
    
    /// <summary>
    /// Platform-wide statistics including per-agent summaries
    /// </summary>
    public class PlatformSummaryViewModel
    {
        /// <summary>
        /// Total number of agents on the platform
        /// </summary>
        public int TotalAgents { get; set; }
        
        /// <summary>
        /// Total number of active strategies across all agents
        /// </summary>
        public int TotalActiveStrategies { get; set; }
        
        /// <summary>
        /// Total platform-wide profit and loss in USD
        /// </summary>
        public decimal TotalPlatformPnL { get; set; }
        
        /// <summary>
        /// Total volume traded across all agents in USD
        /// </summary>
        public decimal TotalPlatformVolume { get; set; }
        
        /// <summary>
        /// Total volume traded across all agents in the last 24 hours in USD
        /// </summary>
        public decimal TotalPlatformVolumeLast24h { get; set; }
        
        /// <summary>
        /// Summaries for each agent
        /// </summary>
        public List<AgentSummaryViewModel> AgentSummaries { get; set; } = new List<AgentSummaryViewModel>();
        
        /// <summary>
        /// Time filter applied to the data
        /// </summary>
        public string TimeFilter { get; set; } = "Total";
    }
} 