/*
 * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\MemberActivityResponseDto.cs
 * Created: 2025-10-22
 * Last Modified: 2025-10-22
 * Description: Response DTO for alliance member activity tracking and statistics
 * Last Edit Notes: Initial creation following established Alliance DTO patterns
 */

namespace ShadowedRealms.Shared.DTOs.Alliance
{
    /// <summary>
    /// Response DTO for alliance member activity tracking and statistics
    /// </summary>
    public class MemberActivityResponseDto
    {
        /// <summary>
        /// Alliance ID for member activity
        /// </summary>
        public int AllianceId { get; set; }

        /// <summary>
        /// Total alliance member count
        /// </summary>
        public int TotalMembers { get; set; }

        /// <summary>
        /// Active members in last 24 hours
        /// </summary>
        public int ActiveMembers24h { get; set; }

        /// <summary>
        /// Active members in last 7 days
        /// </summary>
        public int ActiveMembers7d { get; set; }

        /// <summary>
        /// Detailed member activity statistics
        /// </summary>
        public List<Dictionary<string, object>> MemberActivities { get; set; } = new();

        /// <summary>
        /// Activity categories and participation
        /// </summary>
        public Dictionary<string, int> ActivityCategories { get; set; } = new();

        /// <summary>
        /// Top contributors by activity type
        /// </summary>
        public Dictionary<string, List<Dictionary<string, object>>> TopContributors { get; set; } = new();

        /// <summary>
        /// Inactive members requiring attention
        /// </summary>
        public List<Dictionary<string, object>> InactiveMembers { get; set; } = new();

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

        /// <summary>
        /// Alliance activity score (0-100)
        /// </summary>
        public decimal AllianceActivityScore { get; set; }

        /// <summary>
        /// Activity benchmarks and goals
        /// </summary>
        public Dictionary<string, object> ActivityBenchmarks { get; set; } = new();

        /// <summary>
        /// Time period for this activity report
        /// </summary>
        public Dictionary<string, DateTime> ReportPeriod { get; set; } = new();

        /// <summary>
        /// When this activity report was generated
        /// </summary>
        public DateTime ReportGenerated { get; set; } = DateTime.UtcNow;
    }
}