/*
 * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Purchase\MonetizationHealthResponseDto.cs
 * Created: 2025-10-23
 * Last Modified: 2025-10-23
 * Description: Response DTO for monetization health monitoring
 * Last Edit Notes: Individual file implementation for ethical monetization health monitoring with player protection and spending limit analysis
 */

namespace ShadowedRealms.Shared.DTOs.Purchase
{
    /// <summary>
    /// Response DTO for monetization health monitoring
    /// </summary>
    public class MonetizationHealthResponseDto
    {
        /// <summary>
        /// Player being monitored for monetization health
        /// </summary>
        public int PlayerId { get; set; }

        /// <summary>
        /// Overall monetization health status (Healthy, Warning, Critical)
        /// </summary>
        public string HealthStatus { get; set; } = string.Empty;

        /// <summary>
        /// Player's spending behavior classification
        /// </summary>
        public string SpendingBehaviorType { get; set; } = string.Empty;

        /// <summary>
        /// Total spending amount over monitoring period
        /// </summary>
        public decimal TotalSpending { get; set; }

        /// <summary>
        /// Spending frequency analysis
        /// </summary>
        public Dictionary<string, object> SpendingFrequency { get; set; } = new();

        /// <summary>
        /// Spending pattern analysis and trends
        /// </summary>
        public Dictionary<string, object> SpendingPatterns { get; set; } = new();

        /// <summary>
        /// Player protection measures currently active
        /// </summary>
        public List<string> ActiveProtections { get; set; } = new();

        /// <summary>
        /// Recommended spending limits and controls
        /// </summary>
        public Dictionary<string, object> RecommendedLimits { get; set; } = new();

        /// <summary>
        /// Warning indicators for problematic spending
        /// </summary>
        public List<string> WarningIndicators { get; set; } = new();

        /// <summary>
        /// Positive engagement metrics (time played, social interactions)
        /// </summary>
        public Dictionary<string, object> PositiveEngagement { get; set; } = new();

        /// <summary>
        /// Value provided to player vs spending analysis
        /// </summary>
        public Dictionary<string, object> ValueAnalysis { get; set; } = new();

        /// <summary>
        /// Player satisfaction and retention indicators
        /// </summary>
        public Dictionary<string, object> SatisfactionMetrics { get; set; } = new();

        /// <summary>
        /// Ethical monetization compliance score (0-100)
        /// </summary>
        public int EthicalComplianceScore { get; set; }

        /// <summary>
        /// Recommended actions for maintaining healthy monetization
        /// </summary>
        public List<string> HealthRecommendations { get; set; } = new();

        /// <summary>
        /// When health monitoring was performed
        /// </summary>
        public DateTime MonitoredAt { get; set; }

        /// <summary>
        /// Additional monetization health details
        /// </summary>
        public Dictionary<string, object>? HealthDetails { get; set; }
    }
}