/*
 * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\ResourceTradingResponseDto.cs
 * Created: 2025-10-22
 * Last Modified: 2025-10-22
 * Description: Response DTO for alliance resource trading operations and market data
 * Last Edit Notes: Initial creation following established Alliance DTO patterns
 */

namespace ShadowedRealms.Shared.DTOs.Alliance
{
    /// <summary>
    /// Response DTO for alliance resource trading operations and market data
    /// </summary>
    public class ResourceTradingResponseDto
    {
        /// <summary>
        /// Unique identifier for the trading operation
        /// </summary>
        public int TradeId { get; set; }

        /// <summary>
        /// Alliance initiating the trade
        /// </summary>
        public int InitiatingAllianceId { get; set; }

        /// <summary>
        /// Alliance receiving the trade (if direct trade)
        /// </summary>
        public int? TargetAllianceId { get; set; }

        /// <summary>
        /// Type of trade (Direct, Market, Coalition, Emergency)
        /// </summary>
        public string TradeType { get; set; } = string.Empty;

        /// <summary>
        /// Resources being offered
        /// </summary>
        public Dictionary<string, decimal> OfferedResources { get; set; } = new();

        /// <summary>
        /// Resources being requested
        /// </summary>
        public Dictionary<string, decimal> RequestedResources { get; set; } = new();

        /// <summary>
        /// Current trade exchange rates
        /// </summary>
        public Dictionary<string, decimal> ExchangeRates { get; set; } = new();

        /// <summary>
        /// Trade status (Pending, Active, Completed, Cancelled, Expired)
        /// </summary>
        public string TradeStatus { get; set; } = string.Empty;

        /// <summary>
        /// Available trading partners
        /// </summary>
        public List<Dictionary<string, object>> TradingPartners { get; set; } = new();

        /// <summary>
        /// Active market offers
        /// </summary>
        public List<Dictionary<string, object>> MarketOffers { get; set; } = new();

        /// <summary>
        /// Trade history and trends
        /// </summary>
        public List<Dictionary<string, object>> TradeHistory { get; set; } = new();

        /// <summary>
        /// Coalition trading benefits
        /// </summary>
        public Dictionary<string, object> CoalitionBenefits { get; set; } = new();

        /// <summary>
        /// Trade completion percentage
        /// </summary>
        public decimal CompletionPercentage { get; set; }

        /// <summary>
        /// Time remaining for trade completion
        /// </summary>
        public TimeSpan? TradeTimeRemaining { get; set; }

        /// <summary>
        /// Trading fees and costs
        /// </summary>
        public Dictionary<string, decimal> TradingCosts { get; set; } = new();

        /// <summary>
        /// When this trading information was last updated
        /// </summary>
        public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
    }
}