/* * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\MembershipProcessingResponseDto.cs * Created: 2025-10-22 * Last Modified: 2025-10-22 * Description: Response DTO for alliance membership processing and application status * Last Edit Notes: Initial creation following established Alliance DTO patterns */ namespace ShadowedRealms.Shared.DTOs.Alliance { /// /// Response DTO for alliance membership processing and application status /// public class MembershipProcessingResponseDto { /// /// Unique identifier for the membership application /// public int ApplicationId { get; set; } /// /// Alliance being applied to /// public int AllianceId { get; set; } /// /// Player applying for membership /// public int PlayerId { get; set; } /// /// Player name /// public string PlayerName { get; set; } = string.Empty; /// /// Application status (Pending, UnderReview, Approved, Rejected, Withdrawn) /// public string ApplicationStatus { get; set; } = string.Empty; /// /// Player statistics and qualifications /// public Dictionary PlayerStats { get; set; } = new(); /// /// Application message from player /// public string ApplicationMessage { get; set; } = string.Empty; /// /// Requirements met by the applicant /// public Dictionary RequirementsMet { get; set; } = new(); /// /// Alliance requirements for membership /// public Dictionary AllianceRequirements { get; set; } = new(); /// /// Reviews from alliance officers /// public List> OfficerReviews { get; set; } = new(); /// /// Processing timeline and history /// public List> ProcessingHistory { get; set; } = new(); /// /// Estimated time for decision /// public TimeSpan? EstimatedDecisionTime { get; set; } /// /// Reason for rejection (if applicable) /// public string? RejectionReason { get; set; } /// /// When the application was submitted /// public DateTime ApplicationSubmitted { get; set; } /// /// When this application information was last updated /// public DateTime LastUpdated { get; set; } = DateTime.UtcNow; } }