using System.ComponentModel.DataAnnotations;
using Managing.Domain.Bots;
using Managing.Domain.MoneyManagements;

namespace Managing.Api.Models.Requests;

/// <summary>
/// Request model for updating bot configuration
/// </summary>
public class UpdateBotConfigRequest
{
    /// <summary>
    /// The unique identifier of the bot to update
    /// </summary>
    [Required]
    public Guid Identifier { get; set; }

    /// <summary>
    /// The new trading bot configuration request
    /// </summary>
    [Required]
    public TradingBotConfigRequest Config { get; set; }

    /// <summary>
    /// Optional: Money management name to load from database (if MoneyManagement object is not provided)
    /// </summary>
    public string? MoneyManagementName { get; set; }

    /// <summary>
    /// Optional: Money management object for custom configurations (takes precedence over MoneyManagementName)
    /// </summary>
    public MoneyManagement? MoneyManagement { get; set; }
} 