/*
 * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\CasualtyProcessingResponseDto.cs
 * Created: 2025-10-23
 * Last Modified: 2025-10-23
 * Description: Response DTO for casualty processing after battles
 * Last Edit Notes: Individual file implementation for casualty processing results
 */

namespace ShadowedRealms.Shared.DTOs.Combat
{
    /// <summary>
    /// Response DTO for casualty processing after battles
    /// </summary>
    public class CasualtyProcessingResponseDto
    {
        /// <summary>
        /// Combat log ID for the processed battle
        /// </summary>
        public int CombatLogId { get; set; }

        /// <summary>
        /// Player ID whose casualties were processed
        /// </summary>
        public int PlayerId { get; set; }

        /// <summary>
        /// Total casualties by troop type
        /// </summary>
        public Dictionary<string, long> TotalCasualties { get; set; } = new();

        /// <summary>
        /// Troops killed permanently
        /// </summary>
        public Dictionary<string, long> TroopsKilled { get; set; } = new();

        /// <summary>
        /// Troops wounded and sent to hospital
        /// </summary>
        public Dictionary<string, long> TroopsWounded { get; set; } = new();

        /// <summary>
        /// Troops that survived the battle
        /// </summary>
        public Dictionary<string, long> TroopsSurvived { get; set; } = new();

        /// <summary>
        /// Hospital capacity and healing information
        /// </summary>
        public Dictionary<string, object> HospitalStatus { get; set; } = new();

        /// <summary>
        /// Dragon casualties and status
        /// </summary>
        public Dictionary<string, object>? DragonCasualties { get; set; }

        /// <summary>
        /// Equipment lost or damaged in battle
        /// </summary>
        public Dictionary<string, object> EquipmentDamage { get; set; } = new();

        /// <summary>
        /// Casualty reduction bonuses applied
        /// </summary>
        public Dictionary<string, decimal> CasualtyReductions { get; set; } = new();

        /// <summary>
        /// Alliance hospital assistance provided
        /// </summary>
        public Dictionary<string, object> AllianceAssistance { get; set; } = new();

        /// <summary>
        /// When casualty processing was completed
        /// </summary>
        public DateTime ProcessingTime { get; set; }

        /// <summary>
        /// Additional casualty processing data
        /// </summary>
        public Dictionary<string, object> ProcessingMetadata { get; set; } = new();
    }
}