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