using Managing.Domain.Candles;
using Managing.Domain.Indicators;
using Managing.Domain.Scenarios;
using Managing.Domain.Strategies.Base;
using Managing.Domain.Users;
using static Managing.Common.Enums;

namespace Managing.Domain.Strategies
{
    public class IndicatorBase : IIndicator
    {
        public IndicatorBase(string name, IndicatorType type)
        {
            Name = name;
            Type = type;
            SignalType = ScenarioHelpers.GetSignalType(type);
        }

        public string Name { get; set; }
        public IndicatorType Type { get; set; }

        public SignalType SignalType { get; set; }

        public int MinimumHistory { get; set; }

        public int? Period { get; set; }

        public int? FastPeriods { get; set; }

        public int? SlowPeriods { get; set; }

        public int? SignalPeriods { get; set; }

        public double? Multiplier { get; set; }

        public int? SmoothPeriods { get; set; }

        public int? StochPeriods { get; set; }

        public int? CyclePeriods { get; set; }

        public User User { get; set; }

        public virtual List<LightSignal> Run(HashSet<Candle> candles)
        {
            throw new NotImplementedException();
        }

        public virtual IndicatorsResultBase GetIndicatorValues(HashSet<Candle> candles)
        {
            throw new NotImplementedException();
        }
    }
}