/*
 * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Purchase\VipBenefitClaimResponseDto.cs
 * Created: 2025-10-23
 * Last Modified: 2025-10-23
 * Description: Response DTO for VIP benefit claim results
 * Last Edit Notes: Individual file implementation for VIP benefit claim results with cooldown tracking and multiplier calculations
 */

namespace ShadowedRealms.Shared.DTOs.Purchase
{
    /// <summary>
    /// Response DTO for VIP benefit claim results
    /// </summary>
    public class VipBenefitClaimResponseDto
    {
        /// <summary>
        /// Player who claimed the benefit
        /// </summary>
        public int PlayerId { get; set; }

        /// <summary>
        /// Type of benefit that was claimed
        /// </summary>
        public string BenefitType { get; set; } = string.Empty;

        /// <summary>
        /// Specific benefit identifier that was claimed
        /// </summary>
        public string BenefitId { get; set; } = string.Empty;

        /// <summary>
        /// Whether the claim was successful
        /// </summary>
        public bool ClaimSuccessful { get; set; }

        /// <summary>
        /// Quantity of benefit successfully claimed
        /// </summary>
        public int ClaimedQuantity { get; set; }

        /// <summary>
        /// Base benefit value before multipliers
        /// </summary>
        public decimal BaseBenefitValue { get; set; }

        /// <summary>
        /// Final benefit value after all multipliers
        /// </summary>
        public decimal FinalBenefitValue { get; set; }

        /// <summary>
        /// Multipliers applied to the benefit
        /// </summary>
        public Dictionary<string, decimal> AppliedMultipliers { get; set; } = new();

        /// <summary>
        /// Resources or items granted
        /// </summary>
        public Dictionary<string, long> GrantedResources { get; set; } = new();

        /// <summary>
        /// Special items or bonuses granted
        /// </summary>
        public List<string> SpecialBenefitsGranted { get; set; } = new();

        /// <summary>
        /// When this benefit can be claimed again
        /// </summary>
        public DateTime? NextClaimAvailable { get; set; }

        /// <summary>
        /// Remaining claims for this benefit type
        /// </summary>
        public int? RemainingClaims { get; set; }

        /// <summary>
        /// Whether this was a secret tier benefit
        /// </summary>
        public bool WasSecretTierBenefit { get; set; }

        /// <summary>
        /// When the benefit was claimed
        /// </summary>
        public DateTime ClaimedAt { get; set; }

        /// <summary>
        /// Additional claim details and metadata
        /// </summary>
        public Dictionary<string, object>? ClaimDetails { get; set; }
    }
}