matt 3459d449ce Complete DTO Layer Implementation - Fix Controller Compilation
- Created 37 individual DTO classes across all domains
- Common DTOs: ErrorResponseDto, SuccessResponseDto for consistent API responses
- Player DTOs: 10 classes for profile, castle, VIP, teleportation, resources, combat prep
- Combat DTOs: 11 classes for field interception system, marches, battles, analytics
- Alliance DTOs: 3 classes for status, coalitions, research advancement
- Kingdom DTOs: 4 classes for status, KvK events, voting, tax distribution
- Purchase DTOs: 6 classes for validation, processing, balance monitoring, fraud detection

All DTOs include proper validation attributes, comprehensive XML documentation,
and support for core innovations (field interception, anti-pay-to-win, coalitions).

Controllers should now compile successfully - ready for compilation testing.
2025-10-19 20:46:41 -05:00

52 lines
1.5 KiB
C#

/*
* File: D:\shadowed-realms-mobile\ShadowedRealmsMobile\src\server\ShadowedRealms.Shared\DTOs\Combat\MarchInitiationRequestDto.cs
* Created: 2025-10-19
* Last Modified: 2025-10-19
* Description: Request DTO for march initiation
* Last Edit Notes: Individual file implementation for march initiation input validation
*/
using System.ComponentModel.DataAnnotations;
namespace ShadowedRealms.Shared.DTOs.Combat
{
/// <summary>
/// Request DTO for march initiation
/// </summary>
public class MarchInitiationRequestDto
{
/// <summary>
/// Target destination coordinates
/// </summary>
[Required]
public (int X, int Y) Destination { get; set; }
/// <summary>
/// Troops being marched
/// </summary>
[Required]
public Dictionary<string, int> Troops { get; set; } = new();
/// <summary>
/// March type (Attack, Rally, Reinforce, etc.)
/// </summary>
[Required]
[StringLength(50)]
public string MarchType { get; set; } = string.Empty;
/// <summary>
/// Dragon accompanying the march
/// </summary>
public Dictionary<string, object>? DragonDetails { get; set; }
/// <summary>
/// March priority and speed preferences
/// </summary>
public Dictionary<string, object>? MarchPreferences { get; set; }
/// <summary>
/// Target player ID (for attacks)
/// </summary>
public int? TargetPlayerId { get; set; }
}
}