/*
 * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\BattlePredictionResponseDto.cs
 * Created: 2025-10-23
 * Last Modified: 2025-10-23
 * Description: Response DTO for battle outcome predictions
 * Last Edit Notes: Individual file implementation for battle prediction results
 */

namespace ShadowedRealms.Shared.DTOs.Combat
{
    /// <summary>
    /// Response DTO for battle outcome predictions
    /// </summary>
    public class BattlePredictionResponseDto
    {
        /// <summary>
        /// Combat scenario ID for the prediction
        /// </summary>
        public int ScenarioId { get; set; }

        /// <summary>
        /// Attacker player ID
        /// </summary>
        public int AttackerId { get; set; }

        /// <summary>
        /// Defender player ID
        /// </summary>
        public int DefenderId { get; set; }

        /// <summary>
        /// Predicted battle outcome probabilities
        /// </summary>
        public Dictionary<string, decimal> OutcomeProbabilities { get; set; } = new();

        /// <summary>
        /// Estimated casualty ranges for attacker
        /// </summary>
        public Dictionary<string, Dictionary<string, long>> AttackerCasualtyEstimates { get; set; } = new();

        /// <summary>
        /// Estimated casualty ranges for defender
        /// </summary>
        public Dictionary<string, Dictionary<string, long>> DefenderCasualtyEstimates { get; set; } = new();

        /// <summary>
        /// Power score comparison analysis
        /// </summary>
        public Dictionary<string, object> PowerAnalysis { get; set; } = new();

        /// <summary>
        /// Dragon impact predictions
        /// </summary>
        public Dictionary<string, object> DragonImpactPredictions { get; set; } = new();

        /// <summary>
        /// Tactical advantage assessments
        /// </summary>
        public Dictionary<string, decimal> TacticalAdvantages { get; set; } = new();

        /// <summary>
        /// Resource gain/loss predictions
        /// </summary>
        public Dictionary<string, Dictionary<string, long>> ResourcePredictions { get; set; } = new();

        /// <summary>
        /// Battle duration estimates
        /// </summary>
        public Dictionary<string, TimeSpan> DurationEstimates { get; set; } = new();

        /// <summary>
        /// Confidence levels for predictions
        /// </summary>
        public Dictionary<string, decimal> PredictionConfidence { get; set; } = new();

        /// <summary>
        /// When predictions were calculated
        /// </summary>
        public DateTime PredictionTime { get; set; }

        /// <summary>
        /// Additional prediction analytics and metadata
        /// </summary>
        public Dictionary<string, object> PredictionAnalytics { get; set; } = new();
    }
}