/*
 * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\AllianceUpdateResponseDto.cs
 * Created: 2025-10-22
 * Last Modified: 2025-10-22
 * Description: Response DTO for alliance update operations
 * Last Edit Notes: Initial implementation for alliance modification results
 */

namespace ShadowedRealms.Shared.DTOs.Alliance
{
    /// <summary>
    /// Response DTO for alliance update operations
    /// </summary>
    public class AllianceUpdateResponseDto
    {
        /// <summary>
        /// Alliance identifier that was updated
        /// </summary>
        public int AllianceId { get; set; }

        /// <summary>
        /// Success status of the update operation
        /// </summary>
        public bool Success { get; set; }

        /// <summary>
        /// Update result message
        /// </summary>
        public string Message { get; set; } = string.Empty;

        /// <summary>
        /// Updated alliance information
        /// </summary>
        public Dictionary<string, object> UpdatedInfo { get; set; } = new();

        /// <summary>
        /// List of fields that were modified
        /// </summary>
        public List<string> ModifiedFields { get; set; } = new();

        /// <summary>
        /// Previous values before update (for audit trail)
        /// </summary>
        public Dictionary<string, object> PreviousValues { get; set; } = new();

        /// <summary>
        /// New values after update
        /// </summary>
        public Dictionary<string, object> NewValues { get; set; } = new();

        /// <summary>
        /// Player who performed the update
        /// </summary>
        public int UpdatedById { get; set; }

        /// <summary>
        /// Timestamp when update was performed
        /// </summary>
        public DateTime UpdatedAt { get; set; }

        /// <summary>
        /// Any validation warnings or notifications
        /// </summary>
        public List<string> Warnings { get; set; } = new();
    }
}