/*
 * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Purchase\SkillAlternativesResponseDto.cs
 * Created: 2025-10-23
 * Last Modified: 2025-10-23
 * Description: Response DTO for skill-based alternatives to premium purchases
 * Last Edit Notes: Individual file implementation for skill alternatives with achievement paths and effectiveness tracking
 */

namespace ShadowedRealms.Shared.DTOs.Purchase
{
    /// <summary>
    /// Response DTO for skill-based alternatives to premium purchases
    /// </summary>
    public class SkillAlternativesResponseDto
    {
        /// <summary>
        /// Player requesting skill alternatives
        /// </summary>
        public int PlayerId { get; set; }

        /// <summary>
        /// Premium item being replaced with skill alternatives
        /// </summary>
        public string PremiumItemId { get; set; } = string.Empty;

        /// <summary>
        /// Maximum effectiveness achievable through skill (typically 70%)
        /// </summary>
        public int MaxSkillEffectiveness { get; set; }

        /// <summary>
        /// Player's current effectiveness level
        /// </summary>
        public int CurrentEffectiveness { get; set; }

        /// <summary>
        /// Available skill-based achievement paths
        /// </summary>
        public List<Dictionary<string, object>> SkillPaths { get; set; } = new();

        /// <summary>
        /// Recommended daily activities for skill building
        /// </summary>
        public List<Dictionary<string, object>> DailyActivities { get; set; } = new();

        /// <summary>
        /// Alliance-based skill alternatives available
        /// </summary>
        public List<Dictionary<string, object>> AllianceAlternatives { get; set; } = new();

        /// <summary>
        /// Kingdom event opportunities for skill advancement
        /// </summary>
        public List<Dictionary<string, object>> KingdomEventOpportunities { get; set; } = new();

        /// <summary>
        /// Achievement milestones and rewards
        /// </summary>
        public Dictionary<string, object> AchievementMilestones { get; set; } = new();

        /// <summary>
        /// Estimated time to reach desired effectiveness
        /// </summary>
        public Dictionary<string, object> TimeEstimates { get; set; } = new();

        /// <summary>
        /// Progress tracking for existing skill alternatives
        /// </summary>
        public Dictionary<string, object>? CurrentProgress { get; set; }

        /// <summary>
        /// When alternatives were calculated
        /// </summary>
        public DateTime CalculatedAt { get; set; }

        /// <summary>
        /// Additional skill alternative details
        /// </summary>
        public Dictionary<string, object>? AlternativeDetails { get; set; }
    }
}