matt 9a7fa52bc4 bash# Navigate to your repository
cd D:\shadowed-realms-mobile\ShadowedRealmsMobile\

# Add all the Alliance DTO files
git add src/server/ShadowedRealms.Shared/DTOs/Alliance/

# Commit with descriptive message
git commit -m "Complete Alliance DTOs: 42 files for comprehensive alliance system

- Add all Request/Response DTO pairs for alliance operations
- Include alliance creation, updates, and status management
- Add coalition formation, management, and dissolution DTOs
- Include democratic leadership election and voting DTOs
- Add territory claiming, defense, and contested zone DTOs
- Include member management, activity tracking, and removal DTOs
- Add treasury operations, resource trading, and status DTOs
- Include role management and permission DTOs
- Add research advancement and building construction DTOs

Features supported:
* Complete alliance lifecycle management with democratic processes
* Coalition mechanics preserving alliance identity during KvK events
* Territory system with contested zones and defensive operations
* Treasury and resource management with trading capabilities
* Member activity tracking and automated management tools
* Research trees with collective advancement and benefits
* Building construction with collaborative resource commitment
* Anti-pay-to-win democratic leadership selection processes

All DTOs include:
- Proper file headers with creation dates and descriptions
- Comprehensive XML documentation for all properties
- Validation attributes on request DTOs following established patterns
- Consistent naming conventions and extensible Dictionary properties
- Kingdom-scoped design considerations for horizontal scaling
- Production-ready structure supporting server-authoritative design
2025-10-22 17:11:29 -05:00

91 lines
2.9 KiB
C#

/*
* 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
{
/// <summary>
/// Response DTO for alliance membership processing and application status
/// </summary>
public class MembershipProcessingResponseDto
{
/// <summary>
/// Unique identifier for the membership application
/// </summary>
public int ApplicationId { get; set; }
/// <summary>
/// Alliance being applied to
/// </summary>
public int AllianceId { get; set; }
/// <summary>
/// Player applying for membership
/// </summary>
public int PlayerId { get; set; }
/// <summary>
/// Player name
/// </summary>
public string PlayerName { get; set; } = string.Empty;
/// <summary>
/// Application status (Pending, UnderReview, Approved, Rejected, Withdrawn)
/// </summary>
public string ApplicationStatus { get; set; } = string.Empty;
/// <summary>
/// Player statistics and qualifications
/// </summary>
public Dictionary<string, object> PlayerStats { get; set; } = new();
/// <summary>
/// Application message from player
/// </summary>
public string ApplicationMessage { get; set; } = string.Empty;
/// <summary>
/// Requirements met by the applicant
/// </summary>
public Dictionary<string, bool> RequirementsMet { get; set; } = new();
/// <summary>
/// Alliance requirements for membership
/// </summary>
public Dictionary<string, object> AllianceRequirements { get; set; } = new();
/// <summary>
/// Reviews from alliance officers
/// </summary>
public List<Dictionary<string, object>> OfficerReviews { get; set; } = new();
/// <summary>
/// Processing timeline and history
/// </summary>
public List<Dictionary<string, object>> ProcessingHistory { get; set; } = new();
/// <summary>
/// Estimated time for decision
/// </summary>
public TimeSpan? EstimatedDecisionTime { get; set; }
/// <summary>
/// Reason for rejection (if applicable)
/// </summary>
public string? RejectionReason { get; set; }
/// <summary>
/// When the application was submitted
/// </summary>
public DateTime ApplicationSubmitted { get; set; }
/// <summary>
/// When this application information was last updated
/// </summary>
public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
}
}