diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/BattleExecutionRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/BattleExecutionRequestDto.cs
new file mode 100644
index 0000000..c4970f7
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/BattleExecutionRequestDto.cs
@@ -0,0 +1,84 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\BattleExecutionRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for battle execution operations
+ * Last Edit Notes: Individual file implementation for battle execution input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Request DTO for battle execution operations
+ ///
+ public class BattleExecutionRequestDto
+ {
+ ///
+ /// Combat log ID for the battle to execute
+ ///
+ [Required]
+ [Range(1, int.MaxValue)]
+ public int CombatLogId { get; set; }
+
+ ///
+ /// Attacking forces composition
+ ///
+ [Required]
+ public Dictionary AttackingForces { get; set; } = new();
+
+ ///
+ /// Defending forces composition
+ ///
+ [Required]
+ public Dictionary DefendingForces { get; set; } = new();
+
+ ///
+ /// Dragon participation for attacker
+ ///
+ public Dictionary? AttackerDragon { get; set; }
+
+ ///
+ /// Dragon participation for defender
+ ///
+ public Dictionary? DefenderDragon { get; set; }
+
+ ///
+ /// Battle type (Field, Castle, Siege, Interception)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string BattleType { get; set; } = string.Empty;
+
+ ///
+ /// Tactical formations and strategies
+ ///
+ public Dictionary TacticalFormations { get; set; } = new();
+
+ ///
+ /// Terrain bonuses and modifiers
+ ///
+ public Dictionary TerrainModifiers { get; set; } = new();
+
+ ///
+ /// Weather and environmental effects
+ ///
+ public Dictionary EnvironmentalEffects { get; set; } = new();
+
+ ///
+ /// Alliance bonuses for both sides
+ ///
+ public Dictionary AllianceBonuses { get; set; } = new();
+
+ ///
+ /// Equipment and gear bonuses
+ ///
+ public Dictionary EquipmentBonuses { get; set; } = new();
+
+ ///
+ /// Additional battle execution parameters
+ ///
+ public Dictionary ExecutionParameters { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/BattlePredictionRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/BattlePredictionRequestDto.cs
new file mode 100644
index 0000000..c3baee7
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/BattlePredictionRequestDto.cs
@@ -0,0 +1,89 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\BattlePredictionRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for battle outcome predictions
+ * Last Edit Notes: Individual file implementation for battle prediction input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Request DTO for battle outcome predictions
+ ///
+ public class BattlePredictionRequestDto
+ {
+ ///
+ /// Attacking player ID
+ ///
+ [Required]
+ [Range(1, int.MaxValue)]
+ public int AttackerId { get; set; }
+
+ ///
+ /// Defending player ID
+ ///
+ [Required]
+ [Range(1, int.MaxValue)]
+ public int DefenderId { get; set; }
+
+ ///
+ /// Proposed attacking army composition
+ ///
+ [Required]
+ public Dictionary AttackingArmy { get; set; } = new();
+
+ ///
+ /// Known or estimated defending army composition
+ ///
+ [Required]
+ public Dictionary DefendingArmy { get; set; } = new();
+
+ ///
+ /// Battle type for prediction (Field, Castle, Siege, Interception)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string BattleType { get; set; } = string.Empty;
+
+ ///
+ /// Whether attacker will include dragon
+ ///
+ public bool AttackerIncludesDragon { get; set; } = false;
+
+ ///
+ /// Whether defender will include dragon
+ ///
+ public bool DefenderIncludesDragon { get; set; } = false;
+
+ ///
+ /// Terrain type where battle will occur
+ ///
+ [StringLength(50)]
+ public string TerrainType { get; set; } = "Normal";
+
+ ///
+ /// Weather conditions affecting battle
+ ///
+ [StringLength(50)]
+ public string WeatherConditions { get; set; } = "Clear";
+
+ ///
+ /// Whether this is a field interception scenario
+ ///
+ public bool IsFieldInterception { get; set; } = false;
+
+ ///
+ /// Prediction detail level (Basic, Detailed, Comprehensive)
+ ///
+ [StringLength(50)]
+ public string DetailLevel { get; set; } = "Detailed";
+
+ ///
+ /// Additional prediction parameters
+ ///
+ public Dictionary PredictionParameters { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/BattlePredictionResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/BattlePredictionResponseDto.cs
new file mode 100644
index 0000000..09bbd77
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/BattlePredictionResponseDto.cs
@@ -0,0 +1,86 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\BattlePredictionResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for battle outcome predictions
+ * Last Edit Notes: Individual file implementation for battle prediction results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for battle outcome predictions
+ ///
+ public class BattlePredictionResponseDto
+ {
+ ///
+ /// Combat scenario ID for the prediction
+ ///
+ public int ScenarioId { get; set; }
+
+ ///
+ /// Attacker player ID
+ ///
+ public int AttackerId { get; set; }
+
+ ///
+ /// Defender player ID
+ ///
+ public int DefenderId { get; set; }
+
+ ///
+ /// Predicted battle outcome probabilities
+ ///
+ public Dictionary OutcomeProbabilities { get; set; } = new();
+
+ ///
+ /// Estimated casualty ranges for attacker
+ ///
+ public Dictionary> AttackerCasualtyEstimates { get; set; } = new();
+
+ ///
+ /// Estimated casualty ranges for defender
+ ///
+ public Dictionary> DefenderCasualtyEstimates { get; set; } = new();
+
+ ///
+ /// Power score comparison analysis
+ ///
+ public Dictionary PowerAnalysis { get; set; } = new();
+
+ ///
+ /// Dragon impact predictions
+ ///
+ public Dictionary DragonImpactPredictions { get; set; } = new();
+
+ ///
+ /// Tactical advantage assessments
+ ///
+ public Dictionary TacticalAdvantages { get; set; } = new();
+
+ ///
+ /// Resource gain/loss predictions
+ ///
+ public Dictionary> ResourcePredictions { get; set; } = new();
+
+ ///
+ /// Battle duration estimates
+ ///
+ public Dictionary DurationEstimates { get; set; } = new();
+
+ ///
+ /// Confidence levels for predictions
+ ///
+ public Dictionary PredictionConfidence { get; set; } = new();
+
+ ///
+ /// When predictions were calculated
+ ///
+ public DateTime PredictionTime { get; set; }
+
+ ///
+ /// Additional prediction analytics and metadata
+ ///
+ public Dictionary PredictionAnalytics { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/CasualtyProcessingRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/CasualtyProcessingRequestDto.cs
new file mode 100644
index 0000000..de3d653
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/CasualtyProcessingRequestDto.cs
@@ -0,0 +1,78 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\CasualtyProcessingRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for casualty processing operations
+ * Last Edit Notes: Individual file implementation for casualty processing input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Request DTO for casualty processing operations
+ ///
+ public class CasualtyProcessingRequestDto
+ {
+ ///
+ /// Combat log ID for casualty processing
+ ///
+ [Required]
+ [Range(1, int.MaxValue)]
+ public int CombatLogId { get; set; }
+
+ ///
+ /// Player ID whose casualties to process
+ ///
+ [Required]
+ [Range(1, int.MaxValue)]
+ public int PlayerId { get; set; }
+
+ ///
+ /// Battle casualties by troop type
+ ///
+ [Required]
+ public Dictionary BattleCasualties { get; set; } = new();
+
+ ///
+ /// Whether to apply VIP casualty reduction bonuses
+ ///
+ public bool ApplyVipReductions { get; set; } = true;
+
+ ///
+ /// Whether to apply alliance hospital bonuses
+ ///
+ public bool ApplyAllianceBonuses { get; set; } = true;
+
+ ///
+ /// Dragon healing abilities to apply
+ ///
+ public List DragonHealingSkills { get; set; } = new();
+
+ ///
+ /// Equipment protection bonuses active
+ ///
+ public Dictionary ProtectionBonuses { get; set; } = new();
+
+ ///
+ /// Hospital capacity overrides if applicable
+ ///
+ public Dictionary? HospitalCapacityOverrides { get; set; }
+
+ ///
+ /// Whether to use premium healing acceleration
+ ///
+ public bool UsePremiumHealing { get; set; } = false;
+
+ ///
+ /// Resources to spend on casualty recovery
+ ///
+ public Dictionary RecoveryResourceBudget { get; set; } = new();
+
+ ///
+ /// Additional casualty processing parameters
+ ///
+ public Dictionary ProcessingParameters { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/CasualtyProcessingResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/CasualtyProcessingResponseDto.cs
new file mode 100644
index 0000000..67ed976
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/CasualtyProcessingResponseDto.cs
@@ -0,0 +1,81 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\CasualtyProcessingResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for casualty processing after battles
+ * Last Edit Notes: Individual file implementation for casualty processing results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for casualty processing after battles
+ ///
+ public class CasualtyProcessingResponseDto
+ {
+ ///
+ /// Combat log ID for the processed battle
+ ///
+ public int CombatLogId { get; set; }
+
+ ///
+ /// Player ID whose casualties were processed
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Total casualties by troop type
+ ///
+ public Dictionary TotalCasualties { get; set; } = new();
+
+ ///
+ /// Troops killed permanently
+ ///
+ public Dictionary TroopsKilled { get; set; } = new();
+
+ ///
+ /// Troops wounded and sent to hospital
+ ///
+ public Dictionary TroopsWounded { get; set; } = new();
+
+ ///
+ /// Troops that survived the battle
+ ///
+ public Dictionary TroopsSurvived { get; set; } = new();
+
+ ///
+ /// Hospital capacity and healing information
+ ///
+ public Dictionary HospitalStatus { get; set; } = new();
+
+ ///
+ /// Dragon casualties and status
+ ///
+ public Dictionary? DragonCasualties { get; set; }
+
+ ///
+ /// Equipment lost or damaged in battle
+ ///
+ public Dictionary EquipmentDamage { get; set; } = new();
+
+ ///
+ /// Casualty reduction bonuses applied
+ ///
+ public Dictionary CasualtyReductions { get; set; } = new();
+
+ ///
+ /// Alliance hospital assistance provided
+ ///
+ public Dictionary AllianceAssistance { get; set; } = new();
+
+ ///
+ /// When casualty processing was completed
+ ///
+ public DateTime ProcessingTime { get; set; }
+
+ ///
+ /// Additional casualty processing data
+ ///
+ public Dictionary ProcessingMetadata { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/CombatEffectivenessResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/CombatEffectivenessResponseDto.cs
new file mode 100644
index 0000000..6987db9
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/CombatEffectivenessResponseDto.cs
@@ -0,0 +1,91 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\CombatEffectivenessResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for combat effectiveness analysis and anti-pay-to-win monitoring
+ * Last Edit Notes: Individual file implementation for combat effectiveness results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for combat effectiveness analysis and anti-pay-to-win monitoring
+ ///
+ public class CombatEffectivenessResponseDto
+ {
+ ///
+ /// Player ID being analyzed
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Player's current overall combat effectiveness rating
+ ///
+ public decimal OverallEffectiveness { get; set; }
+
+ ///
+ /// Combat effectiveness breakdown by category
+ ///
+ public Dictionary EffectivenessBreakdown { get; set; } = new();
+
+ ///
+ /// Comparison to free-to-play baseline (target: 70% competitive)
+ ///
+ public Dictionary F2PComparison { get; set; } = new();
+
+ ///
+ /// Spending-derived advantages vs skill-based advantages
+ ///
+ public Dictionary AdvantageAnalysis { get; set; } = new();
+
+ ///
+ /// Available skill-based alternatives to premium advantages
+ ///
+ public List> SkillAlternatives { get; set; } = new();
+
+ ///
+ /// Player's skill progression and mastery levels
+ ///
+ public Dictionary SkillProgression { get; set; } = new();
+
+ ///
+ /// Anti-pay-to-win balance validation results
+ ///
+ public Dictionary BalanceValidation { get; set; } = new();
+
+ ///
+ /// Recommended paths for improvement without spending
+ ///
+ public List> ImprovementPaths { get; set; } = new();
+
+ ///
+ /// Combat performance trends over time
+ ///
+ public Dictionary PerformanceTrends { get; set; } = new();
+
+ ///
+ /// Effectiveness compared to kingdom and alliance averages
+ ///
+ public Dictionary RelativeEffectiveness { get; set; } = new();
+
+ ///
+ /// Dragon contribution to overall effectiveness
+ ///
+ public Dictionary DragonContribution { get; set; } = new();
+
+ ///
+ /// Equipment vs skill contribution ratios
+ ///
+ public Dictionary ContributionRatios { get; set; } = new();
+
+ ///
+ /// When effectiveness analysis was performed
+ ///
+ public DateTime AnalysisTime { get; set; }
+
+ ///
+ /// Additional effectiveness analytics and monitoring data
+ ///
+ public Dictionary AnalyticsMetadata { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonEquipmentRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonEquipmentRequestDto.cs
new file mode 100644
index 0000000..a1c76fa
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonEquipmentRequestDto.cs
@@ -0,0 +1,86 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\DragonEquipmentRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for dragon equipment operations
+ * Last Edit Notes: Individual file implementation for dragon equipment input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Request DTO for dragon equipment operations
+ ///
+ public class DragonEquipmentRequestDto
+ {
+ ///
+ /// Dragon unique identifier
+ ///
+ [Required]
+ [Range(1, int.MaxValue)]
+ public int DragonId { get; set; }
+
+ ///
+ /// Equipment operation type (Equip, Unequip, Upgrade, Craft, Repair)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string OperationType { get; set; } = string.Empty;
+
+ ///
+ /// Equipment item ID for the operation
+ ///
+ [Range(1, int.MaxValue)]
+ public int? ItemId { get; set; }
+
+ ///
+ /// Equipment slot for equip/unequip operations
+ ///
+ [StringLength(50)]
+ public string? EquipmentSlot { get; set; }
+
+ ///
+ /// Resources to spend on upgrade or crafting
+ ///
+ public Dictionary ResourceInvestment { get; set; } = new();
+
+ ///
+ /// Whether to use premium enhancement materials
+ ///
+ public bool UsePremiumMaterials { get; set; } = false;
+
+ ///
+ /// Target upgrade level for equipment enhancement
+ ///
+ [Range(1, 20)]
+ public int? TargetUpgradeLevel { get; set; }
+
+ ///
+ /// Equipment set preferences for optimization
+ ///
+ public List PreferredSets { get; set; } = new();
+
+ ///
+ /// Crafting recipe ID for new equipment
+ ///
+ [Range(1, int.MaxValue)]
+ public int? CraftingRecipeId { get; set; }
+
+ ///
+ /// Auto-equip preferences after crafting/upgrading
+ ///
+ public bool AutoEquipAfterOperation { get; set; } = true;
+
+ ///
+ /// Maximum resources willing to spend
+ ///
+ public Dictionary SpendingLimits { get; set; } = new();
+
+ ///
+ /// Additional equipment operation parameters
+ ///
+ public Dictionary OperationParameters { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonEquipmentResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonEquipmentResponseDto.cs
new file mode 100644
index 0000000..7cc47c9
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonEquipmentResponseDto.cs
@@ -0,0 +1,86 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\DragonEquipmentResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for dragon equipment operations
+ * Last Edit Notes: Individual file implementation for dragon equipment results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for dragon equipment operations
+ ///
+ public class DragonEquipmentResponseDto
+ {
+ ///
+ /// Player ID who owns the dragon
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Dragon unique identifier
+ ///
+ public int DragonId { get; set; }
+
+ ///
+ /// Currently equipped items by slot
+ ///
+ public Dictionary> EquippedItems { get; set; } = new();
+
+ ///
+ /// Available equipment in inventory
+ ///
+ public List> AvailableEquipment { get; set; } = new();
+
+ ///
+ /// Equipment bonuses currently active
+ ///
+ public Dictionary EquipmentBonuses { get; set; } = new();
+
+ ///
+ /// Set bonuses from equipped gear combinations
+ ///
+ public List> SetBonuses { get; set; } = new();
+
+ ///
+ /// Dragon's total combat effectiveness with equipment
+ ///
+ public Dictionary CombatEffectiveness { get; set; } = new();
+
+ ///
+ /// Equipment durability and maintenance status
+ ///
+ public Dictionary EquipmentCondition { get; set; } = new();
+
+ ///
+ /// Upgrade possibilities for current equipment
+ ///
+ public List> UpgradeOptions { get; set; } = new();
+
+ ///
+ /// Crafting materials available for new equipment
+ ///
+ public Dictionary CraftingMaterials { get; set; } = new();
+
+ ///
+ /// Skill-based equipment alternatives to premium gear
+ ///
+ public List> SkillBasedAlternatives { get; set; } = new();
+
+ ///
+ /// Equipment operation results (equip, unequip, upgrade)
+ ///
+ public Dictionary OperationResults { get; set; } = new();
+
+ ///
+ /// When equipment status was last updated
+ ///
+ public DateTime LastUpdated { get; set; }
+
+ ///
+ /// Additional equipment system data
+ ///
+ public Dictionary EquipmentMetadata { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonSkillRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonSkillRequestDto.cs
new file mode 100644
index 0000000..e7fb757
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonSkillRequestDto.cs
@@ -0,0 +1,80 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\DragonSkillRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for dragon skill operations
+ * Last Edit Notes: Individual file implementation for dragon skill input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Request DTO for dragon skill operations
+ ///
+ public class DragonSkillRequestDto
+ {
+ ///
+ /// Dragon unique identifier
+ ///
+ [Required]
+ [Range(1, int.MaxValue)]
+ public int DragonId { get; set; }
+
+ ///
+ /// Skill name to activate or modify
+ ///
+ [Required]
+ [StringLength(100)]
+ public string SkillName { get; set; } = string.Empty;
+
+ ///
+ /// Operation type (Activate, Upgrade, Query, Reset)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string OperationType { get; set; } = string.Empty;
+
+ ///
+ /// Target for skill activation (player, coordinates, etc.)
+ ///
+ public Dictionary? SkillTarget { get; set; }
+
+ ///
+ /// Skill intensity or power level to use
+ ///
+ [Range(0.1, 2.0)]
+ public decimal SkillIntensity { get; set; } = 1.0m;
+
+ ///
+ /// Resources to spend on skill upgrade
+ ///
+ public Dictionary UpgradeResources { get; set; } = new();
+
+ ///
+ /// Whether to use premium skill enhancement
+ ///
+ public bool UsePremiumEnhancement { get; set; } = false;
+
+ ///
+ /// Maximum resources willing to spend
+ ///
+ public Dictionary ResourceLimits { get; set; } = new();
+
+ ///
+ /// Skill combination with other dragon abilities
+ ///
+ public List ComboSkills { get; set; } = new();
+
+ ///
+ /// Timing preferences for skill activation
+ ///
+ public Dictionary TimingPreferences { get; set; } = new();
+
+ ///
+ /// Additional skill operation parameters
+ ///
+ public Dictionary SkillParameters { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonSkillResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonSkillResponseDto.cs
new file mode 100644
index 0000000..bd9435a
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonSkillResponseDto.cs
@@ -0,0 +1,91 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\DragonSkillResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for dragon skill operations and effects
+ * Last Edit Notes: Individual file implementation for dragon skill results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for dragon skill operations and effects
+ ///
+ public class DragonSkillResponseDto
+ {
+ ///
+ /// Player ID who owns the dragon
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Dragon unique identifier
+ ///
+ public int DragonId { get; set; }
+
+ ///
+ /// Skill that was activated or queried
+ ///
+ public string SkillName { get; set; } = string.Empty;
+
+ ///
+ /// Current skill level and progression
+ ///
+ public Dictionary SkillProgression { get; set; } = new();
+
+ ///
+ /// Skill effects and bonuses applied
+ ///
+ public Dictionary SkillEffects { get; set; } = new();
+
+ ///
+ /// Duration of skill effects
+ ///
+ public Dictionary EffectDurations { get; set; } = new();
+
+ ///
+ /// Resource costs for skill activation
+ ///
+ public Dictionary SkillCosts { get; set; } = new();
+
+ ///
+ /// Cooldown period before skill can be used again
+ ///
+ public TimeSpan SkillCooldown { get; set; }
+
+ ///
+ /// Next available use time
+ ///
+ public DateTime? NextAvailableTime { get; set; }
+
+ ///
+ /// Combat bonuses provided by the skill
+ ///
+ public Dictionary CombatBonuses { get; set; } = new();
+
+ ///
+ /// Skill-based alternatives to premium features
+ ///
+ public List> SkillAlternatives { get; set; } = new();
+
+ ///
+ /// Experience gained from skill usage
+ ///
+ public long SkillExperience { get; set; }
+
+ ///
+ /// Whether skill activation was successful
+ ///
+ public bool ActivationSuccess { get; set; }
+
+ ///
+ /// When skill was activated or queried
+ ///
+ public DateTime SkillTime { get; set; }
+
+ ///
+ /// Additional skill-related data and analytics
+ ///
+ public Dictionary SkillMetadata { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonValidationResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonValidationResponseDto.cs
new file mode 100644
index 0000000..68510da
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/DragonValidationResponseDto.cs
@@ -0,0 +1,86 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\DragonValidationResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for dragon validation in combat operations
+ * Last Edit Notes: Individual file implementation for dragon validation results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for dragon validation in combat operations
+ ///
+ public class DragonValidationResponseDto
+ {
+ ///
+ /// Player ID who owns the dragon
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Dragon unique identifier
+ ///
+ public int DragonId { get; set; }
+
+ ///
+ /// Whether dragon can participate in the requested combat
+ ///
+ public bool CanParticipate { get; set; }
+
+ ///
+ /// Validation errors preventing dragon participation
+ ///
+ public List ValidationErrors { get; set; } = new();
+
+ ///
+ /// Dragon's current health and status
+ ///
+ public Dictionary DragonStatus { get; set; } = new();
+
+ ///
+ /// Dragon's current level and experience
+ ///
+ public Dictionary DragonProgression { get; set; } = new();
+
+ ///
+ /// Available skills and abilities
+ ///
+ public List> AvailableSkills { get; set; } = new();
+
+ ///
+ /// Currently equipped dragon gear
+ ///
+ public Dictionary EquippedGear { get; set; } = new();
+
+ ///
+ /// Combat bonuses the dragon provides
+ ///
+ public Dictionary CombatBonuses { get; set; } = new();
+
+ ///
+ /// Dragon's energy and participation costs
+ ///
+ public Dictionary ParticipationCosts { get; set; } = new();
+
+ ///
+ /// Cooldown information for dragon abilities
+ ///
+ public Dictionary AbilityCooldowns { get; set; } = new();
+
+ ///
+ /// Dragon compatibility with army composition
+ ///
+ public Dictionary ArmyCompatibility { get; set; } = new();
+
+ ///
+ /// When validation was performed
+ ///
+ public DateTime ValidationTime { get; set; }
+
+ ///
+ /// Additional dragon validation metadata
+ ///
+ public Dictionary ValidationMetadata { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/FieldInterceptionResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/FieldInterceptionResponseDto.cs
new file mode 100644
index 0000000..23c3294
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/FieldInterceptionResponseDto.cs
@@ -0,0 +1,76 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\FieldInterceptionResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for field interception opportunities and results
+ * Last Edit Notes: Individual file implementation for field interception system data
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for field interception opportunities and results
+ ///
+ public class FieldInterceptionResponseDto
+ {
+ ///
+ /// Combat log ID for the interception
+ ///
+ public int CombatLogId { get; set; }
+
+ ///
+ /// Attacking player ID
+ ///
+ public int AttackerId { get; set; }
+
+ ///
+ /// Defending player ID
+ ///
+ public int DefenderId { get; set; }
+
+ ///
+ /// Whether field interception is available
+ ///
+ public bool InterceptionAvailable { get; set; }
+
+ ///
+ /// Available interception positions on the field
+ ///
+ public List> InterceptionPositions { get; set; } = new();
+
+ ///
+ /// Timing windows for successful interception
+ ///
+ public Dictionary InterceptionWindows { get; set; } = new();
+
+ ///
+ /// Tactical advantages of field interception
+ ///
+ public Dictionary TacticalAdvantages { get; set; } = new();
+
+ ///
+ /// Speed and movement calculations
+ ///
+ public Dictionary MovementData { get; set; } = new();
+
+ ///
+ /// Grace periods and minimum march times
+ ///
+ public Dictionary TimingConstraints { get; set; } = new();
+
+ ///
+ /// Whether interception was successful if attempted
+ ///
+ public bool? InterceptionSuccess { get; set; }
+
+ ///
+ /// When interception opportunity was calculated
+ ///
+ public DateTime CalculationTime { get; set; }
+
+ ///
+ /// Additional field interception analytics
+ ///
+ public Dictionary InterceptionAnalytics { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/InterceptionValidationRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/InterceptionValidationRequestDto.cs
new file mode 100644
index 0000000..56bb680
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/InterceptionValidationRequestDto.cs
@@ -0,0 +1,63 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\InterceptionValidationRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for interception validation
+ * Last Edit Notes: Individual file implementation for interception validation input
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Request DTO for interception validation
+ ///
+ public class InterceptionValidationRequestDto
+ {
+ ///
+ /// Target march or attack to intercept
+ ///
+ [Required]
+ [Range(1, int.MaxValue)]
+ public int TargetMarchId { get; set; }
+
+ ///
+ /// Proposed interception coordinates
+ ///
+ [Required]
+ public Dictionary InterceptionCoordinates { get; set; } = new();
+
+ ///
+ /// Troops to send for interception by type
+ ///
+ [Required]
+ public Dictionary TroopsToSend { get; set; } = new();
+
+ ///
+ /// Whether to include dragon in interception
+ ///
+ public bool IncludeDragon { get; set; } = false;
+
+ ///
+ /// Dragon skills to apply if dragon is included
+ ///
+ public List DragonSkills { get; set; } = new();
+
+ ///
+ /// Preferred march speed (affects timing and costs)
+ ///
+ [Range(0.1, 2.0)]
+ public decimal PreferredSpeed { get; set; } = 1.0m;
+
+ ///
+ /// Whether to use stealth/concealment if available
+ ///
+ public bool UseStealthMechanics { get; set; } = false;
+
+ ///
+ /// Additional interception parameters
+ ///
+ public Dictionary InterceptionParameters { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/InterceptionValidationResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/InterceptionValidationResponseDto.cs
new file mode 100644
index 0000000..523c24f
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/InterceptionValidationResponseDto.cs
@@ -0,0 +1,76 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\InterceptionValidationResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for interception validation results
+ * Last Edit Notes: Individual file implementation for interception validation data
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for interception validation results
+ ///
+ public class InterceptionValidationResponseDto
+ {
+ ///
+ /// Player ID attempting the interception
+ ///
+ public int InterceptorId { get; set; }
+
+ ///
+ /// Target march or attack being intercepted
+ ///
+ public int TargetMarchId { get; set; }
+
+ ///
+ /// Whether the interception attempt is valid
+ ///
+ public bool IsValid { get; set; }
+
+ ///
+ /// Validation errors if interception is not allowed
+ ///
+ public List ValidationErrors { get; set; } = new();
+
+ ///
+ /// Distance calculations and feasibility
+ ///
+ public Dictionary DistanceCalculations { get; set; } = new();
+
+ ///
+ /// Speed requirements and march time estimates
+ ///
+ public Dictionary SpeedRequirements { get; set; } = new();
+
+ ///
+ /// Resource costs for the interception march
+ ///
+ public Dictionary InterceptionCosts { get; set; } = new();
+
+ ///
+ /// Optimal interception coordinates
+ ///
+ public Dictionary OptimalPosition { get; set; } = new();
+
+ ///
+ /// Success probability estimates
+ ///
+ public Dictionary SuccessProbabilities { get; set; } = new();
+
+ ///
+ /// Dragon participation requirements and bonuses
+ ///
+ public Dictionary DragonRequirements { get; set; } = new();
+
+ ///
+ /// When validation was performed
+ ///
+ public DateTime ValidationTime { get; set; }
+
+ ///
+ /// Additional validation metadata
+ ///
+ public Dictionary ValidationMetadata { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/KingdomTrendsResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/KingdomTrendsResponseDto.cs
new file mode 100644
index 0000000..e28a292
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/KingdomTrendsResponseDto.cs
@@ -0,0 +1,101 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\KingdomTrendsResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for kingdom-wide combat trends and analytics
+ * Last Edit Notes: Individual file implementation for kingdom combat trends data
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for kingdom-wide combat trends and analytics
+ ///
+ public class KingdomTrendsResponseDto
+ {
+ ///
+ /// Kingdom ID for the trends analysis
+ ///
+ public int KingdomId { get; set; }
+
+ ///
+ /// Analysis time period covered
+ ///
+ public Dictionary AnalysisPeriod { get; set; } = new();
+
+ ///
+ /// Overall kingdom combat activity statistics
+ ///
+ public Dictionary CombatActivity { get; set; } = new();
+
+ ///
+ /// Field interception usage and success rates
+ ///
+ public Dictionary InterceptionTrends { get; set; } = new();
+
+ ///
+ /// Alliance vs alliance combat patterns
+ ///
+ public Dictionary AllianceCombatPatterns { get; set; } = new();
+
+ ///
+ /// Dragon participation rates and effectiveness
+ ///
+ public Dictionary DragonUsageTrends { get; set; } = new();
+
+ ///
+ /// Combat type distribution (raids, sieges, field battles)
+ ///
+ public Dictionary CombatTypeDistribution { get; set; } = new();
+
+ ///
+ /// Victory/defeat ratios by player power ranges
+ ///
+ public Dictionary PowerRangeAnalysis { get; set; } = new();
+
+ ///
+ /// Free-to-play vs spender combat effectiveness tracking
+ ///
+ public Dictionary SpendingEffectivenessAnalysis { get; set; } = new();
+
+ ///
+ /// Skill-based vs premium advantage usage patterns
+ ///
+ public Dictionary AdvantageUsagePatterns { get; set; } = new();
+
+ ///
+ /// Kingdom leaderboard and ranking changes
+ ///
+ public Dictionary RankingTrends { get; set; } = new();
+
+ ///
+ /// Coalition formation and warfare patterns
+ ///
+ public Dictionary CoalitionWarfarePatterns { get; set; } = new();
+
+ ///
+ /// Resource flow and economic impact of combat
+ ///
+ public Dictionary EconomicImpact { get; set; } = new();
+
+ ///
+ /// KvK participation and performance metrics
+ ///
+ public Dictionary? KvKMetrics { get; set; }
+
+ ///
+ /// Emerging combat strategies and meta shifts
+ ///
+ public List> StrategyTrends { get; set; } = new();
+
+ ///
+ /// When trends analysis was completed
+ ///
+ public DateTime AnalysisCompletionTime { get; set; }
+
+ ///
+ /// Additional kingdom-wide combat analytics
+ ///
+ public Dictionary KingdomAnalytics { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchArrivalRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchArrivalRequestDto.cs
new file mode 100644
index 0000000..5742ec1
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchArrivalRequestDto.cs
@@ -0,0 +1,69 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\MarchArrivalRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for processing march arrivals
+ * Last Edit Notes: Individual file implementation for march arrival processing input
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Request DTO for processing march arrivals
+ ///
+ public class MarchArrivalRequestDto
+ {
+ ///
+ /// March ID that is arriving
+ ///
+ [Required]
+ [Range(1, int.MaxValue)]
+ public int MarchId { get; set; }
+
+ ///
+ /// Expected arrival coordinates
+ ///
+ [Required]
+ public Dictionary ExpectedCoordinates { get; set; } = new();
+
+ ///
+ /// Actions to perform upon arrival
+ ///
+ [Required]
+ [StringLength(50)]
+ public string ArrivalAction { get; set; } = string.Empty;
+
+ ///
+ /// Whether to engage in immediate combat if defenders present
+ ///
+ public bool EngageDefenders { get; set; } = true;
+
+ ///
+ /// Combat stance for battle (Aggressive, Defensive, Balanced)
+ ///
+ [StringLength(50)]
+ public string CombatStance { get; set; } = "Balanced";
+
+ ///
+ /// Dragon tactics to apply in combat
+ ///
+ public List DragonTactics { get; set; } = new();
+
+ ///
+ /// Resource collection preferences if applicable
+ ///
+ public Dictionary ResourcePreferences { get; set; } = new();
+
+ ///
+ /// Whether to attempt stealth approach
+ ///
+ public bool UseStealthApproach { get; set; } = false;
+
+ ///
+ /// Additional arrival processing parameters
+ ///
+ public Dictionary ArrivalParameters { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchArrivalResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchArrivalResponseDto.cs
new file mode 100644
index 0000000..a141e4a
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchArrivalResponseDto.cs
@@ -0,0 +1,86 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\MarchArrivalResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for march arrival events and outcomes
+ * Last Edit Notes: Individual file implementation for march arrival results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for march arrival events and outcomes
+ ///
+ public class MarchArrivalResponseDto
+ {
+ ///
+ /// March ID that arrived
+ ///
+ public int MarchId { get; set; }
+
+ ///
+ /// Player ID who owned the march
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// March type that arrived
+ ///
+ public string MarchType { get; set; } = string.Empty;
+
+ ///
+ /// Actual arrival coordinates
+ ///
+ public Dictionary ArrivalCoordinates { get; set; } = new();
+
+ ///
+ /// Troops that arrived at destination
+ ///
+ public Dictionary ArrivingTroops { get; set; } = new();
+
+ ///
+ /// Dragon status upon arrival
+ ///
+ public Dictionary? DragonArrival { get; set; }
+
+ ///
+ /// Whether arrival triggered immediate combat
+ ///
+ public bool TriggeredCombat { get; set; }
+
+ ///
+ /// Combat log ID if battle occurred
+ ///
+ public int? CombatLogId { get; set; }
+
+ ///
+ /// Field interception that occurred during march
+ ///
+ public Dictionary? InterceptionResults { get; set; }
+
+ ///
+ /// Resources gained or lost upon arrival
+ ///
+ public Dictionary ResourceChanges { get; set; } = new();
+
+ ///
+ /// March duration and timing analysis
+ ///
+ public Dictionary MarchTiming { get; set; } = new();
+
+ ///
+ /// Experience gained from the march/arrival
+ ///
+ public long ExperienceGained { get; set; }
+
+ ///
+ /// When the march arrived
+ ///
+ public DateTime ArrivalTime { get; set; }
+
+ ///
+ /// Additional arrival event data
+ ///
+ public Dictionary ArrivalEventData { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchCancellationResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchCancellationResponseDto.cs
new file mode 100644
index 0000000..73064f6
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchCancellationResponseDto.cs
@@ -0,0 +1,81 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\MarchCancellationResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for march cancellation operations
+ * Last Edit Notes: Individual file implementation for march cancellation results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for march cancellation operations
+ ///
+ public class MarchCancellationResponseDto
+ {
+ ///
+ /// March ID that was cancelled
+ ///
+ public int MarchId { get; set; }
+
+ ///
+ /// Player ID who cancelled the march
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Whether cancellation was successful
+ ///
+ public bool CancellationSuccess { get; set; }
+
+ ///
+ /// Reason for cancellation if unsuccessful
+ ///
+ public string? CancellationError { get; set; }
+
+ ///
+ /// Troops returned to player after cancellation
+ ///
+ public Dictionary TroopsReturned { get; set; } = new();
+
+ ///
+ /// Resources refunded from cancellation
+ ///
+ public Dictionary ResourcesRefunded { get; set; } = new();
+
+ ///
+ /// Resources lost due to cancellation penalties
+ ///
+ public Dictionary ResourcesLost { get; set; } = new();
+
+ ///
+ /// Dragon status after march cancellation
+ ///
+ public Dictionary? DragonStatus { get; set; }
+
+ ///
+ /// Percentage of march completed before cancellation
+ ///
+ public decimal MarchCompletionPercentage { get; set; }
+
+ ///
+ /// Time remaining until march would have completed
+ ///
+ public TimeSpan? TimeRemaining { get; set; }
+
+ ///
+ /// Grace period considerations for cancellation
+ ///
+ public Dictionary GracePeriodInfo { get; set; } = new();
+
+ ///
+ /// When the march was cancelled
+ ///
+ public DateTime CancellationTime { get; set; }
+
+ ///
+ /// Additional cancellation metadata
+ ///
+ public Dictionary CancellationMetadata { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchInitiationResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchInitiationResponseDto.cs
new file mode 100644
index 0000000..bc67a1b
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchInitiationResponseDto.cs
@@ -0,0 +1,81 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\MarchInitiationResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for march initiation operations
+ * Last Edit Notes: Individual file implementation for march initiation results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for march initiation operations
+ ///
+ public class MarchInitiationResponseDto
+ {
+ ///
+ /// Unique march identifier
+ ///
+ public int MarchId { get; set; }
+
+ ///
+ /// Player ID who initiated the march
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// March type (Attack, Raid, Reconnaissance, Reinforcement)
+ ///
+ public string MarchType { get; set; } = string.Empty;
+
+ ///
+ /// Target coordinates or player ID
+ ///
+ public Dictionary MarchTarget { get; set; } = new();
+
+ ///
+ /// Troops participating in the march
+ ///
+ public Dictionary MarchingTroops { get; set; } = new();
+
+ ///
+ /// Dragon participation details
+ ///
+ public Dictionary? DragonParticipation { get; set; }
+
+ ///
+ /// March route and waypoints
+ ///
+ public Dictionary MarchRoute { get; set; } = new();
+
+ ///
+ /// Estimated arrival time at destination
+ ///
+ public DateTime EstimatedArrival { get; set; }
+
+ ///
+ /// Resource costs consumed for the march
+ ///
+ public Dictionary ResourceCosts { get; set; } = new();
+
+ ///
+ /// Speed limitations and grace periods applied
+ ///
+ public Dictionary SpeedConstraints { get; set; } = new();
+
+ ///
+ /// Whether march initiation was successful
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// When the march was initiated
+ ///
+ public DateTime InitiationTime { get; set; }
+
+ ///
+ /// Additional march metadata and tracking info
+ ///
+ public Dictionary MarchMetadata { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchSpeedRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchSpeedRequestDto.cs
new file mode 100644
index 0000000..92f2956
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/MarchSpeedRequestDto.cs
@@ -0,0 +1,74 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\MarchSpeedRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for march speed calculations and modifications
+ * Last Edit Notes: Individual file implementation for march speed input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Request DTO for march speed calculations and modifications
+ ///
+ public class MarchSpeedRequestDto
+ {
+ ///
+ /// March ID to modify speed for
+ ///
+ [Required]
+ [Range(1, int.MaxValue)]
+ public int MarchId { get; set; }
+
+ ///
+ /// Desired speed multiplier (0.1 to 2.0)
+ ///
+ [Required]
+ [Range(0.1, 2.0)]
+ public decimal SpeedMultiplier { get; set; } = 1.0m;
+
+ ///
+ /// Army composition affecting base speed
+ ///
+ [Required]
+ public Dictionary ArmyComposition { get; set; } = new();
+
+ ///
+ /// Whether to apply VIP speed bonuses
+ ///
+ public bool ApplyVipBonuses { get; set; } = true;
+
+ ///
+ /// Whether to apply alliance speed bonuses
+ ///
+ public bool ApplyAllianceBonuses { get; set; } = true;
+
+ ///
+ /// Dragon speed skills to apply
+ ///
+ public List DragonSpeedSkills { get; set; } = new();
+
+ ///
+ /// Terrain type for speed calculations
+ ///
+ [StringLength(50)]
+ public string TerrainType { get; set; } = "Normal";
+
+ ///
+ /// Whether march is passing through forest barriers
+ ///
+ public bool PassingThroughForest { get; set; } = false;
+
+ ///
+ /// Resources willing to spend for speed increases
+ ///
+ public Dictionary SpeedResourceBudget { get; set; } = new();
+
+ ///
+ /// Additional speed modification parameters
+ ///
+ public Dictionary SpeedParameters { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/OptimalRoutesResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/OptimalRoutesResponseDto.cs
new file mode 100644
index 0000000..b18e4cf
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/OptimalRoutesResponseDto.cs
@@ -0,0 +1,76 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\OptimalRoutesResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for optimal route calculations and pathfinding
+ * Last Edit Notes: Individual file implementation for route optimization data
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for optimal route calculations and pathfinding
+ ///
+ public class OptimalRoutesResponseDto
+ {
+ ///
+ /// Player ID requesting route optimization
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Starting coordinates for the route
+ ///
+ public Dictionary StartCoordinates { get; set; } = new();
+
+ ///
+ /// Destination coordinates for the route
+ ///
+ public Dictionary DestinationCoordinates { get; set; } = new();
+
+ ///
+ /// Primary optimal route with waypoints
+ ///
+ public Dictionary PrimaryRoute { get; set; } = new();
+
+ ///
+ /// Alternative routes with different trade-offs
+ ///
+ public List> AlternativeRoutes { get; set; } = new();
+
+ ///
+ /// Route analysis including distance, time, and safety
+ ///
+ public Dictionary RouteAnalysis { get; set; } = new();
+
+ ///
+ /// Terrain effects and movement modifiers
+ ///
+ public Dictionary TerrainEffects { get; set; } = new();
+
+ ///
+ /// Forest barrier impacts and speed reductions
+ ///
+ public Dictionary ForestBarrierEffects { get; set; } = new();
+
+ ///
+ /// Stealth route options vs premium convenience routes
+ ///
+ public Dictionary StealthRouteOptions { get; set; } = new();
+
+ ///
+ /// Resource costs for different route choices
+ ///
+ public Dictionary> RouteCosts { get; set; } = new();
+
+ ///
+ /// When route calculations were performed
+ ///
+ public DateTime CalculationTime { get; set; }
+
+ ///
+ /// Additional pathfinding and optimization data
+ ///
+ public Dictionary OptimizationData { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/RewardDistributionRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/RewardDistributionRequestDto.cs
new file mode 100644
index 0000000..19e2b2b
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/RewardDistributionRequestDto.cs
@@ -0,0 +1,85 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\RewardDistributionRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for combat reward distribution
+ * Last Edit Notes: Individual file implementation for reward distribution input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Request DTO for combat reward distribution
+ ///
+ public class RewardDistributionRequestDto
+ {
+ ///
+ /// Combat log ID for reward calculation
+ ///
+ [Required]
+ [Range(1, int.MaxValue)]
+ public int CombatLogId { get; set; }
+
+ ///
+ /// Player ID to calculate rewards for
+ ///
+ [Required]
+ [Range(1, int.MaxValue)]
+ public int PlayerId { get; set; }
+
+ ///
+ /// Battle outcome achieved
+ ///
+ [Required]
+ [StringLength(50)]
+ public string BattleOutcome { get; set; } = string.Empty;
+
+ ///
+ /// Player's performance metrics in battle
+ ///
+ [Required]
+ public Dictionary PerformanceMetrics { get; set; } = new();
+
+ ///
+ /// Whether to apply VIP reward bonuses
+ ///
+ public bool ApplyVipBonuses { get; set; } = true;
+
+ ///
+ /// Whether to apply alliance reward bonuses
+ ///
+ public bool ApplyAllianceBonuses { get; set; } = true;
+
+ ///
+ /// Dragon participation bonuses to include
+ ///
+ public Dictionary DragonBonuses { get; set; } = new();
+
+ ///
+ /// Equipment reward bonuses active
+ ///
+ public Dictionary EquipmentBonuses { get; set; } = new();
+
+ ///
+ /// Event or seasonal multipliers to apply
+ ///
+ public Dictionary EventMultipliers { get; set; } = new();
+
+ ///
+ /// Maximum reward caps if applicable
+ ///
+ public Dictionary? RewardCaps { get; set; }
+
+ ///
+ /// Whether this is part of a KvK event
+ ///
+ public bool IsKvKEvent { get; set; } = false;
+
+ ///
+ /// Additional reward calculation parameters
+ ///
+ public Dictionary RewardParameters { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/RewardDistributionResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/RewardDistributionResponseDto.cs
new file mode 100644
index 0000000..88b1df5
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/RewardDistributionResponseDto.cs
@@ -0,0 +1,86 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\RewardDistributionResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for combat reward distribution
+ * Last Edit Notes: Individual file implementation for reward distribution results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Response DTO for combat reward distribution
+ ///
+ public class RewardDistributionResponseDto
+ {
+ ///
+ /// Combat log ID for the reward distribution
+ ///
+ public int CombatLogId { get; set; }
+
+ ///
+ /// Player ID receiving rewards
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Battle outcome that determined rewards
+ ///
+ public string BattleOutcome { get; set; } = string.Empty;
+
+ ///
+ /// Resources gained from victory
+ ///
+ public Dictionary ResourceRewards { get; set; } = new();
+
+ ///
+ /// Experience points earned
+ ///
+ public long ExperienceReward { get; set; }
+
+ ///
+ /// Items and equipment obtained
+ ///
+ public List> ItemRewards { get; set; } = new();
+
+ ///
+ /// Dragon experience and skill progression
+ ///
+ public Dictionary DragonRewards { get; set; } = new();
+
+ ///
+ /// Alliance contribution bonuses
+ ///
+ public Dictionary AllianceRewards { get; set; } = new();
+
+ ///
+ /// Achievement progress and unlocks
+ ///
+ public List> AchievementProgress { get; set; } = new();
+
+ ///
+ /// Ranking and reputation changes
+ ///
+ public Dictionary RankingChanges { get; set; } = new();
+
+ ///
+ /// VIP points earned from combat
+ ///
+ public long VipPointsEarned { get; set; }
+
+ ///
+ /// Bonus multipliers applied to rewards
+ ///
+ public Dictionary RewardMultipliers { get; set; } = new();
+
+ ///
+ /// When rewards were distributed
+ ///
+ public DateTime DistributionTime { get; set; }
+
+ ///
+ /// Additional reward distribution data
+ ///
+ public Dictionary RewardMetadata { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/RouteOptimizationRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/RouteOptimizationRequestDto.cs
new file mode 100644
index 0000000..858ea9f
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Combat/RouteOptimizationRequestDto.cs
@@ -0,0 +1,75 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\RouteOptimizationRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for route optimization and pathfinding
+ * Last Edit Notes: Individual file implementation for route optimization input
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Combat
+{
+ ///
+ /// Request DTO for route optimization and pathfinding
+ ///
+ public class RouteOptimizationRequestDto
+ {
+ ///
+ /// Starting coordinates for route calculation
+ ///
+ [Required]
+ public Dictionary StartCoordinates { get; set; } = new();
+
+ ///
+ /// Destination coordinates for route calculation
+ ///
+ [Required]
+ public Dictionary DestinationCoordinates { get; set; } = new();
+
+ ///
+ /// Army composition affecting movement speed
+ ///
+ [Required]
+ public Dictionary ArmyComposition { get; set; } = new();
+
+ ///
+ /// Route optimization priority (Speed, Stealth, Safety, Cost)
+ ///
+ [Required]
+ [StringLength(50)]
+ public string OptimizationPriority { get; set; } = "Speed";
+
+ ///
+ /// Whether to include stealth route options
+ ///
+ public bool IncludeStealthRoutes { get; set; } = true;
+
+ ///
+ /// Maximum acceptable route distance multiplier
+ ///
+ [Range(1.0, 3.0)]
+ public decimal MaxDistanceMultiplier { get; set; } = 1.5m;
+
+ ///
+ /// Whether to avoid forest barriers if possible
+ ///
+ public bool AvoidForestBarriers { get; set; } = false;
+
+ ///
+ /// Number of alternative routes to calculate
+ ///
+ [Range(1, 5)]
+ public int AlternativeRoutesCount { get; set; } = 2;
+
+ ///
+ /// Whether player has premium route planning features
+ ///
+ public bool HasPremiumRouting { get; set; } = false;
+
+ ///
+ /// Additional optimization preferences
+ ///
+ public Dictionary OptimizationPreferences { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/AchievementsResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/AchievementsResponseDto.cs
new file mode 100644
index 0000000..a936a76
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/AchievementsResponseDto.cs
@@ -0,0 +1,76 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\AchievementsResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for player achievements and milestones
+ * Last Edit Notes: Individual file implementation for achievements data
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Response DTO for player achievements and milestones
+ ///
+ public class AchievementsResponseDto
+ {
+ ///
+ /// Player ID for the achievements
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Recently unlocked achievements
+ ///
+ public List> RecentAchievements { get; set; } = new();
+
+ ///
+ /// All completed achievements
+ ///
+ public List> CompletedAchievements { get; set; } = new();
+
+ ///
+ /// Achievements currently in progress
+ ///
+ public List> InProgressAchievements { get; set; } = new();
+
+ ///
+ /// Achievement categories and completion status
+ ///
+ public Dictionary CategoryProgress { get; set; } = new();
+
+ ///
+ /// Total achievement points earned
+ ///
+ public long TotalAchievementPoints { get; set; }
+
+ ///
+ /// Rewards available for collection
+ ///
+ public List> PendingRewards { get; set; } = new();
+
+ ///
+ /// Achievement-based titles available
+ ///
+ public List> AvailableTitles { get; set; } = new();
+
+ ///
+ /// Player's current selected title
+ ///
+ public Dictionary? CurrentTitle { get; set; }
+
+ ///
+ /// Achievement leaderboard position
+ ///
+ public int? LeaderboardRank { get; set; }
+
+ ///
+ /// When achievements were last updated
+ ///
+ public DateTime LastUpdated { get; set; }
+
+ ///
+ /// Additional achievement system data
+ ///
+ public Dictionary AchievementSystemData { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ActionValidationRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ActionValidationRequestDto.cs
new file mode 100644
index 0000000..17f63b5
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ActionValidationRequestDto.cs
@@ -0,0 +1,56 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\ActionValidationRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for player action validation
+ * Last Edit Notes: Individual file implementation for action validation input
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Request DTO for player action validation
+ ///
+ public class ActionValidationRequestDto
+ {
+ ///
+ /// Type of action to validate
+ ///
+ [Required]
+ [StringLength(100)]
+ public string ActionType { get; set; } = string.Empty;
+
+ ///
+ /// Target of the action (player ID, building ID, etc.)
+ ///
+ [Range(1, int.MaxValue)]
+ public int? TargetId { get; set; }
+
+ ///
+ /// Parameters specific to the action being validated
+ ///
+ public Dictionary ActionParameters { get; set; } = new();
+
+ ///
+ /// Whether to include detailed validation information
+ ///
+ public bool IncludeDetailedInfo { get; set; } = false;
+
+ ///
+ /// Whether to validate anti-pay-to-win balance
+ ///
+ public bool ValidateBalance { get; set; } = true;
+
+ ///
+ /// Whether to check for skill-based alternatives
+ ///
+ public bool CheckSkillAlternatives { get; set; } = true;
+
+ ///
+ /// Additional validation preferences
+ ///
+ public Dictionary ValidationPreferences { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ActionValidationResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ActionValidationResponseDto.cs
new file mode 100644
index 0000000..94fcd8f
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ActionValidationResponseDto.cs
@@ -0,0 +1,76 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\ActionValidationResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for player action validation results
+ * Last Edit Notes: Individual file implementation for action validation data
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Response DTO for player action validation results
+ ///
+ public class ActionValidationResponseDto
+ {
+ ///
+ /// Player ID who requested the action
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Action that was validated
+ ///
+ public string ActionType { get; set; } = string.Empty;
+
+ ///
+ /// Whether the action is valid and can be performed
+ ///
+ public bool IsValid { get; set; }
+
+ ///
+ /// Validation errors if action is not valid
+ ///
+ public List ValidationErrors { get; set; } = new();
+
+ ///
+ /// Requirements that must be met for the action
+ ///
+ public Dictionary Requirements { get; set; } = new();
+
+ ///
+ /// Player's current status against requirements
+ ///
+ public Dictionary PlayerStatus { get; set; } = new();
+
+ ///
+ /// Costs associated with performing the action
+ ///
+ public Dictionary ActionCosts { get; set; } = new();
+
+ ///
+ /// Expected benefits from performing the action
+ ///
+ public Dictionary ExpectedBenefits { get; set; } = new();
+
+ ///
+ /// Cooldown information if applicable
+ ///
+ public Dictionary? CooldownInfo { get; set; }
+
+ ///
+ /// Anti-pay-to-win validation results
+ ///
+ public Dictionary BalanceValidation { get; set; } = new();
+
+ ///
+ /// When validation was performed
+ ///
+ public DateTime ValidationTime { get; set; }
+
+ ///
+ /// Additional validation metadata
+ ///
+ public Dictionary ValidationMetadata { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/AllianceJoinResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/AllianceJoinResponseDto.cs
new file mode 100644
index 0000000..9809ff7
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/AllianceJoinResponseDto.cs
@@ -0,0 +1,71 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\AllianceJoinResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for alliance join operations
+ * Last Edit Notes: Individual file implementation for alliance join results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Response DTO for alliance join operations
+ ///
+ public class AllianceJoinResponseDto
+ {
+ ///
+ /// Player ID who attempted to join
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Alliance ID that was joined or applied to
+ ///
+ public int AllianceId { get; set; }
+
+ ///
+ /// Alliance name for reference
+ ///
+ public string AllianceName { get; set; } = string.Empty;
+
+ ///
+ /// Whether the join operation was successful
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// Current status of membership (Accepted, Pending, Rejected)
+ ///
+ public string MembershipStatus { get; set; } = string.Empty;
+
+ ///
+ /// Role assigned within the alliance
+ ///
+ public string? AssignedRole { get; set; }
+
+ ///
+ /// Alliance benefits immediately available to player
+ ///
+ public Dictionary AllianceBenefits { get; set; } = new();
+
+ ///
+ /// Research bonuses now accessible
+ ///
+ public Dictionary ResearchBonuses { get; set; } = new();
+
+ ///
+ /// Message from alliance leadership if applicable
+ ///
+ public string? WelcomeMessage { get; set; }
+
+ ///
+ /// When the join operation was processed
+ ///
+ public DateTime JoinTime { get; set; }
+
+ ///
+ /// Additional alliance integration data
+ ///
+ public Dictionary IntegrationData { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/AllianceLeaveRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/AllianceLeaveRequestDto.cs
new file mode 100644
index 0000000..00240b2
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/AllianceLeaveRequestDto.cs
@@ -0,0 +1,56 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\AllianceLeaveRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for alliance leave operations
+ * Last Edit Notes: Individual file implementation for alliance leave input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Request DTO for alliance leave operations
+ ///
+ public class AllianceLeaveRequestDto
+ {
+ ///
+ /// Reason for leaving the alliance
+ ///
+ [StringLength(500)]
+ public string? LeaveReason { get; set; }
+
+ ///
+ /// Whether this is an immediate leave or scheduled
+ ///
+ public bool ImmediateLeave { get; set; } = true;
+
+ ///
+ /// Scheduled leave time if not immediate
+ ///
+ public DateTime? ScheduledLeaveTime { get; set; }
+
+ ///
+ /// Whether to forfeit leadership roles immediately
+ ///
+ public bool ForfeitLeadership { get; set; } = true;
+
+ ///
+ /// Transfer leadership to specific player ID (for leaders)
+ ///
+ [Range(1, int.MaxValue)]
+ public int? TransferLeadershipTo { get; set; }
+
+ ///
+ /// Message to leave for alliance members
+ ///
+ [StringLength(500)]
+ public string? FarewellMessage { get; set; }
+
+ ///
+ /// Additional leave preferences
+ ///
+ public Dictionary LeavePreferences { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/AllianceLeaveResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/AllianceLeaveResponseDto.cs
new file mode 100644
index 0000000..1e3fccb
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/AllianceLeaveResponseDto.cs
@@ -0,0 +1,71 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\AllianceLeaveResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for alliance leave operations
+ * Last Edit Notes: Individual file implementation for alliance leave results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Response DTO for alliance leave operations
+ ///
+ public class AllianceLeaveResponseDto
+ {
+ ///
+ /// Player ID who left the alliance
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Former alliance ID
+ ///
+ public int FormerAllianceId { get; set; }
+
+ ///
+ /// Former alliance name for reference
+ ///
+ public string FormerAllianceName { get; set; } = string.Empty;
+
+ ///
+ /// Whether the leave operation was successful
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// Reason for leaving (Voluntary, Kicked, AllianceDisbanded)
+ ///
+ public string LeaveReason { get; set; } = string.Empty;
+
+ ///
+ /// Alliance benefits that were lost
+ ///
+ public Dictionary BenefitsLost { get; set; } = new();
+
+ ///
+ /// Research bonuses no longer available
+ ///
+ public Dictionary ResearchBonusesLost { get; set; } = new();
+
+ ///
+ /// Coalition memberships that were affected
+ ///
+ public List> CoalitionChanges { get; set; } = new();
+
+ ///
+ /// Cooldown period before joining another alliance
+ ///
+ public TimeSpan? JoinCooldown { get; set; }
+
+ ///
+ /// When the leave operation was processed
+ ///
+ public DateTime LeaveTime { get; set; }
+
+ ///
+ /// Additional separation data and consequences
+ ///
+ public Dictionary SeparationData { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/CastleInfoResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/CastleInfoResponseDto.cs
new file mode 100644
index 0000000..873d69a
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/CastleInfoResponseDto.cs
@@ -0,0 +1,61 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\CastleInfoResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for castle information and status
+ * Last Edit Notes: Individual file implementation for castle information data
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Response DTO for castle information and status
+ ///
+ public class CastleInfoResponseDto
+ {
+ ///
+ /// Player ID who owns the castle
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Current castle level
+ ///
+ public int CastleLevel { get; set; }
+
+ ///
+ /// Castle coordinates and location
+ ///
+ public Dictionary Location { get; set; } = new();
+
+ ///
+ /// Current castle defenses and walls
+ ///
+ public Dictionary DefenseStatus { get; set; } = new();
+
+ ///
+ /// Resource production buildings and rates
+ ///
+ public Dictionary ProductionBuildings { get; set; } = new();
+
+ ///
+ /// Military buildings and capacity
+ ///
+ public Dictionary MilitaryBuildings { get; set; } = new();
+
+ ///
+ /// Current troop counts stationed at castle
+ ///
+ public Dictionary StationedTroops { get; set; } = new();
+
+ ///
+ /// Available upgrade options
+ ///
+ public List> UpgradeOptions { get; set; } = new();
+
+ ///
+ /// When castle information was last updated
+ ///
+ public DateTime LastUpdated { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/CombatResultsRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/CombatResultsRequestDto.cs
new file mode 100644
index 0000000..cc5d564
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/CombatResultsRequestDto.cs
@@ -0,0 +1,67 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\CombatResultsRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for querying combat results
+ * Last Edit Notes: Individual file implementation for combat results query parameters
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Request DTO for querying combat results
+ ///
+ public class CombatResultsRequestDto
+ {
+ ///
+ /// Specific combat log ID to retrieve (optional)
+ ///
+ [Range(1, int.MaxValue)]
+ public int? CombatLogId { get; set; }
+
+ ///
+ /// Filter by battle outcome
+ ///
+ [StringLength(50)]
+ public string? OutcomeFilter { get; set; }
+
+ ///
+ /// Filter by player role in battles
+ ///
+ [StringLength(50)]
+ public string? RoleFilter { get; set; }
+
+ ///
+ /// Start date for battle history query
+ ///
+ public DateTime? StartDate { get; set; }
+
+ ///
+ /// End date for battle history query
+ ///
+ public DateTime? EndDate { get; set; }
+
+ ///
+ /// Maximum number of results to return
+ ///
+ [Range(1, 100)]
+ public int MaxResults { get; set; } = 20;
+
+ ///
+ /// Whether to include detailed battle statistics
+ ///
+ public bool IncludeDetailedStats { get; set; } = false;
+
+ ///
+ /// Whether to include dragon participation data
+ ///
+ public bool IncludeDragonData { get; set; } = false;
+
+ ///
+ /// Additional query parameters
+ ///
+ public Dictionary QueryParameters { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/CombatResultsResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/CombatResultsResponseDto.cs
new file mode 100644
index 0000000..60c9822
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/CombatResultsResponseDto.cs
@@ -0,0 +1,81 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\CombatResultsResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for combat results and battle outcomes
+ * Last Edit Notes: Individual file implementation for combat results data
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Response DTO for combat results and battle outcomes
+ ///
+ public class CombatResultsResponseDto
+ {
+ ///
+ /// Player ID who participated in combat
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Combat log ID for reference
+ ///
+ public int CombatLogId { get; set; }
+
+ ///
+ /// Battle outcome (Victory, Defeat, Draw)
+ ///
+ public string BattleOutcome { get; set; } = string.Empty;
+
+ ///
+ /// Player's role in the battle (Attacker, Defender, Reinforcement)
+ ///
+ public string PlayerRole { get; set; } = string.Empty;
+
+ ///
+ /// Troops lost in the battle by type
+ ///
+ public Dictionary TroopsLost { get; set; } = new();
+
+ ///
+ /// Troops surviving after battle by type
+ ///
+ public Dictionary TroopsSurvived { get; set; } = new();
+
+ ///
+ /// Resources gained from victory
+ ///
+ public Dictionary ResourcesGained { get; set; } = new();
+
+ ///
+ /// Resources lost from defeat
+ ///
+ public Dictionary ResourcesLost { get; set; } = new();
+
+ ///
+ /// Experience points earned from combat
+ ///
+ public long ExperienceGained { get; set; }
+
+ ///
+ /// Dragon participation and bonuses
+ ///
+ public Dictionary DragonResults { get; set; } = new();
+
+ ///
+ /// Field interception details if applicable
+ ///
+ public Dictionary? InterceptionDetails { get; set; }
+
+ ///
+ /// When the battle concluded
+ ///
+ public DateTime BattleTime { get; set; }
+
+ ///
+ /// Additional battle statistics and analytics
+ ///
+ public Dictionary BattleStatistics { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ExperienceProcessingResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ExperienceProcessingResponseDto.cs
new file mode 100644
index 0000000..a1b16a3
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ExperienceProcessingResponseDto.cs
@@ -0,0 +1,81 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\ExperienceProcessingResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for experience processing operations
+ * Last Edit Notes: Individual file implementation for experience processing results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Response DTO for experience processing operations
+ ///
+ public class ExperienceProcessingResponseDto
+ {
+ ///
+ /// Player ID who gained experience
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Experience points gained in this processing
+ ///
+ public long ExperienceGained { get; set; }
+
+ ///
+ /// Previous player level
+ ///
+ public int PreviousLevel { get; set; }
+
+ ///
+ /// New player level after processing
+ ///
+ public int NewLevel { get; set; }
+
+ ///
+ /// Whether the player leveled up
+ ///
+ public bool LeveledUp { get; set; }
+
+ ///
+ /// Current experience points total
+ ///
+ public long TotalExperience { get; set; }
+
+ ///
+ /// Experience needed for next level
+ ///
+ public long ExperienceToNextLevel { get; set; }
+
+ ///
+ /// Bonuses and rewards received from leveling up
+ ///
+ public Dictionary LevelUpRewards { get; set; } = new();
+
+ ///
+ /// New abilities or features unlocked
+ ///
+ public List> UnlockedFeatures { get; set; } = new();
+
+ ///
+ /// Experience multipliers that were applied
+ ///
+ public Dictionary ExperienceMultipliers { get; set; } = new();
+
+ ///
+ /// Source of the experience gain
+ ///
+ public string ExperienceSource { get; set; } = string.Empty;
+
+ ///
+ /// When experience was processed
+ ///
+ public DateTime ProcessingTime { get; set; }
+
+ ///
+ /// Additional progression data
+ ///
+ public Dictionary ProgressionData { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/PlayerRankingsResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/PlayerRankingsResponseDto.cs
new file mode 100644
index 0000000..1e34ffd
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/PlayerRankingsResponseDto.cs
@@ -0,0 +1,56 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\PlayerRankingsResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for player rankings and leaderboard data
+ * Last Edit Notes: Individual file implementation for player rankings results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Response DTO for player rankings and leaderboard data
+ ///
+ public class PlayerRankingsResponseDto
+ {
+ ///
+ /// Player ID for the rankings
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Player's current overall rank
+ ///
+ public int OverallRank { get; set; }
+
+ ///
+ /// Player's rank within their kingdom
+ ///
+ public int KingdomRank { get; set; }
+
+ ///
+ /// Player's rank within their alliance
+ ///
+ public int? AllianceRank { get; set; }
+
+ ///
+ /// Rankings across different categories
+ ///
+ public Dictionary CategoryRankings { get; set; } = new();
+
+ ///
+ /// Player's power score
+ ///
+ public long PowerScore { get; set; }
+
+ ///
+ /// Leaderboard context and metadata
+ ///
+ public Dictionary LeaderboardContext { get; set; } = new();
+
+ ///
+ /// When rankings were last calculated
+ ///
+ public DateTime CalculationTime { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ResourceCollectionResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ResourceCollectionResponseDto.cs
new file mode 100644
index 0000000..ee407a1
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ResourceCollectionResponseDto.cs
@@ -0,0 +1,61 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\ResourceCollectionResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for resource collection operations
+ * Last Edit Notes: Individual file implementation for resource collection results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Response DTO for resource collection operations
+ ///
+ public class ResourceCollectionResponseDto
+ {
+ ///
+ /// Player ID who collected resources
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Resources collected by type
+ ///
+ public Dictionary ResourcesCollected { get; set; } = new();
+
+ ///
+ /// Current resource balances after collection
+ ///
+ public Dictionary CurrentBalances { get; set; } = new();
+
+ ///
+ /// Production rates and efficiency bonuses applied
+ ///
+ public Dictionary ProductionRates { get; set; } = new();
+
+ ///
+ /// VIP bonuses that were applied to collection
+ ///
+ public Dictionary VipBonuses { get; set; } = new();
+
+ ///
+ /// Alliance bonuses that were applied
+ ///
+ public Dictionary AllianceBonuses { get; set; } = new();
+
+ ///
+ /// Whether collection was successful
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// When resources were collected
+ ///
+ public DateTime CollectionTime { get; set; }
+
+ ///
+ /// Next available collection time
+ ///
+ public DateTime? NextCollectionTime { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ResourceSpendingRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ResourceSpendingRequestDto.cs
new file mode 100644
index 0000000..2c5ef5f
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ResourceSpendingRequestDto.cs
@@ -0,0 +1,59 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\ResourceSpendingRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for resource spending operations
+ * Last Edit Notes: Individual file implementation for resource spending input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Request DTO for resource spending operations
+ ///
+ public class ResourceSpendingRequestDto
+ {
+ ///
+ /// Resources to spend by type
+ ///
+ [Required]
+ public Dictionary ResourcesToSpend { get; set; } = new();
+
+ ///
+ /// Purpose or category of the spending
+ ///
+ [Required]
+ [StringLength(100)]
+ public string SpendingCategory { get; set; } = string.Empty;
+
+ ///
+ /// Specific item or upgrade being purchased
+ ///
+ [Required]
+ [StringLength(100)]
+ public string TargetItem { get; set; } = string.Empty;
+
+ ///
+ /// Whether to apply VIP cost reduction bonuses
+ ///
+ public bool ApplyVipBonuses { get; set; } = true;
+
+ ///
+ /// Whether to apply alliance cost reduction bonuses
+ ///
+ public bool ApplyAllianceBonuses { get; set; } = true;
+
+ ///
+ /// Priority level for the spending operation
+ ///
+ [Range(1, 5)]
+ public int Priority { get; set; } = 3;
+
+ ///
+ /// Additional spending parameters
+ ///
+ public Dictionary SpendingParameters { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ResourceSpendingResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ResourceSpendingResponseDto.cs
new file mode 100644
index 0000000..415a2ed
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/ResourceSpendingResponseDto.cs
@@ -0,0 +1,66 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\ResourceSpendingResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for resource spending operations
+ * Last Edit Notes: Individual file implementation for resource spending results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Response DTO for resource spending operations
+ ///
+ public class ResourceSpendingResponseDto
+ {
+ ///
+ /// Player ID who spent resources
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Resources spent by type
+ ///
+ public Dictionary ResourcesSpent { get; set; } = new();
+
+ ///
+ /// Current resource balances after spending
+ ///
+ public Dictionary RemainingBalances { get; set; } = new();
+
+ ///
+ /// Purpose or category of the spending
+ ///
+ public string SpendingCategory { get; set; } = string.Empty;
+
+ ///
+ /// Benefits or items received from spending
+ ///
+ public Dictionary ItemsReceived { get; set; } = new();
+
+ ///
+ /// Cost reduction bonuses that were applied
+ ///
+ public Dictionary CostReductions { get; set; } = new();
+
+ ///
+ /// Whether spending was successful
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// Transaction ID for tracking
+ ///
+ public string TransactionId { get; set; } = string.Empty;
+
+ ///
+ /// When resources were spent
+ ///
+ public DateTime SpendingTime { get; set; }
+
+ ///
+ /// Additional spending analytics data
+ ///
+ public Dictionary SpendingAnalytics { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/UpdatePlayerProfileRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/UpdatePlayerProfileRequestDto.cs
new file mode 100644
index 0000000..13405ce
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/UpdatePlayerProfileRequestDto.cs
@@ -0,0 +1,52 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\UpdatePlayerProfileRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for player profile update operations
+ * Last Edit Notes: Individual file implementation for player profile update input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Request DTO for player profile update operations
+ ///
+ public class UpdatePlayerProfileRequestDto
+ {
+ ///
+ /// New display name for the player
+ ///
+ [StringLength(50)]
+ public string? DisplayName { get; set; }
+
+ ///
+ /// Avatar image identifier
+ ///
+ [StringLength(100)]
+ public string? AvatarId { get; set; }
+
+ ///
+ /// Player description or bio
+ ///
+ [StringLength(500)]
+ public string? Description { get; set; }
+
+ ///
+ /// Language preference for the player
+ ///
+ [StringLength(10)]
+ public string? LanguagePreference { get; set; }
+
+ ///
+ /// Notification preferences
+ ///
+ public Dictionary NotificationSettings { get; set; } = new();
+
+ ///
+ /// Privacy settings for profile visibility
+ ///
+ public Dictionary PrivacySettings { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/VipAdvancementRequestDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/VipAdvancementRequestDto.cs
new file mode 100644
index 0000000..d4d5da6
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/VipAdvancementRequestDto.cs
@@ -0,0 +1,52 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\VipAdvancementRequestDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Request DTO for VIP advancement operations
+ * Last Edit Notes: Individual file implementation for VIP advancement input validation
+ */
+
+using System.ComponentModel.DataAnnotations;
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Request DTO for VIP advancement operations
+ ///
+ public class VipAdvancementRequestDto
+ {
+ ///
+ /// Target VIP level to advance to
+ ///
+ [Required]
+ [Range(1, 20)]
+ public int TargetVipLevel { get; set; }
+
+ ///
+ /// Whether to use accumulated VIP points
+ ///
+ public bool UseVipPoints { get; set; } = true;
+
+ ///
+ /// Whether to purchase additional points if needed
+ ///
+ public bool AllowPurchase { get; set; } = false;
+
+ ///
+ /// Maximum amount willing to spend on advancement
+ ///
+ [Range(0, 10000)]
+ public decimal MaxSpendAmount { get; set; } = 0;
+
+ ///
+ /// Preferred payment method if purchase is needed
+ ///
+ [StringLength(50)]
+ public string? PreferredPaymentMethod { get; set; }
+
+ ///
+ /// Additional advancement preferences
+ ///
+ public Dictionary AdvancementPreferences { get; set; } = new();
+ }
+}
\ No newline at end of file
diff --git a/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/VipAdvancementResponseDto.cs b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/VipAdvancementResponseDto.cs
new file mode 100644
index 0000000..010530d
--- /dev/null
+++ b/ShadowedRealmsMobile/src/server/ShadowedRealms.Shared/DTOs/Player/VipAdvancementResponseDto.cs
@@ -0,0 +1,66 @@
+/*
+ * File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Player\VipAdvancementResponseDto.cs
+ * Created: 2025-10-23
+ * Last Modified: 2025-10-23
+ * Description: Response DTO for VIP advancement operations
+ * Last Edit Notes: Individual file implementation for VIP advancement results
+ */
+
+namespace ShadowedRealms.Shared.DTOs.Player
+{
+ ///
+ /// Response DTO for VIP advancement operations
+ ///
+ public class VipAdvancementResponseDto
+ {
+ ///
+ /// Player ID who advanced VIP status
+ ///
+ public int PlayerId { get; set; }
+
+ ///
+ /// Previous VIP level
+ ///
+ public int PreviousVipLevel { get; set; }
+
+ ///
+ /// New VIP level after advancement
+ ///
+ public int NewVipLevel { get; set; }
+
+ ///
+ /// VIP benefits unlocked with this advancement
+ ///
+ public List> NewBenefits { get; set; } = new();
+
+ ///
+ /// VIP points earned or consumed
+ ///
+ public long VipPointsChanged { get; set; }
+
+ ///
+ /// Current VIP point balance
+ ///
+ public long CurrentVipPoints { get; set; }
+
+ ///
+ /// Points needed for next VIP level
+ ///
+ public long? PointsToNextLevel { get; set; }
+
+ ///
+ /// Whether advancement was successful
+ ///
+ public bool Success { get; set; }
+
+ ///
+ /// When VIP advancement occurred
+ ///
+ public DateTime AdvancementTime { get; set; }
+
+ ///
+ /// Additional VIP progression data
+ ///
+ public Dictionary VipProgressionData { get; set; } = new();
+ }
+}
\ No newline at end of file