- 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.
52 lines
1.5 KiB
C#
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; }
|
|
}
|
|
} |