/*
 * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\TerritoryClaimResponseDto.cs
 * Created: 2025-10-22
 * Last Modified: 2025-10-22
 * Description: Response DTO for alliance territory claim operations
 * Last Edit Notes: Initial implementation for territory acquisition results
 */

namespace ShadowedRealms.Shared.DTOs.Alliance
{
    /// <summary>
    /// Response DTO for alliance territory claim operations
    /// </summary>
    public class TerritoryClaimResponseDto
    {
        /// <summary>
        /// Alliance identifier claiming territory
        /// </summary>
        public int AllianceId { get; set; }

        /// <summary>
        /// Territory claim success status
        /// </summary>
        public bool Success { get; set; }

        /// <summary>
        /// Claim result message
        /// </summary>
        public string Message { get; set; } = string.Empty;

        /// <summary>
        /// Claimed territory information
        /// </summary>
        public Dictionary<string, object> ClaimedTerritory { get; set; } = new();

        /// <summary>
        /// Territory coordinates and boundaries
        /// </summary>
        public Dictionary<string, object> TerritoryBoundaries { get; set; } = new();

        /// <summary>
        /// Resource nodes and strategic points in territory
        /// </summary>
        public List<Dictionary<string, object>> TerritoryAssets { get; set; } = new();

        /// <summary>
        /// Claim costs and requirements met
        /// </summary>
        public Dictionary<string, long> ClaimCosts { get; set; } = new();

        /// <summary>
        /// Territory claim timestamp
        /// </summary>
        public DateTime ClaimedAt { get; set; }

        /// <summary>
        /// Territory control percentage
        /// </summary>
        public double ControlPercentage { get; set; }

        /// <summary>
        /// Neighboring territories and potential conflicts
        /// </summary>
        public List<Dictionary<string, object>> NeighboringTerritories { get; set; } = new();
    }
}