/*
 * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\BuildingConstructionResponseDto.cs
 * Created: 2025-10-23
 * Last Modified: 2025-10-23
 * Description: Response DTO for alliance building construction results
 * Last Edit Notes: Individual file implementation for building construction results with resource tracking and timeline management
 */

namespace ShadowedRealms.Shared.DTOs.Alliance
{
    /// <summary>
    /// Response DTO for alliance building construction results
    /// </summary>
    public class BuildingConstructionResponseDto
    {
        /// <summary>
        /// Alliance performing the construction
        /// </summary>
        public int AllianceId { get; set; }

        /// <summary>
        /// Type of building being constructed
        /// </summary>
        public string BuildingType { get; set; } = string.Empty;

        /// <summary>
        /// Current building level
        /// </summary>
        public int CurrentLevel { get; set; }

        /// <summary>
        /// Target level for construction
        /// </summary>
        public int TargetLevel { get; set; }

        /// <summary>
        /// Whether construction was successfully initiated
        /// </summary>
        public bool ConstructionStarted { get; set; }

        /// <summary>
        /// Total resources required for construction
        /// </summary>
        public Dictionary<string, decimal> RequiredResources { get; set; } = new();

        /// <summary>
        /// Resources contributed so far
        /// </summary>
        public Dictionary<string, decimal> ContributedResources { get; set; } = new();

        /// <summary>
        /// Member contributions to construction
        /// </summary>
        public Dictionary<string, object> MemberContributions { get; set; } = new();

        /// <summary>
        /// Estimated completion time
        /// </summary>
        public DateTime? EstimatedCompletion { get; set; }

        /// <summary>
        /// Construction progress percentage
        /// </summary>
        public decimal ProgressPercentage { get; set; }

        /// <summary>
        /// Benefits unlocked at current level
        /// </summary>
        public List<string> CurrentBenefits { get; set; } = new();

        /// <summary>
        /// Benefits that will be unlocked at target level
        /// </summary>
        public List<string> UpcomingBenefits { get; set; } = new();

        /// <summary>
        /// When construction was initiated or last updated
        /// </summary>
        public DateTime UpdatedAt { get; set; }

        /// <summary>
        /// Additional construction details
        /// </summary>
        public Dictionary<string, object>? ConstructionDetails { get; set; }
    }
}