/* * 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(); } }