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

86 lines
2.7 KiB
C#

/*
* File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\HostSelectionResponseDto.cs
* Created: 2025-10-22
* Last Modified: 2025-10-22
* Description: Response DTO for KvK host selection and democratic leadership
* Last Edit Notes: Initial creation following established Alliance DTO patterns
*/
namespace ShadowedRealms.Shared.DTOs.Alliance
{
/// <summary>
/// Response DTO for KvK host selection and democratic leadership
/// </summary>
public class HostSelectionResponseDto
{
/// <summary>
/// Unique identifier for the host selection process
/// </summary>
public int SelectionId { get; set; }
/// <summary>
/// KvK event this selection is for
/// </summary>
public int KvKEventId { get; set; }
/// <summary>
/// Current host alliance (if selected)
/// </summary>
public int? HostAllianceId { get; set; }
/// <summary>
/// Name of the host alliance
/// </summary>
public string? HostAllianceName { get; set; }
/// <summary>
/// Alliances eligible to be hosts
/// </summary>
public List<Dictionary<string, object>> EligibleHosts { get; set; } = new();
/// <summary>
/// Current voting results
/// </summary>
public Dictionary<string, int> VotingResults { get; set; } = new();
/// <summary>
/// Alliances that have voted
/// </summary>
public List<Dictionary<string, object>> VotingParticipants { get; set; } = new();
/// <summary>
/// Selection criteria and requirements
/// </summary>
public Dictionary<string, object> SelectionCriteria { get; set; } = new();
/// <summary>
/// Time remaining for voting
/// </summary>
public TimeSpan? VotingTimeRemaining { get; set; }
/// <summary>
/// Minimum votes required for selection
/// </summary>
public int MinimumVotes { get; set; }
/// <summary>
/// Selection status (Nominating, Voting, Completed, Failed)
/// </summary>
public string SelectionStatus { get; set; } = string.Empty;
/// <summary>
/// Host responsibilities and privileges
/// </summary>
public Dictionary<string, object> HostResponsibilities { get; set; } = new();
/// <summary>
/// When the selection process started
/// </summary>
public DateTime SelectionStarted { get; set; }
/// <summary>
/// When this selection information was last updated
/// </summary>
public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
}
}