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

namespace ShadowedRealms.Shared.DTOs.Alliance
{
    /// <summary>
    /// Response DTO for alliance creation operations
    /// </summary>
    public class AllianceCreationResponseDto
    {
        /// <summary>
        /// Newly created alliance identifier
        /// </summary>
        public int AllianceId { get; set; }

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

        /// <summary>
        /// Success status of alliance creation
        /// </summary>
        public bool Success { get; set; }

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

        /// <summary>
        /// Initial alliance settings and configuration
        /// </summary>
        public Dictionary<string, object> InitialSettings { get; set; } = new();

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

        /// <summary>
        /// Alliance creation timestamp
        /// </summary>
        public DateTime CreatedAt { get; set; }

        /// <summary>
        /// Initial member information
        /// </summary>
        public List<Dictionary<string, object>> InitialMembers { get; set; } = new();

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

        /// <summary>
        /// Available alliance features based on level
        /// </summary>
        public List<string> AvailableFeatures { get; set; } = new();

        /// <summary>
        /// Resource costs for alliance creation
        /// </summary>
        public Dictionary<string, long> CreationCosts { get; set; } = new();

        /// <summary>
        /// Initial alliance treasury and resource allocation
        /// </summary>
        public Dictionary<string, object> InitialTreasury { get; set; } = new();
    }
}