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

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

        /// <summary>
        /// Alliance name
        /// </summary>
        public string AllianceName { get; set; } = string.Empty;

        /// <summary>
        /// Alliance description
        /// </summary>
        public string Description { get; set; } = string.Empty;

        /// <summary>
        /// Alliance leader information
        /// </summary>
        public Dictionary<string, object> LeaderInfo { get; set; } = new();

        /// <summary>
        /// Current member count
        /// </summary>
        public int MemberCount { get; set; }

        /// <summary>
        /// Maximum member capacity
        /// </summary>
        public int MaxMembers { get; set; }

        /// <summary>
        /// Alliance level and experience
        /// </summary>
        public Dictionary<string, object> AllianceLevel { get; set; } = new();

        /// <summary>
        /// Alliance power rating
        /// </summary>
        public long TotalPower { get; set; }

        /// <summary>
        /// Current coalition memberships
        /// </summary>
        public List<Dictionary<string, object>> CoalitionMemberships { get; set; } = new();

        /// <summary>
        /// Alliance territory holdings
        /// </summary>
        public Dictionary<string, object> Territory { get; set; } = new();

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

        /// <summary>
        /// Alliance recruitment settings
        /// </summary>
        public Dictionary<string, object> RecruitmentSettings { get; set; } = new();

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