diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceCreationRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceCreationRequestDto.cs
new file mode 100644
index 0000000..0ce5d5f
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceCreationRequestDto.cs
@@ -0,0 +1,57 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\AllianceCreationRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for alliance creation operations
+ * Last Edit Notes: Initial implementation for alliance creation input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for alliance creation operations
+ ///
+ public class AllianceCreationRequestDto
+ {
+ ///
+ /// Name for the new alliance
+ ///
+ [Required]
+ [StringLength(100, MinimumLength = 3)]
+ public string AllianceName { get; set; } = string.Empty;
+
+ ///
+ /// Alliance description or motto
+ ///
+ [StringLength(500)]
+ public string? Description { get; set; }
+
+ ///
+ /// Alliance tag/abbreviation
+ ///
+ [StringLength(10, MinimumLength = 2)]
+ public string? AllianceTag { get; set; }
+
+ ///
+ /// Initial alliance settings and configuration
+ ///
+ public Dictionary? InitialSettings { get; set; }
+
+ ///
+ /// Recruitment settings (open, invite-only, etc.)
+ ///
+ public Dictionary? RecruitmentSettings { get; set; }
+
+ ///
+ /// Initial member invitations
+ ///
+ public List? InitialInvitations { get; set; }
+
+ ///
+ /// Alliance focus areas (military, economic, diplomatic)
+ ///
+ public List? FocusAreas { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceCreationResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceCreationResponseDto.cs
new file mode 100644
index 0000000..6e51f2c
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceCreationResponseDto.cs
@@ -0,0 +1,76 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\AllianceCreationResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance creation operations
+ * Last Edit Notes: Initial implementation for new alliance creation results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance creation operations
+ ///
+ public class AllianceCreationResponseDto
+ {
+ ///
+ /// Newly created alliance identifier
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Alliance name that was created
+ ///
+ public string AllianceName { get; set; } = string.Empty;
+
+ ///
+ /// Success status of alliance creation
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// Creation result message
+ ///
+ public string Message { get; set; } = string.Empty;
+
+ ///
+ /// Initial alliance settings and configuration
+ ///
+ public Dictionary InitialSettings { get; set; } = new();
+
+ ///
+ /// Leader assignment information
+ ///
+ public Dictionary LeaderInfo { get; set; } = new();
+
+ ///
+ /// Alliance creation timestamp
+ ///
+ public DateTime CreatedAt { get; set; }
+
+ ///
+ /// Initial member information
+ ///
+ public List> InitialMembers { get; set; } = new();
+
+ ///
+ /// Starting alliance level and experience
+ ///
+ public Dictionary StartingLevel { get; set; } = new();
+
+ ///
+ /// Available alliance features based on level
+ ///
+ public List AvailableFeatures { get; set; } = new();
+
+ ///
+ /// Resource costs for alliance creation
+ ///
+ public Dictionary CreationCosts { get; set; } = new();
+
+ ///
+ /// Initial alliance treasury and resource allocation
+ ///
+ public Dictionary InitialTreasury { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceInfoResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceInfoResponseDto.cs
new file mode 100644
index 0000000..61a1a2b
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceInfoResponseDto.cs
@@ -0,0 +1,81 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\AllianceInfoResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance information retrieval
+ * Last Edit Notes: Initial implementation for alliance profile and status information
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance information retrieval
+ ///
+ public class AllianceInfoResponseDto
+ {
+ ///
+ /// Alliance identifier
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Alliance name
+ ///
+ public string AllianceName { get; set; } = string.Empty;
+
+ ///
+ /// Alliance description
+ ///
+ public string Description { get; set; } = string.Empty;
+
+ ///
+ /// Alliance leader information
+ ///
+ public Dictionary LeaderInfo { get; set; } = new();
+
+ ///
+ /// Current member count
+ ///
+ public int MemberCount { get; set; }
+
+ ///
+ /// Maximum member capacity
+ ///
+ public int MaxMembers { get; set; }
+
+ ///
+ /// Alliance level and experience
+ ///
+ public Dictionary AllianceLevel { get; set; } = new();
+
+ ///
+ /// Alliance power rating
+ ///
+ public long TotalPower { get; set; }
+
+ ///
+ /// Current coalition memberships
+ ///
+ public List> CoalitionMemberships { get; set; } = new();
+
+ ///
+ /// Alliance territory holdings
+ ///
+ public Dictionary Territory { get; set; } = new();
+
+ ///
+ /// Research tree progress
+ ///
+ public Dictionary ResearchProgress { get; set; } = new();
+
+ ///
+ /// Alliance recruitment settings
+ ///
+ public Dictionary RecruitmentSettings { get; set; } = new();
+
+ ///
+ /// When alliance information was last updated
+ ///
+ public DateTime LastUpdated { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceUpdateRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceUpdateRequestDto.cs
new file mode 100644
index 0000000..3fd015f
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceUpdateRequestDto.cs
@@ -0,0 +1,67 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\AllianceUpdateRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for alliance update operations
+ * Last Edit Notes: Initial implementation for alliance modification input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for alliance update operations
+ ///
+ public class AllianceUpdateRequestDto
+ {
+ ///
+ /// Updated alliance name
+ ///
+ [StringLength(100, MinimumLength = 3)]
+ public string? AllianceName { get; set; }
+
+ ///
+ /// Updated alliance description
+ ///
+ [StringLength(500)]
+ public string? Description { get; set; }
+
+ ///
+ /// Updated alliance tag/abbreviation
+ ///
+ [StringLength(10, MinimumLength = 2)]
+ public string? AllianceTag { get; set; }
+
+ ///
+ /// Updated recruitment settings
+ ///
+ public Dictionary? RecruitmentSettings { get; set; }
+
+ ///
+ /// Updated alliance configuration
+ ///
+ public Dictionary? AllianceSettings { get; set; }
+
+ ///
+ /// Updated focus areas
+ ///
+ public List? FocusAreas { get; set; }
+
+ ///
+ /// Updated leadership structure
+ ///
+ public Dictionary? LeadershipStructure { get; set; }
+
+ ///
+ /// Updated member roles and permissions
+ ///
+ public Dictionary? RolePermissions { get; set; }
+
+ ///
+ /// Reason for the update (for audit trail)
+ ///
+ [StringLength(200)]
+ public string? UpdateReason { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceUpdateResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceUpdateResponseDto.cs
new file mode 100644
index 0000000..d74f497
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceUpdateResponseDto.cs
@@ -0,0 +1,66 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\AllianceUpdateResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance update operations
+ * Last Edit Notes: Initial implementation for alliance modification results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance update operations
+ ///
+ public class AllianceUpdateResponseDto
+ {
+ ///
+ /// Alliance identifier that was updated
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Success status of the update operation
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// Update result message
+ ///
+ public string Message { get; set; } = string.Empty;
+
+ ///
+ /// Updated alliance information
+ ///
+ public Dictionary UpdatedInfo { get; set; } = new();
+
+ ///
+ /// List of fields that were modified
+ ///
+ public List ModifiedFields { get; set; } = new();
+
+ ///
+ /// Previous values before update (for audit trail)
+ ///
+ public Dictionary PreviousValues { get; set; } = new();
+
+ ///
+ /// New values after update
+ ///
+ public Dictionary NewValues { get; set; } = new();
+
+ ///
+ /// Player who performed the update
+ ///
+ public int UpdatedById { get; set; }
+
+ ///
+ /// Timestamp when update was performed
+ ///
+ public DateTime UpdatedAt { get; set; }
+
+ ///
+ /// Any validation warnings or notifications
+ ///
+ public List Warnings { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceVotingRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceVotingRequestDto.cs
new file mode 100644
index 0000000..ab7bf33
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceVotingRequestDto.cs
@@ -0,0 +1,77 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\AllianceVotingRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for alliance voting operations and ballot creation
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for alliance voting operations and ballot creation
+ ///
+ public class AllianceVotingRequestDto
+ {
+ ///
+ /// Vote action (CreateVote, CastVote, ModifyVote, CancelVote)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string Action { get; set; } = string.Empty;
+
+ ///
+ /// Subject of the vote
+ ///
+ [Required]
+ [StringLength(200)]
+ public string VoteSubject { get; set; } = string.Empty;
+
+ ///
+ /// Type of vote (Policy, Leadership, War, Alliance, Coalition)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string VoteType { get; set; } = string.Empty;
+
+ ///
+ /// Available voting options
+ ///
+ public List VotingOptions { get; set; } = new();
+
+ ///
+ /// Vote choice (for casting votes)
+ ///
+ public int? VoteChoice { get; set; }
+
+ ///
+ /// Detailed description of the vote
+ ///
+ [StringLength(2000)]
+ public string? VoteDescription { get; set; }
+
+ ///
+ /// Voting duration in hours
+ ///
+ [Range(24, 168)]
+ public int VotingDurationHours { get; set; } = 48;
+
+ ///
+ /// Minimum participation required (percentage)
+ ///
+ [Range(25, 100)]
+ public int MinimumParticipation { get; set; } = 50;
+
+ ///
+ /// Roles eligible to vote
+ ///
+ public List EligibleRoles { get; set; } = new();
+
+ ///
+ /// Vote parameters and special conditions
+ ///
+ public Dictionary? VoteParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceVotingResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceVotingResponseDto.cs
new file mode 100644
index 0000000..e25aba1
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/AllianceVotingResponseDto.cs
@@ -0,0 +1,96 @@
+/*
+ * 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
+{
+ ///
+ /// Response DTO for alliance voting processes and results
+ ///
+ public class AllianceVotingResponseDto
+ {
+ ///
+ /// Unique identifier for the vote
+ ///
+ public int VoteId { get; set; }
+
+ ///
+ /// Alliance conducting the vote
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Subject of the vote
+ ///
+ public string VoteSubject { get; set; } = string.Empty;
+
+ ///
+ /// Type of vote (Policy, Leadership, War, Alliance, Coalition)
+ ///
+ public string VoteType { get; set; } = string.Empty;
+
+ ///
+ /// Available voting options
+ ///
+ public List> VotingOptions { get; set; } = new();
+
+ ///
+ /// Current vote tallies
+ ///
+ public Dictionary VoteTallies { get; set; } = new();
+
+ ///
+ /// Members who have voted
+ ///
+ public List> Voters { get; set; } = new();
+
+ ///
+ /// Total eligible voters
+ ///
+ public int EligibleVoters { get; set; }
+
+ ///
+ /// Votes cast so far
+ ///
+ public int VotesCast { get; set; }
+
+ ///
+ /// Voting participation percentage
+ ///
+ public decimal ParticipationPercentage { get; set; }
+
+ ///
+ /// Time remaining for voting
+ ///
+ public TimeSpan? VotingTimeRemaining { get; set; }
+
+ ///
+ /// Minimum votes required for valid decision
+ ///
+ public int MinimumVotes { get; set; }
+
+ ///
+ /// Vote status (Active, Completed, Failed, Cancelled)
+ ///
+ public string VoteStatus { get; set; } = string.Empty;
+
+ ///
+ /// Vote results (if completed)
+ ///
+ public Dictionary? VoteResults { get; set; }
+
+ ///
+ /// When the vote started
+ ///
+ public DateTime VoteStarted { get; set; }
+
+ ///
+ /// When this vote information was last updated
+ ///
+ public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/BuildingConstructionResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/BuildingConstructionResponseDto.cs
new file mode 100644
index 0000000..e472994
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/BuildingConstructionResponseDto.cs
@@ -0,0 +1,53 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\BuildingConstructionRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for alliance building construction operations
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for alliance building construction operations
+ ///
+ public class BuildingConstructionRequestDto
+ {
+ ///
+ /// Type of building to construct
+ ///
+ [Required]
+ [StringLength(100)]
+ public string BuildingType { get; set; } = string.Empty;
+
+ ///
+ /// Target level for construction
+ ///
+ [Required]
+ [Range(1, 50)]
+ public int TargetLevel { get; set; }
+
+ ///
+ /// Initial resource contribution
+ ///
+ public Dictionary ResourceContribution { get; set; } = new();
+
+ ///
+ /// Priority level for this construction (1-5)
+ ///
+ [Range(1, 5)]
+ public int Priority { get; set; } = 3;
+
+ ///
+ /// Whether to use alliance treasury funds
+ ///
+ public bool UseTreasuryFunds { get; set; } = false;
+
+ ///
+ /// Construction parameters and options
+ ///
+ public Dictionary? ConstructionParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionDissolutionRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionDissolutionRequestDto.cs
new file mode 100644
index 0000000..f7ecea8
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionDissolutionRequestDto.cs
@@ -0,0 +1,68 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\CoalitionDissolutionRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for coalition dissolution operations
+ * Last Edit Notes: Initial implementation for coalition termination input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for coalition dissolution operations
+ ///
+ public class CoalitionDissolutionRequestDto
+ {
+ ///
+ /// Reason for dissolving the coalition
+ ///
+ [Required]
+ [StringLength(300)]
+ public string DissolutionReason { get; set; } = string.Empty;
+
+ ///
+ /// Resource distribution plan for member alliances
+ ///
+ public Dictionary? ResourceDistribution { get; set; }
+
+ ///
+ /// Whether to notify all members before dissolution
+ ///
+ public bool NotifyMembers { get; set; } = true;
+
+ ///
+ /// Grace period before dissolution takes effect (hours)
+ ///
+ [Range(0, 168)] // 0 to 7 days
+ public int GracePeriodHours { get; set; } = 24;
+
+ ///
+ /// Final message to coalition members
+ ///
+ [StringLength(500)]
+ public string? FinalMessage { get; set; }
+
+ ///
+ /// Whether to preserve coalition statistics for historical records
+ ///
+ public bool PreserveStatistics { get; set; } = true;
+
+ ///
+ /// Emergency dissolution (immediate, bypasses grace period)
+ ///
+ public bool EmergencyDissolution { get; set; } = false;
+
+ ///
+ /// Confirmation that the requesting player understands the consequences
+ ///
+ [Required]
+ public bool ConfirmDissolution { get; set; }
+
+ ///
+ /// Additional dissolution parameters
+ ///
+ public Dictionary? DissolutionParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionDissolutionResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionDissolutionResponseDto.cs
new file mode 100644
index 0000000..97a13ee
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionDissolutionResponseDto.cs
@@ -0,0 +1,76 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\CoalitionDissolutionResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for coalition dissolution operations
+ * Last Edit Notes: Initial implementation for coalition termination results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for coalition dissolution operations
+ ///
+ public class CoalitionDissolutionResponseDto
+ {
+ ///
+ /// Coalition identifier that was dissolved
+ ///
+ public string CoalitionId { get; set; } = string.Empty;
+
+ ///
+ /// Coalition name that was dissolved
+ ///
+ public string CoalitionName { get; set; } = string.Empty;
+
+ ///
+ /// Success status of dissolution operation
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// Dissolution result message
+ ///
+ public string Message { get; set; } = string.Empty;
+
+ ///
+ /// Final member alliances that were part of the coalition
+ ///
+ public List> FormerMemberAlliances { get; set; } = new();
+
+ ///
+ /// Resource distribution results after dissolution
+ ///
+ public Dictionary ResourceDistribution { get; set; } = new();
+
+ ///
+ /// Final coalition statistics and achievements
+ ///
+ public Dictionary FinalStatistics { get; set; } = new();
+
+ ///
+ /// Dissolution timestamp
+ ///
+ public DateTime DissolvedAt { get; set; }
+
+ ///
+ /// Player who initiated the dissolution
+ ///
+ public int DissolvedById { get; set; }
+
+ ///
+ /// Reason for dissolution
+ ///
+ public string DissolutionReason { get; set; } = string.Empty;
+
+ ///
+ /// Alliance statuses after coalition dissolution
+ ///
+ public List> PostDissolutionStatus { get; set; } = new();
+
+ ///
+ /// Any cleanup actions performed during dissolution
+ ///
+ public List CleanupActions { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionFormationRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionFormationRequestDto.cs
new file mode 100644
index 0000000..8b1763e
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionFormationRequestDto.cs
@@ -0,0 +1,64 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\CoalitionFormationRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for coalition formation operations
+ * Last Edit Notes: Initial implementation for multi-alliance coalition creation input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for coalition formation operations
+ ///
+ public class CoalitionFormationRequestDto
+ {
+ ///
+ /// Name for the new coalition
+ ///
+ [Required]
+ [StringLength(100, MinimumLength = 3)]
+ public string CoalitionName { get; set; } = string.Empty;
+
+ ///
+ /// Alliances to invite into the coalition
+ ///
+ [Required]
+ [MinLength(2)]
+ public List InvitedAlliances { get; set; } = new();
+
+ ///
+ /// Coalition purpose and objectives
+ ///
+ [StringLength(500)]
+ public string? Purpose { get; set; }
+
+ ///
+ /// Coalition leadership structure preferences
+ ///
+ public Dictionary? LeadershipStructure { get; set; }
+
+ ///
+ /// Resource sharing and coordination settings
+ ///
+ public Dictionary? CoordinationSettings { get; set; }
+
+ ///
+ /// Expected coalition duration (temporary, permanent, event-based)
+ ///
+ public Dictionary? Duration { get; set; }
+
+ ///
+ /// Coalition formation conditions and requirements
+ ///
+ public Dictionary? FormationConditions { get; set; }
+
+ ///
+ /// Invitation message to other alliances
+ ///
+ [StringLength(300)]
+ public string? InvitationMessage { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionFormationResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionFormationResponseDto.cs
new file mode 100644
index 0000000..468abe5
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionFormationResponseDto.cs
@@ -0,0 +1,71 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\CoalitionFormationResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for coalition formation operations
+ * Last Edit Notes: Initial implementation for multi-alliance coalition creation results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for coalition formation operations
+ ///
+ public class CoalitionFormationResponseDto
+ {
+ ///
+ /// Newly formed coalition identifier
+ ///
+ public string CoalitionId { get; set; } = string.Empty;
+
+ ///
+ /// Coalition name that was created
+ ///
+ public string CoalitionName { get; set; } = string.Empty;
+
+ ///
+ /// Success status of coalition formation
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// Formation result message
+ ///
+ public string Message { get; set; } = string.Empty;
+
+ ///
+ /// Member alliances that joined the coalition
+ ///
+ public List> MemberAlliances { get; set; } = new();
+
+ ///
+ /// Coalition leadership structure
+ ///
+ public Dictionary LeadershipStructure { get; set; } = new();
+
+ ///
+ /// Coalition objectives and purpose
+ ///
+ public Dictionary CoalitionObjectives { get; set; } = new();
+
+ ///
+ /// Shared resources and coordination settings
+ ///
+ public Dictionary CoordinationSettings { get; set; } = new();
+
+ ///
+ /// Coalition formation timestamp
+ ///
+ public DateTime FormedAt { get; set; }
+
+ ///
+ /// Alliance that initiated the coalition
+ ///
+ public int InitiatingAllianceId { get; set; }
+
+ ///
+ /// Expected coalition duration or permanence
+ ///
+ public Dictionary Duration { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionManagementRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionManagementRequestDto.cs
new file mode 100644
index 0000000..2f55a37
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionManagementRequestDto.cs
@@ -0,0 +1,65 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\CoalitionManagementRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for coalition management operations
+ * Last Edit Notes: Initial implementation for coalition administration and coordination input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for coalition management operations
+ ///
+ public class CoalitionManagementRequestDto
+ {
+ ///
+ /// Management action to perform
+ ///
+ [Required]
+ public string Action { get; set; } = string.Empty;
+
+ ///
+ /// Target alliance for management action (if applicable)
+ ///
+ public int? TargetAllianceId { get; set; }
+
+ ///
+ /// Updated coalition settings
+ ///
+ public Dictionary? CoalitionSettings { get; set; }
+
+ ///
+ /// Leadership role assignments
+ ///
+ public Dictionary? LeadershipAssignments { get; set; }
+
+ ///
+ /// Member alliance permissions and roles
+ ///
+ public Dictionary? MemberPermissions { get; set; }
+
+ ///
+ /// Coordination and resource sharing settings
+ ///
+ public Dictionary? CoordinationSettings { get; set; }
+
+ ///
+ /// Coalition objectives updates
+ ///
+ public Dictionary? UpdatedObjectives { get; set; }
+
+ ///
+ /// Reason for the management action
+ ///
+ [StringLength(300)]
+ public string? ManagementReason { get; set; }
+
+ ///
+ /// Additional parameters for specific management actions
+ ///
+ public Dictionary? ActionParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionManagementResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionManagementResponseDto.cs
new file mode 100644
index 0000000..9cfda75
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/CoalitionManagementResponseDto.cs
@@ -0,0 +1,66 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\CoalitionManagementResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for coalition management operations
+ * Last Edit Notes: Initial implementation for coalition administration and coordination results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for coalition management operations
+ ///
+ public class CoalitionManagementResponseDto
+ {
+ ///
+ /// Coalition identifier being managed
+ ///
+ public string CoalitionId { get; set; } = string.Empty;
+
+ ///
+ /// Management operation success status
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// Management operation result message
+ ///
+ public string Message { get; set; } = string.Empty;
+
+ ///
+ /// Updated coalition information after management action
+ ///
+ public Dictionary UpdatedCoalitionInfo { get; set; } = new();
+
+ ///
+ /// Current member alliances and their status
+ ///
+ public List> MemberAlliances { get; set; } = new();
+
+ ///
+ /// Updated leadership assignments
+ ///
+ public Dictionary Leadership { get; set; } = new();
+
+ ///
+ /// Coalition coordination settings
+ ///
+ public Dictionary CoordinationSettings { get; set; } = new();
+
+ ///
+ /// Management action timestamp
+ ///
+ public DateTime ManagedAt { get; set; }
+
+ ///
+ /// Player who performed the management action
+ ///
+ public int ManagedById { get; set; }
+
+ ///
+ /// Any notifications or alerts generated by the management action
+ ///
+ public List Notifications { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ContestedZoneRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ContestedZoneRequestDto.cs
new file mode 100644
index 0000000..e84a452
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ContestedZoneRequestDto.cs
@@ -0,0 +1,64 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\ContestedZoneRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for contested zone operations and challenges
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for contested zone operations and challenges
+ ///
+ public class ContestedZoneRequestDto
+ {
+ ///
+ /// Zone to target for contest
+ ///
+ [Required]
+ public int ZoneId { get; set; }
+
+ ///
+ /// Type of zone operation (Challenge, Reinforce, Withdraw, Scout)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string OperationType { get; set; } = string.Empty;
+
+ ///
+ /// Forces to commit to the operation
+ ///
+ public Dictionary ForceCommitment { get; set; } = new();
+
+ ///
+ /// Coalition allies to invite for support
+ ///
+ public List CoalitionAllies { get; set; } = new();
+
+ ///
+ /// Battle strategy and tactics
+ ///
+ [StringLength(500)]
+ public string? Strategy { get; set; }
+
+ ///
+ /// Priority level for this operation (1-5)
+ ///
+ [Range(1, 5)]
+ public int Priority { get; set; } = 3;
+
+ ///
+ /// Maximum duration for the operation in hours
+ ///
+ [Range(1, 168)]
+ public int MaxDurationHours { get; set; } = 24;
+
+ ///
+ /// Operation parameters and special conditions
+ ///
+ public Dictionary? OperationParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ContestedZoneResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ContestedZoneResponseDto.cs
new file mode 100644
index 0000000..149cde7
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ContestedZoneResponseDto.cs
@@ -0,0 +1,81 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\ContestedZoneResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for contested zone information and battles
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for contested zone information and battles
+ ///
+ public class ContestedZoneResponseDto
+ {
+ ///
+ /// Unique identifier for the contested zone
+ ///
+ public int ZoneId { get; set; }
+
+ ///
+ /// Zone name or identifier
+ ///
+ public string ZoneName { get; set; } = string.Empty;
+
+ ///
+ /// Current controlling alliance
+ ///
+ public int? ControllingAllianceId { get; set; }
+
+ ///
+ /// Name of controlling alliance
+ ///
+ public string? ControllingAllianceName { get; set; }
+
+ ///
+ /// Alliances currently contesting this zone
+ ///
+ public List> ContestingAlliances { get; set; } = new();
+
+ ///
+ /// Zone coordinates and boundaries
+ ///
+ public Dictionary ZoneCoordinates { get; set; } = new();
+
+ ///
+ /// Resources and benefits provided by controlling this zone
+ ///
+ public Dictionary ZoneBenefits { get; set; } = new();
+
+ ///
+ /// Active battles in this zone
+ ///
+ public List> ActiveBattles { get; set; } = new();
+
+ ///
+ /// Control percentage for each alliance (0-100)
+ ///
+ public Dictionary ControlPercentages { get; set; } = new();
+
+ ///
+ /// Time remaining in contest period
+ ///
+ public TimeSpan? ContestTimeRemaining { get; set; }
+
+ ///
+ /// Zone contest status (Open, Contested, Locked, Cooldown)
+ ///
+ public string ContestStatus { get; set; } = string.Empty;
+
+ ///
+ /// Historical control changes
+ ///
+ public List> ControlHistory { get; set; } = new();
+
+ ///
+ /// When this zone information was last updated
+ ///
+ public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/HostSelectionRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/HostSelectionRequestDto.cs
new file mode 100644
index 0000000..a2189eb
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/HostSelectionRequestDto.cs
@@ -0,0 +1,67 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\HostSelectionRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for KvK host selection and democratic voting
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for KvK host selection and democratic voting
+ ///
+ public class HostSelectionRequestDto
+ {
+ ///
+ /// KvK event to select host for
+ ///
+ [Required]
+ public int KvKEventId { get; set; }
+
+ ///
+ /// Action to take (Nominate, Vote, Withdraw, Challenge)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string Action { get; set; } = string.Empty;
+
+ ///
+ /// Alliance being nominated or voted for
+ ///
+ public int? TargetAllianceId { get; set; }
+
+ ///
+ /// Vote choice (for voting actions)
+ ///
+ public int? VoteChoice { get; set; }
+
+ ///
+ /// Justification for nomination or vote
+ ///
+ [StringLength(1000)]
+ public string? Justification { get; set; }
+
+ ///
+ /// Coalition members supporting this action
+ ///
+ public List CoalitionSupport { get; set; } = new();
+
+ ///
+ /// Qualifications being presented (for nominations)
+ ///
+ public Dictionary? Qualifications { get; set; }
+
+ ///
+ /// Proposed leadership structure
+ ///
+ public Dictionary? LeadershipStructure { get; set; }
+
+ ///
+ /// Selection parameters and preferences
+ ///
+ public Dictionary? SelectionParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/HostSelectionResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/HostSelectionResponseDto.cs
new file mode 100644
index 0000000..9ecaf0c
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/HostSelectionResponseDto.cs
@@ -0,0 +1,86 @@
+/*
+ * 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
+{
+ ///
+ /// Response DTO for KvK host selection and democratic leadership
+ ///
+ public class HostSelectionResponseDto
+ {
+ ///
+ /// Unique identifier for the host selection process
+ ///
+ public int SelectionId { get; set; }
+
+ ///
+ /// KvK event this selection is for
+ ///
+ public int KvKEventId { get; set; }
+
+ ///
+ /// Current host alliance (if selected)
+ ///
+ public int? HostAllianceId { get; set; }
+
+ ///
+ /// Name of the host alliance
+ ///
+ public string? HostAllianceName { get; set; }
+
+ ///
+ /// Alliances eligible to be hosts
+ ///
+ public List> EligibleHosts { get; set; } = new();
+
+ ///
+ /// Current voting results
+ ///
+ public Dictionary VotingResults { get; set; } = new();
+
+ ///
+ /// Alliances that have voted
+ ///
+ public List> VotingParticipants { get; set; } = new();
+
+ ///
+ /// Selection criteria and requirements
+ ///
+ public Dictionary SelectionCriteria { get; set; } = new();
+
+ ///
+ /// Time remaining for voting
+ ///
+ public TimeSpan? VotingTimeRemaining { get; set; }
+
+ ///
+ /// Minimum votes required for selection
+ ///
+ public int MinimumVotes { get; set; }
+
+ ///
+ /// Selection status (Nominating, Voting, Completed, Failed)
+ ///
+ public string SelectionStatus { get; set; } = string.Empty;
+
+ ///
+ /// Host responsibilities and privileges
+ ///
+ public Dictionary HostResponsibilities { get; set; } = new();
+
+ ///
+ /// When the selection process started
+ ///
+ public DateTime SelectionStarted { get; set; }
+
+ ///
+ /// When this selection information was last updated
+ ///
+ public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/LeadershipElectionRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/LeadershipElectionRequestDto.cs
new file mode 100644
index 0000000..e87b58b
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/LeadershipElectionRequestDto.cs
@@ -0,0 +1,70 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\LeadershipElectionRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for alliance leadership election operations
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for alliance leadership election operations
+ ///
+ public class LeadershipElectionRequestDto
+ {
+ ///
+ /// Position to elect (Leader, Officer, Diplomat, etc.)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string Position { get; set; } = string.Empty;
+
+ ///
+ /// Election action (StartElection, Nominate, Vote, Withdraw, Challenge)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string Action { get; set; } = string.Empty;
+
+ ///
+ /// Player being nominated or voted for
+ ///
+ public int? TargetPlayerId { get; set; }
+
+ ///
+ /// Vote choice (for voting actions)
+ ///
+ public int? VoteChoice { get; set; }
+
+ ///
+ /// Campaign platform or justification
+ ///
+ [StringLength(2000)]
+ public string? Platform { get; set; }
+
+ ///
+ /// Qualifications being presented
+ ///
+ public Dictionary? Qualifications { get; set; }
+
+ ///
+ /// Election duration in hours
+ ///
+ [Range(24, 168)]
+ public int ElectionDurationHours { get; set; } = 72;
+
+ ///
+ /// Minimum participation required for valid election (percentage)
+ ///
+ [Range(25, 100)]
+ public int MinimumParticipation { get; set; } = 50;
+
+ ///
+ /// Election parameters and special rules
+ ///
+ public Dictionary? ElectionParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/LeadershipElectionResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/LeadershipElectionResponseDto.cs
new file mode 100644
index 0000000..7c8c36d
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/LeadershipElectionResponseDto.cs
@@ -0,0 +1,96 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\LeadershipElectionResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance leadership election results and status
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance leadership election results and status
+ ///
+ public class LeadershipElectionResponseDto
+ {
+ ///
+ /// Unique identifier for the election
+ ///
+ public int ElectionId { get; set; }
+
+ ///
+ /// Alliance conducting the election
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Position being elected (Leader, Officer, Diplomat, etc.)
+ ///
+ public string Position { get; set; } = string.Empty;
+
+ ///
+ /// Current elected leader (if election completed)
+ ///
+ public int? ElectedPlayerId { get; set; }
+
+ ///
+ /// Name of the elected player
+ ///
+ public string? ElectedPlayerName { get; set; }
+
+ ///
+ /// Candidates in the election
+ ///
+ public List> Candidates { get; set; } = new();
+
+ ///
+ /// Current vote tallies
+ ///
+ public Dictionary VoteTallies { get; set; } = new();
+
+ ///
+ /// Members who have voted
+ ///
+ public List> VotingMembers { get; set; } = new();
+
+ ///
+ /// Total eligible voters
+ ///
+ public int EligibleVoters { get; set; }
+
+ ///
+ /// Votes cast so far
+ ///
+ public int VotesCast { get; set; }
+
+ ///
+ /// Voting participation percentage
+ ///
+ public decimal ParticipationPercentage { get; set; }
+
+ ///
+ /// Time remaining for voting
+ ///
+ public TimeSpan? VotingTimeRemaining { get; set; }
+
+ ///
+ /// Election status (Nominating, Voting, Completed, Contested, Cancelled)
+ ///
+ public string ElectionStatus { get; set; } = string.Empty;
+
+ ///
+ /// Election rules and requirements
+ ///
+ public Dictionary ElectionRules { get; set; } = new();
+
+ ///
+ /// When the election started
+ ///
+ public DateTime ElectionStarted { get; set; }
+
+ ///
+ /// When this election information was last updated
+ ///
+ public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MemberActivityResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MemberActivityResponseDto.cs
new file mode 100644
index 0000000..fbab042
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MemberActivityResponseDto.cs
@@ -0,0 +1,81 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\MemberActivityResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance member activity tracking and statistics
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance member activity tracking and statistics
+ ///
+ public class MemberActivityResponseDto
+ {
+ ///
+ /// Alliance ID for member activity
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Total alliance member count
+ ///
+ public int TotalMembers { get; set; }
+
+ ///
+ /// Active members in last 24 hours
+ ///
+ public int ActiveMembers24h { get; set; }
+
+ ///
+ /// Active members in last 7 days
+ ///
+ public int ActiveMembers7d { get; set; }
+
+ ///
+ /// Detailed member activity statistics
+ ///
+ public List> MemberActivities { get; set; } = new();
+
+ ///
+ /// Activity categories and participation
+ ///
+ public Dictionary ActivityCategories { get; set; } = new();
+
+ ///
+ /// Top contributors by activity type
+ ///
+ public Dictionary>> TopContributors { get; set; } = new();
+
+ ///
+ /// Inactive members requiring attention
+ ///
+ public List> InactiveMembers { get; set; } = new();
+
+ ///
+ /// Activity trends over time
+ ///
+ public Dictionary>> ActivityTrends { get; set; } = new();
+
+ ///
+ /// Alliance activity score (0-100)
+ ///
+ public decimal AllianceActivityScore { get; set; }
+
+ ///
+ /// Activity benchmarks and goals
+ ///
+ public Dictionary ActivityBenchmarks { get; set; } = new();
+
+ ///
+ /// Time period for this activity report
+ ///
+ public Dictionary ReportPeriod { get; set; } = new();
+
+ ///
+ /// When this activity report was generated
+ ///
+ public DateTime ReportGenerated { get; set; } = DateTime.UtcNow;
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MemberRemovalRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MemberRemovalRequestDto.cs
new file mode 100644
index 0000000..eab4b05
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MemberRemovalRequestDto.cs
@@ -0,0 +1,65 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\MemberRemovalRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for alliance member removal operations
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for alliance member removal operations
+ ///
+ public class MemberRemovalRequestDto
+ {
+ ///
+ /// Player to remove from alliance
+ ///
+ [Required]
+ public int PlayerId { get; set; }
+
+ ///
+ /// Type of removal (Kick, Ban, Voluntary, Inactive, Disciplinary)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string RemovalType { get; set; } = string.Empty;
+
+ ///
+ /// Reason for removal
+ ///
+ [Required]
+ [StringLength(500)]
+ public string RemovalReason { get; set; } = string.Empty;
+
+ ///
+ /// Whether to notify the player of removal
+ ///
+ public bool NotifyPlayer { get; set; } = true;
+
+ ///
+ /// Cooldown period before player can rejoin (hours)
+ ///
+ [Range(0, 8760)] // 0 to 1 year
+ public int RejoinCooldownHours { get; set; } = 0;
+
+ ///
+ /// Whether to blacklist player from future applications
+ ///
+ public bool BlacklistPlayer { get; set; } = false;
+
+ ///
+ /// How to handle player's alliance assets
+ ///
+ [StringLength(50)]
+ public string AssetHandling { get; set; } = "ReturnToPlayer";
+
+ ///
+ /// Additional removal parameters and conditions
+ ///
+ public Dictionary? RemovalParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MemberRemovalResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MemberRemovalResponseDto.cs
new file mode 100644
index 0000000..fc486a7
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MemberRemovalResponseDto.cs
@@ -0,0 +1,96 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\MemberRemovalResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance member removal operations and results
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance member removal operations and results
+ ///
+ public class MemberRemovalResponseDto
+ {
+ ///
+ /// Unique identifier for the removal operation
+ ///
+ public int RemovalId { get; set; }
+
+ ///
+ /// Alliance performing the removal
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Player being removed
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Name of the player being removed
+ ///
+ public string PlayerName { get; set; } = string.Empty;
+
+ ///
+ /// Type of removal (Kick, Ban, Voluntary, Inactive, Disciplinary)
+ ///
+ public string RemovalType { get; set; } = string.Empty;
+
+ ///
+ /// Officer who initiated the removal
+ ///
+ public int InitiatedBy { get; set; }
+
+ ///
+ /// Name of the officer who initiated removal
+ ///
+ public string InitiatedByName { get; set; } = string.Empty;
+
+ ///
+ /// Reason for removal
+ ///
+ public string RemovalReason { get; set; } = string.Empty;
+
+ ///
+ /// Player's alliance statistics at time of removal
+ ///
+ public Dictionary PlayerStats { get; set; } = new();
+
+ ///
+ /// Resources or assets to be handled
+ ///
+ public Dictionary AssetHandling { get; set; } = new();
+
+ ///
+ /// Impact on ongoing alliance operations
+ ///
+ public Dictionary OperationalImpact { get; set; } = new();
+
+ ///
+ /// Cooldown period before player can rejoin
+ ///
+ public TimeSpan? RejoinCooldown { get; set; }
+
+ ///
+ /// Whether removal was successful
+ ///
+ public bool RemovalSuccessful { get; set; }
+
+ ///
+ /// Any errors or issues during removal
+ ///
+ public string? RemovalErrors { get; set; }
+
+ ///
+ /// Post-removal alliance statistics
+ ///
+ public Dictionary PostRemovalStats { get; set; } = new();
+
+ ///
+ /// When the removal was completed
+ ///
+ public DateTime RemovalCompleted { get; set; } = DateTime.UtcNow;
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MembershipProcessingRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MembershipProcessingRequestDto.cs
new file mode 100644
index 0000000..6516c5e
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MembershipProcessingRequestDto.cs
@@ -0,0 +1,69 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\MembershipProcessingRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for alliance membership processing operations
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for alliance membership processing operations
+ ///
+ public class MembershipProcessingRequestDto
+ {
+ ///
+ /// Alliance to apply to (for applications)
+ ///
+ public int? AllianceId { get; set; }
+
+ ///
+ /// Processing action (Apply, Review, Approve, Reject, Withdraw)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string Action { get; set; } = string.Empty;
+
+ ///
+ /// Application ID (for review actions)
+ ///
+ public int? ApplicationId { get; set; }
+
+ ///
+ /// Player being processed (for officer actions)
+ ///
+ public int? PlayerId { get; set; }
+
+ ///
+ /// Application message from player
+ ///
+ [StringLength(1000)]
+ public string? ApplicationMessage { get; set; }
+
+ ///
+ /// Review decision (for officer reviews)
+ ///
+ [StringLength(50)]
+ public string? ReviewDecision { get; set; }
+
+ ///
+ /// Review comments from officer
+ ///
+ [StringLength(500)]
+ public string? ReviewComments { get; set; }
+
+ ///
+ /// Priority level for processing (1-5)
+ ///
+ [Range(1, 5)]
+ public int Priority { get; set; } = 3;
+
+ ///
+ /// Processing parameters and special conditions
+ ///
+ public Dictionary? ProcessingParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MembershipProcessingResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MembershipProcessingResponseDto.cs
new file mode 100644
index 0000000..f98b469
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/MembershipProcessingResponseDto.cs
@@ -0,0 +1,91 @@
+/*
+ * 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;
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResearchAdvancementResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResearchAdvancementResponseDto.cs
new file mode 100644
index 0000000..204457f
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResearchAdvancementResponseDto.cs
@@ -0,0 +1,81 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\ResearchAdvancementResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance research advancement operations
+ * Last Edit Notes: Initial implementation for research tree progression results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance research advancement operations
+ ///
+ public class ResearchAdvancementResponseDto
+ {
+ ///
+ /// Alliance identifier conducting research
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Research advancement success status
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// Advancement result message
+ ///
+ public string Message { get; set; } = string.Empty;
+
+ ///
+ /// Research project that was advanced
+ ///
+ public Dictionary ResearchProject { get; set; } = new();
+
+ ///
+ /// New research level achieved
+ ///
+ public int NewLevel { get; set; }
+
+ ///
+ /// Previous research level
+ ///
+ public int PreviousLevel { get; set; }
+
+ ///
+ /// Benefits unlocked by this advancement
+ ///
+ public List> UnlockedBenefits { get; set; } = new();
+
+ ///
+ /// Resource costs for the advancement
+ ///
+ public Dictionary AdvancementCosts { get; set; } = new();
+
+ ///
+ /// Alliance members who contributed to research
+ ///
+ public List> Contributors { get; set; } = new();
+
+ ///
+ /// Next available research opportunities
+ ///
+ public List> NextResearchOptions { get; set; } = new();
+
+ ///
+ /// Research advancement timestamp
+ ///
+ public DateTime AdvancedAt { get; set; }
+
+ ///
+ /// Estimated time for next research level
+ ///
+ public TimeSpan? EstimatedNextAdvancement { get; set; }
+
+ ///
+ /// Alliance-wide bonuses gained from advancement
+ ///
+ public Dictionary AllianceBonuses { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResearchBenefitsResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResearchBenefitsResponseDto.cs
new file mode 100644
index 0000000..aa878c0
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResearchBenefitsResponseDto.cs
@@ -0,0 +1,76 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\ResearchBenefitsResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance research benefits information
+ * Last Edit Notes: Initial implementation for research tree benefit and bonus retrieval
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance research benefits information
+ ///
+ public class ResearchBenefitsResponseDto
+ {
+ ///
+ /// Alliance identifier receiving benefits
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// All active research benefits by category
+ ///
+ public Dictionary>> ActiveBenefits { get; set; } = new();
+
+ ///
+ /// Military research benefits and bonuses
+ ///
+ public Dictionary MilitaryBenefits { get; set; } = new();
+
+ ///
+ /// Economic research benefits and bonuses
+ ///
+ public Dictionary EconomicBenefits { get; set; } = new();
+
+ ///
+ /// Technology research benefits and bonuses
+ ///
+ public Dictionary TechnologyBenefits { get; set; } = new();
+
+ ///
+ /// Diplomatic and social research benefits
+ ///
+ public Dictionary DiplomaticBenefits { get; set; } = new();
+
+ ///
+ /// Territory and construction research benefits
+ ///
+ public Dictionary TerritoryBenefits { get; set; } = new();
+
+ ///
+ /// Coalition-specific research bonuses
+ ///
+ public Dictionary CoalitionBonuses { get; set; } = new();
+
+ ///
+ /// Member-specific benefits distribution
+ ///
+ public Dictionary> MemberBenefits { get; set; } = new();
+
+ ///
+ /// Total research power and effectiveness ratings
+ ///
+ public Dictionary EffectivenessRatings { get; set; } = new();
+
+ ///
+ /// Upcoming research benefits that can be unlocked
+ ///
+ public List> UpcomingBenefits { get; set; } = new();
+
+ ///
+ /// When benefits information was last calculated
+ ///
+ public DateTime LastCalculated { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResearchStatusResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResearchStatusResponseDto.cs
new file mode 100644
index 0000000..b896fe0
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResearchStatusResponseDto.cs
@@ -0,0 +1,86 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\ResearchStatusResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance research status information
+ * Last Edit Notes: Initial implementation for research tree progress and status retrieval
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance research status information
+ ///
+ public class ResearchStatusResponseDto
+ {
+ ///
+ /// Alliance identifier for research status
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Overall alliance research power level
+ ///
+ public int OverallResearchLevel { get; set; }
+
+ ///
+ /// Total research points accumulated
+ ///
+ public long TotalResearchPoints { get; set; }
+
+ ///
+ /// Available research points for spending
+ ///
+ public long AvailableResearchPoints { get; set; }
+
+ ///
+ /// Military research tree progress
+ ///
+ public Dictionary MilitaryResearch { get; set; } = new();
+
+ ///
+ /// Economic research tree progress
+ ///
+ public Dictionary EconomicResearch { get; set; } = new();
+
+ ///
+ /// Technology research tree progress
+ ///
+ public Dictionary TechnologyResearch { get; set; } = new();
+
+ ///
+ /// Diplomatic research tree progress
+ ///
+ public Dictionary DiplomaticResearch { get; set; } = new();
+
+ ///
+ /// Territory and construction research progress
+ ///
+ public Dictionary TerritoryResearch { get; set; } = new();
+
+ ///
+ /// Currently active research projects
+ ///
+ public List> ActiveProjects { get; set; } = new();
+
+ ///
+ /// Research projects available for starting
+ ///
+ public List> AvailableProjects { get; set; } = new();
+
+ ///
+ /// Member contribution statistics
+ ///
+ public Dictionary> MemberContributions { get; set; } = new();
+
+ ///
+ /// Research rate and efficiency bonuses
+ ///
+ public Dictionary ResearchBonuses { get; set; } = new();
+
+ ///
+ /// When research status was last updated
+ ///
+ public DateTime LastUpdated { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResourceTradingRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResourceTradingRequestDto.cs
new file mode 100644
index 0000000..a12c03d
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResourceTradingRequestDto.cs
@@ -0,0 +1,80 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\ResourceTradingRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for alliance resource trading operations and market participation
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for alliance resource trading operations and market participation
+ ///
+ public class ResourceTradingRequestDto
+ {
+ ///
+ /// Type of trade (Direct, Market, Coalition, Emergency)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string TradeType { get; set; } = string.Empty;
+
+ ///
+ /// Trading action (CreateOffer, AcceptOffer, CounterOffer, CancelTrade)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string TradeAction { get; set; } = string.Empty;
+
+ ///
+ /// Resources to offer in trade
+ ///
+ public Dictionary OfferedResources { get; set; } = new();
+
+ ///
+ /// Resources to request in trade
+ ///
+ public Dictionary RequestedResources { get; set; } = new();
+
+ ///
+ /// Target alliance for direct trades
+ ///
+ public int? TargetAllianceId { get; set; }
+
+ ///
+ /// Existing trade ID (for modifications)
+ ///
+ public int? ExistingTradeId { get; set; }
+
+ ///
+ /// Maximum acceptable exchange rate variance (percentage)
+ ///
+ [Range(0, 100)]
+ public decimal MaxRateVariance { get; set; } = 10;
+
+ ///
+ /// Trade duration in hours
+ ///
+ [Range(1, 168)]
+ public int TradeDurationHours { get; set; } = 24;
+
+ ///
+ /// Priority level for this trade (1-5)
+ ///
+ [Range(1, 5)]
+ public int Priority { get; set; } = 3;
+
+ ///
+ /// Whether to include coalition allies in trade
+ ///
+ public bool IncludeCoalitionAllies { get; set; } = false;
+
+ ///
+ /// Trading parameters and special conditions
+ ///
+ public Dictionary? TradingParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResourceTradingResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResourceTradingResponseDto.cs
new file mode 100644
index 0000000..2e8362e
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/ResourceTradingResponseDto.cs
@@ -0,0 +1,96 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\ResourceTradingResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance resource trading operations and market data
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance resource trading operations and market data
+ ///
+ public class ResourceTradingResponseDto
+ {
+ ///
+ /// Unique identifier for the trading operation
+ ///
+ public int TradeId { get; set; }
+
+ ///
+ /// Alliance initiating the trade
+ ///
+ public int InitiatingAllianceId { get; set; }
+
+ ///
+ /// Alliance receiving the trade (if direct trade)
+ ///
+ public int? TargetAllianceId { get; set; }
+
+ ///
+ /// Type of trade (Direct, Market, Coalition, Emergency)
+ ///
+ public string TradeType { get; set; } = string.Empty;
+
+ ///
+ /// Resources being offered
+ ///
+ public Dictionary OfferedResources { get; set; } = new();
+
+ ///
+ /// Resources being requested
+ ///
+ public Dictionary RequestedResources { get; set; } = new();
+
+ ///
+ /// Current trade exchange rates
+ ///
+ public Dictionary ExchangeRates { get; set; } = new();
+
+ ///
+ /// Trade status (Pending, Active, Completed, Cancelled, Expired)
+ ///
+ public string TradeStatus { get; set; } = string.Empty;
+
+ ///
+ /// Available trading partners
+ ///
+ public List> TradingPartners { get; set; } = new();
+
+ ///
+ /// Active market offers
+ ///
+ public List> MarketOffers { get; set; } = new();
+
+ ///
+ /// Trade history and trends
+ ///
+ public List> TradeHistory { get; set; } = new();
+
+ ///
+ /// Coalition trading benefits
+ ///
+ public Dictionary CoalitionBenefits { get; set; } = new();
+
+ ///
+ /// Trade completion percentage
+ ///
+ public decimal CompletionPercentage { get; set; }
+
+ ///
+ /// Time remaining for trade completion
+ ///
+ public TimeSpan? TradeTimeRemaining { get; set; }
+
+ ///
+ /// Trading fees and costs
+ ///
+ public Dictionary TradingCosts { get; set; } = new();
+
+ ///
+ /// When this trading information was last updated
+ ///
+ public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/RoleManagementRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/RoleManagementRequestDto.cs
new file mode 100644
index 0000000..8d638fc
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/RoleManagementRequestDto.cs
@@ -0,0 +1,65 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\RoleManagementRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for alliance role management operations
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for alliance role management operations
+ ///
+ public class RoleManagementRequestDto
+ {
+ ///
+ /// Player to modify role for
+ ///
+ [Required]
+ public int PlayerId { get; set; }
+
+ ///
+ /// Action to take (Promote, Demote, Assign, Remove, Transfer)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string Action { get; set; } = string.Empty;
+
+ ///
+ /// Target role for the action
+ ///
+ [Required]
+ [StringLength(50)]
+ public string TargetRole { get; set; } = string.Empty;
+
+ ///
+ /// Previous role (for validation)
+ ///
+ [StringLength(50)]
+ public string? PreviousRole { get; set; }
+
+ ///
+ /// Justification for the role change
+ ///
+ [StringLength(500)]
+ public string? Justification { get; set; }
+
+ ///
+ /// Whether to notify the player of the change
+ ///
+ public bool NotifyPlayer { get; set; } = true;
+
+ ///
+ /// Custom permissions to grant (if supported)
+ ///
+ public Dictionary? CustomPermissions { get; set; }
+
+ ///
+ /// Role change parameters and conditions
+ ///
+ public Dictionary? RoleParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/RoleManagementResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/RoleManagementResponseDto.cs
new file mode 100644
index 0000000..e59d65e
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/RoleManagementResponseDto.cs
@@ -0,0 +1,71 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\RoleManagementResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance role management and hierarchy
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance role management and hierarchy
+ ///
+ public class RoleManagementResponseDto
+ {
+ ///
+ /// Alliance ID for role management
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Complete alliance hierarchy structure
+ ///
+ public Dictionary AllianceHierarchy { get; set; } = new();
+
+ ///
+ /// Available roles and their permissions
+ ///
+ public List> AvailableRoles { get; set; } = new();
+
+ ///
+ /// Current role assignments
+ ///
+ public List> RoleAssignments { get; set; } = new();
+
+ ///
+ /// Role change history
+ ///
+ public List> RoleHistory { get; set; } = new();
+
+ ///
+ /// Permission matrix for each role
+ ///
+ public Dictionary> PermissionMatrix { get; set; } = new();
+
+ ///
+ /// Members eligible for promotion
+ ///
+ public List> PromotionCandidates { get; set; } = new();
+
+ ///
+ /// Pending role change requests
+ ///
+ public List> PendingRequests { get; set; } = new();
+
+ ///
+ /// Role capacity limits
+ ///
+ public Dictionary RoleCapacities { get; set; } = new();
+
+ ///
+ /// Current role utilization
+ ///
+ public Dictionary RoleUtilization { get; set; } = new();
+
+ ///
+ /// When role information was last updated
+ ///
+ public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TerritoryClaimRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TerritoryClaimRequestDto.cs
new file mode 100644
index 0000000..197a35c
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TerritoryClaimRequestDto.cs
@@ -0,0 +1,56 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\TerritoryClaimRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for alliance territory claim operations
+ * Last Edit Notes: Initial implementation for territory acquisition input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for alliance territory claim operations
+ ///
+ public class TerritoryClaimRequestDto
+ {
+ ///
+ /// Target territory coordinates for claiming
+ ///
+ [Required]
+ public Dictionary TargetCoordinates { get; set; } = new();
+
+ ///
+ /// Claim strategy and approach
+ ///
+ [Required]
+ public string ClaimStrategy { get; set; } = string.Empty;
+
+ ///
+ /// Resource allocation for territory claim
+ ///
+ public Dictionary? ResourceAllocation { get; set; }
+
+ ///
+ /// Military units assigned to claim operation
+ ///
+ public List>? MilitaryAssignment { get; set; }
+
+ ///
+ /// Claim priority level
+ ///
+ [Range(1, 10)]
+ public int ClaimPriority { get; set; } = 5;
+
+ ///
+ /// Expected claim duration
+ ///
+ public TimeSpan? ExpectedDuration { get; set; }
+
+ ///
+ /// Coalition coordination for claim
+ ///
+ public Dictionary? CoalitionCoordination { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TerritoryClaimResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TerritoryClaimResponseDto.cs
new file mode 100644
index 0000000..ab5eae5
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TerritoryClaimResponseDto.cs
@@ -0,0 +1,66 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\TerritoryClaimResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance territory claim operations
+ * Last Edit Notes: Initial implementation for territory acquisition results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance territory claim operations
+ ///
+ public class TerritoryClaimResponseDto
+ {
+ ///
+ /// Alliance identifier claiming territory
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Territory claim success status
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// Claim result message
+ ///
+ public string Message { get; set; } = string.Empty;
+
+ ///
+ /// Claimed territory information
+ ///
+ public Dictionary ClaimedTerritory { get; set; } = new();
+
+ ///
+ /// Territory coordinates and boundaries
+ ///
+ public Dictionary TerritoryBoundaries { get; set; } = new();
+
+ ///
+ /// Resource nodes and strategic points in territory
+ ///
+ public List> TerritoryAssets { get; set; } = new();
+
+ ///
+ /// Claim costs and requirements met
+ ///
+ public Dictionary ClaimCosts { get; set; } = new();
+
+ ///
+ /// Territory claim timestamp
+ ///
+ public DateTime ClaimedAt { get; set; }
+
+ ///
+ /// Territory control percentage
+ ///
+ public double ControlPercentage { get; set; }
+
+ ///
+ /// Neighboring territories and potential conflicts
+ ///
+ public List> NeighboringTerritories { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TerritoryDefenseRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TerritoryDefenseRequestDto.cs
new file mode 100644
index 0000000..61990ca
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TerritoryDefenseRequestDto.cs
@@ -0,0 +1,68 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\TerritoryDefenseRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for alliance territory defense operations
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for alliance territory defense operations
+ ///
+ public class TerritoryDefenseRequestDto
+ {
+ ///
+ /// Territory to defend
+ ///
+ [Required]
+ public int TerritoryId { get; set; }
+
+ ///
+ /// Type of defense operation (Prepare, Reinforce, Evacuate, CounterAttack)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string DefenseType { get; set; } = string.Empty;
+
+ ///
+ /// Forces to deploy for defense
+ ///
+ public Dictionary ForceDeployment { get; set; } = new();
+
+ ///
+ /// Coalition allies to request support from
+ ///
+ public List CoalitionSupportRequest { get; set; } = new();
+
+ ///
+ /// Defense strategy and tactics
+ ///
+ [StringLength(500)]
+ public string? DefenseStrategy { get; set; }
+
+ ///
+ /// Priority level for this defense (1-5)
+ ///
+ [Range(1, 5)]
+ public int Priority { get; set; } = 4;
+
+ ///
+ /// Resources to allocate for defense
+ ///
+ public Dictionary ResourceAllocation { get; set; } = new();
+
+ ///
+ /// Whether to use emergency protocols
+ ///
+ public bool UseEmergencyProtocols { get; set; } = false;
+
+ ///
+ /// Defense parameters and special conditions
+ ///
+ public Dictionary? DefenseParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TerritoryDefenseResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TerritoryDefenseResponseDto.cs
new file mode 100644
index 0000000..ee1491c
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TerritoryDefenseResponseDto.cs
@@ -0,0 +1,86 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\TerritoryDefenseResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance territory defense operations
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance territory defense operations
+ ///
+ public class TerritoryDefenseResponseDto
+ {
+ ///
+ /// Unique identifier for the defense operation
+ ///
+ public int DefenseId { get; set; }
+
+ ///
+ /// Alliance ID defending the territory
+ ///
+ public int DefendingAllianceId { get; set; }
+
+ ///
+ /// Territory being defended
+ ///
+ public Dictionary Territory { get; set; } = new();
+
+ ///
+ /// Current threat level (1-10)
+ ///
+ public int ThreatLevel { get; set; }
+
+ ///
+ /// Attacking forces detected
+ ///
+ public List> AttackingForces { get; set; } = new();
+
+ ///
+ /// Defensive forces deployed
+ ///
+ public Dictionary DefensiveForces { get; set; } = new();
+
+ ///
+ /// Defensive structures and their status
+ ///
+ public Dictionary DefensiveStructures { get; set; } = new();
+
+ ///
+ /// Coalition allies providing support
+ ///
+ public List> CoalitionSupport { get; set; } = new();
+
+ ///
+ /// Defense strategy being employed
+ ///
+ public string DefenseStrategy { get; set; } = string.Empty;
+
+ ///
+ /// Estimated time until attack arrives
+ ///
+ public TimeSpan? TimeToAttack { get; set; }
+
+ ///
+ /// Defense readiness percentage (0-100)
+ ///
+ public decimal ReadinessPercentage { get; set; }
+
+ ///
+ /// Recent defensive actions taken
+ ///
+ public List> RecentActions { get; set; } = new();
+
+ ///
+ /// Defense status (Preparing, Ready, UnderAttack, Repelled, Breached)
+ ///
+ public string DefenseStatus { get; set; } = string.Empty;
+
+ ///
+ /// When this defense information was last updated
+ ///
+ public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TreasuryOperationRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TreasuryOperationRequestDto.cs
new file mode 100644
index 0000000..bb51124
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TreasuryOperationRequestDto.cs
@@ -0,0 +1,69 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\TreasuryOperationRequestDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Request DTO for alliance treasury operations and resource management
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Request DTO for alliance treasury operations and resource management
+ ///
+ public class TreasuryOperationRequestDto
+ {
+ ///
+ /// Type of operation (Deposit, Withdraw, Transfer, Allocation, Tax)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string OperationType { get; set; } = string.Empty;
+
+ ///
+ /// Resources to operate on
+ ///
+ [Required]
+ public Dictionary ResourceAmounts { get; set; } = new();
+
+ ///
+ /// Purpose or reason for the operation
+ ///
+ [Required]
+ [StringLength(500)]
+ public string OperationPurpose { get; set; } = string.Empty;
+
+ ///
+ /// Target alliance (for transfers)
+ ///
+ public int? TargetAllianceId { get; set; }
+
+ ///
+ /// Target player (for distributions)
+ ///
+ public int? TargetPlayerId { get; set; }
+
+ ///
+ /// Priority level for this operation (1-5)
+ ///
+ [Range(1, 5)]
+ public int Priority { get; set; } = 3;
+
+ ///
+ /// Whether to require officer approval
+ ///
+ public bool RequireApproval { get; set; } = true;
+
+ ///
+ /// Scheduled execution time (for delayed operations)
+ ///
+ public DateTime? ScheduledExecution { get; set; }
+
+ ///
+ /// Operation parameters and special conditions
+ ///
+ public Dictionary? OperationParameters { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TreasuryOperationResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TreasuryOperationResponseDto.cs
new file mode 100644
index 0000000..7f45042
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TreasuryOperationResponseDto.cs
@@ -0,0 +1,91 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\TreasuryOperationResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance treasury operations and transactions
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance treasury operations and transactions
+ ///
+ public class TreasuryOperationResponseDto
+ {
+ ///
+ /// Unique identifier for the treasury operation
+ ///
+ public int OperationId { get; set; }
+
+ ///
+ /// Alliance treasury involved
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Type of operation (Deposit, Withdraw, Transfer, Allocation, Tax)
+ ///
+ public string OperationType { get; set; } = string.Empty;
+
+ ///
+ /// Player who initiated the operation
+ ///
+ public int InitiatedBy { get; set; }
+
+ ///
+ /// Name of the player who initiated operation
+ ///
+ public string InitiatedByName { get; set; } = string.Empty;
+
+ ///
+ /// Resources involved in the operation
+ ///
+ public Dictionary ResourceAmounts { get; set; } = new();
+
+ ///
+ /// Treasury balances before operation
+ ///
+ public Dictionary BalancesBefore { get; set; } = new();
+
+ ///
+ /// Treasury balances after operation
+ ///
+ public Dictionary BalancesAfter { get; set; } = new();
+
+ ///
+ /// Purpose or reason for the operation
+ ///
+ public string OperationPurpose { get; set; } = string.Empty;
+
+ ///
+ /// Whether the operation was successful
+ ///
+ public bool OperationSuccessful { get; set; }
+
+ ///
+ /// Any errors or issues during operation
+ ///
+ public string? OperationErrors { get; set; }
+
+ ///
+ /// Officers who approved the operation
+ ///
+ public List> ApprovalChain { get; set; } = new();
+
+ ///
+ /// Transaction fees or costs
+ ///
+ public Dictionary TransactionCosts { get; set; } = new();
+
+ ///
+ /// Impact on alliance operations
+ ///
+ public Dictionary OperationalImpact { get; set; } = new();
+
+ ///
+ /// When the operation was completed
+ ///
+ public DateTime OperationCompleted { get; set; } = DateTime.UtcNow;
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TreasuryStatusResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TreasuryStatusResponseDto.cs
new file mode 100644
index 0000000..0e7ddf8
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Alliance/TreasuryStatusResponseDto.cs
@@ -0,0 +1,96 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Alliance\TreasuryStatusResponseDto.cs
+ * Created: 2025-10-22
+ * Last Modified: 2025-10-22
+ * Description: Response DTO for alliance treasury status and financial overview
+ * Last Edit Notes: Initial creation following established Alliance DTO patterns
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Alliance
+{
+ ///
+ /// Response DTO for alliance treasury status and financial overview
+ ///
+ public class TreasuryStatusResponseDto
+ {
+ ///
+ /// Alliance ID for treasury status
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Alliance name
+ ///
+ public string AllianceName { get; set; } = string.Empty;
+
+ ///
+ /// Current treasury balances by resource type
+ ///
+ public Dictionary CurrentBalances { get; set; } = new();
+
+ ///
+ /// Treasury capacity limits
+ ///
+ public Dictionary CapacityLimits { get; set; } = new();
+
+ ///
+ /// Treasury utilization percentages
+ ///
+ public Dictionary UtilizationPercentages { get; set; } = new();
+
+ ///
+ /// Daily income from various sources
+ ///
+ public Dictionary DailyIncome { get; set; } = new();
+
+ ///
+ /// Daily expenditures by category
+ ///
+ public Dictionary DailyExpenses { get; set; } = new();
+
+ ///
+ /// Net daily treasury flow (income - expenses)
+ ///
+ public Dictionary NetDailyFlow { get; set; } = new();
+
+ ///
+ /// Recent treasury transactions
+ ///
+ public List> RecentTransactions { get; set; } = new();
+
+ ///
+ /// Pending treasury operations
+ ///
+ public List> PendingOperations { get; set; } = new();
+
+ ///
+ /// Treasury access permissions by role
+ ///
+ public Dictionary> AccessPermissions { get; set; } = new();
+
+ ///
+ /// Financial health indicators
+ ///
+ public Dictionary HealthIndicators { get; set; } = new();
+
+ ///
+ /// Resource allocation by category
+ ///
+ public Dictionary ResourceAllocations { get; set; } = new();
+
+ ///
+ /// Treasury growth trends over time
+ ///
+ public Dictionary>> GrowthTrends { get; set; } = new();
+
+ ///
+ /// Emergency reserve status
+ ///
+ public Dictionary EmergencyReserves { get; set; } = new();
+
+ ///
+ /// When this treasury status was last calculated
+ ///
+ public DateTime StatusCalculated { get; set; } = DateTime.UtcNow;
+ }
+}
\ No newline at end of file