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

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

        /// <summary>
        /// All active research benefits by category
        /// </summary>
        public Dictionary<string, List<Dictionary<string, object>>> ActiveBenefits { get; set; } = new();

        /// <summary>
        /// Military research benefits and bonuses
        /// </summary>
        public Dictionary<string, object> MilitaryBenefits { get; set; } = new();

        /// <summary>
        /// Economic research benefits and bonuses
        /// </summary>
        public Dictionary<string, object> EconomicBenefits { get; set; } = new();

        /// <summary>
        /// Technology research benefits and bonuses
        /// </summary>
        public Dictionary<string, object> TechnologyBenefits { get; set; } = new();

        /// <summary>
        /// Diplomatic and social research benefits
        /// </summary>
        public Dictionary<string, object> DiplomaticBenefits { get; set; } = new();

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

        /// <summary>
        /// Coalition-specific research bonuses
        /// </summary>
        public Dictionary<string, object> CoalitionBonuses { get; set; } = new();

        /// <summary>
        /// Member-specific benefits distribution
        /// </summary>
        public Dictionary<int, Dictionary<string, object>> MemberBenefits { get; set; } = new();

        /// <summary>
        /// Total research power and effectiveness ratings
        /// </summary>
        public Dictionary<string, double> EffectivenessRatings { get; set; } = new();

        /// <summary>
        /// Upcoming research benefits that can be unlocked
        /// </summary>
        public List<Dictionary<string, object>> UpcomingBenefits { get; set; } = new();

        /// <summary>
        /// When benefits information was last calculated
        /// </summary>
        public DateTime LastCalculated { get; set; }
    }
}