/*
* 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;
}
}