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