/*
 * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\ResearchStatusResponseDto.cs
 * Created: 2025-10-22
 * Last Modified: 2025-10-22
 * Description: Response DTO for alliance research status information
 * Last Edit Notes: Initial implementation for research tree progress and status retrieval
 */

namespace ShadowedRealms.Shared.DTOs.Alliance
{
    /// <summary>
    /// Response DTO for alliance research status information
    /// </summary>
    public class ResearchStatusResponseDto
    {
        /// <summary>
        /// Alliance identifier for research status
        /// </summary>
        public int AllianceId { get; set; }

        /// <summary>
        /// Overall alliance research power level
        /// </summary>
        public int OverallResearchLevel { get; set; }

        /// <summary>
        /// Total research points accumulated
        /// </summary>
        public long TotalResearchPoints { get; set; }

        /// <summary>
        /// Available research points for spending
        /// </summary>
        public long AvailableResearchPoints { get; set; }

        /// <summary>
        /// Military research tree progress
        /// </summary>
        public Dictionary<string, object> MilitaryResearch { get; set; } = new();

        /// <summary>
        /// Economic research tree progress
        /// </summary>
        public Dictionary<string, object> EconomicResearch { get; set; } = new();

        /// <summary>
        /// Technology research tree progress
        /// </summary>
        public Dictionary<string, object> TechnologyResearch { get; set; } = new();

        /// <summary>
        /// Diplomatic research tree progress
        /// </summary>
        public Dictionary<string, object> DiplomaticResearch { get; set; } = new();

        /// <summary>
        /// Territory and construction research progress
        /// </summary>
        public Dictionary<string, object> TerritoryResearch { get; set; } = new();

        /// <summary>
        /// Currently active research projects
        /// </summary>
        public List<Dictionary<string, object>> ActiveProjects { get; set; } = new();

        /// <summary>
        /// Research projects available for starting
        /// </summary>
        public List<Dictionary<string, object>> AvailableProjects { get; set; } = new();

        /// <summary>
        /// Member contribution statistics
        /// </summary>
        public Dictionary<int, Dictionary<string, object>> MemberContributions { get; set; } = new();

        /// <summary>
        /// Research rate and efficiency bonuses
        /// </summary>
        public Dictionary<string, double> ResearchBonuses { get; set; } = new();

        /// <summary>
        /// When research status was last updated
        /// </summary>
        public DateTime LastUpdated { get; set; }
    }
}