/*
 * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\TreasuryStatusResponseDto.cs
 * Created: 2025-10-22
 * Last Modified: 2025-10-22
 * Description: Response DTO for alliance treasury status and financial overview
 * Last Edit Notes: Initial creation following established Alliance DTO patterns
 */

namespace ShadowedRealms.Shared.DTOs.Alliance
{
    /// <summary>
    /// Response DTO for alliance treasury status and financial overview
    /// </summary>
    public class TreasuryStatusResponseDto
    {
        /// <summary>
        /// Alliance ID for treasury status
        /// </summary>
        public int AllianceId { get; set; }

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

        /// <summary>
        /// Current treasury balances by resource type
        /// </summary>
        public Dictionary<string, decimal> CurrentBalances { get; set; } = new();

        /// <summary>
        /// Treasury capacity limits
        /// </summary>
        public Dictionary<string, decimal> CapacityLimits { get; set; } = new();

        /// <summary>
        /// Treasury utilization percentages
        /// </summary>
        public Dictionary<string, decimal> UtilizationPercentages { get; set; } = new();

        /// <summary>
        /// Daily income from various sources
        /// </summary>
        public Dictionary<string, decimal> DailyIncome { get; set; } = new();

        /// <summary>
        /// Daily expenditures by category
        /// </summary>
        public Dictionary<string, decimal> DailyExpenses { get; set; } = new();

        /// <summary>
        /// Net daily treasury flow (income - expenses)
        /// </summary>
        public Dictionary<string, decimal> NetDailyFlow { get; set; } = new();

        /// <summary>
        /// Recent treasury transactions
        /// </summary>
        public List<Dictionary<string, object>> RecentTransactions { get; set; } = new();

        /// <summary>
        /// Pending treasury operations
        /// </summary>
        public List<Dictionary<string, object>> PendingOperations { get; set; } = new();

        /// <summary>
        /// Treasury access permissions by role
        /// </summary>
        public Dictionary<string, Dictionary<string, bool>> AccessPermissions { get; set; } = new();

        /// <summary>
        /// Financial health indicators
        /// </summary>
        public Dictionary<string, decimal> HealthIndicators { get; set; } = new();

        /// <summary>
        /// Resource allocation by category
        /// </summary>
        public Dictionary<string, decimal> ResourceAllocations { get; set; } = new();

        /// <summary>
        /// Treasury growth trends over time
        /// </summary>
        public Dictionary<string, List<Dictionary<string, object>>> GrowthTrends { get; set; } = new();

        /// <summary>
        /// Emergency reserve status
        /// </summary>
        public Dictionary<string, object> EmergencyReserves { get; set; } = new();

        /// <summary>
        /// When this treasury status was last calculated
        /// </summary>
        public DateTime StatusCalculated { get; set; } = DateTime.UtcNow;
    }
}