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
96 lines
2.9 KiB
C#
96 lines
2.9 KiB
C#
/*
|
|
* File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\AllianceVotingResponseDto.cs
|
|
* Created: 2025-10-22
|
|
* Last Modified: 2025-10-22
|
|
* Description: Response DTO for alliance voting processes and results
|
|
* Last Edit Notes: Initial creation following established Alliance DTO patterns
|
|
*/
|
|
|
|
namespace ShadowedRealms.Shared.DTOs.Alliance
|
|
{
|
|
/// <summary>
|
|
/// Response DTO for alliance voting processes and results
|
|
/// </summary>
|
|
public class AllianceVotingResponseDto
|
|
{
|
|
/// <summary>
|
|
/// Unique identifier for the vote
|
|
/// </summary>
|
|
public int VoteId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Alliance conducting the vote
|
|
/// </summary>
|
|
public int AllianceId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Subject of the vote
|
|
/// </summary>
|
|
public string VoteSubject { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Type of vote (Policy, Leadership, War, Alliance, Coalition)
|
|
/// </summary>
|
|
public string VoteType { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Available voting options
|
|
/// </summary>
|
|
public List<Dictionary<string, object>> VotingOptions { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Current vote tallies
|
|
/// </summary>
|
|
public Dictionary<string, int> VoteTallies { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Members who have voted
|
|
/// </summary>
|
|
public List<Dictionary<string, object>> Voters { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Total eligible voters
|
|
/// </summary>
|
|
public int EligibleVoters { get; set; }
|
|
|
|
/// <summary>
|
|
/// Votes cast so far
|
|
/// </summary>
|
|
public int VotesCast { get; set; }
|
|
|
|
/// <summary>
|
|
/// Voting participation percentage
|
|
/// </summary>
|
|
public decimal ParticipationPercentage { get; set; }
|
|
|
|
/// <summary>
|
|
/// Time remaining for voting
|
|
/// </summary>
|
|
public TimeSpan? VotingTimeRemaining { get; set; }
|
|
|
|
/// <summary>
|
|
/// Minimum votes required for valid decision
|
|
/// </summary>
|
|
public int MinimumVotes { get; set; }
|
|
|
|
/// <summary>
|
|
/// Vote status (Active, Completed, Failed, Cancelled)
|
|
/// </summary>
|
|
public string VoteStatus { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Vote results (if completed)
|
|
/// </summary>
|
|
public Dictionary<string, object>? VoteResults { get; set; }
|
|
|
|
/// <summary>
|
|
/// When the vote started
|
|
/// </summary>
|
|
public DateTime VoteStarted { get; set; }
|
|
|
|
/// <summary>
|
|
/// When this vote information was last updated
|
|
/// </summary>
|
|
public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
|
|
}
|
|
} |