using System.ComponentModel.DataAnnotations;
using static Managing.Common.Enums;

namespace Managing.Api.Models.Requests
{
    public class StartBotRequest
    {
        [Required] public BotType BotType { get; set; }
        [Required] public string BotName { get; set; }
        [Required] public Ticker Ticker { get; set; }
        [Required] public Timeframe Timeframe { get; set; }
        [Required] public bool IsForWatchOnly { get; set; }
        [Required] public string Scenario { get; set; }
        [Required] public string AccountName { get; set; }
        [Required] public string MoneyManagementName { get; set; }

        /// <summary>
        /// Initial trading balance in USD for the bot
        /// </summary>
        [Required]
        [Range(10.00, double.MaxValue, ErrorMessage = "Initial trading balance must be greater than ten")]
        public decimal InitialTradingBalance { get; set; }

        /// <summary>
        /// Cooldown period in minutes between trades
        /// </summary>
        [Required]
        [Range(1, 1440, ErrorMessage = "Cooldown period must be between 1 and 1440 minutes (24 hours)")]
        public decimal CooldownPeriod { get; set; } = 1; // Default to 1 minute if not specified
    }
}