using System.ComponentModel.DataAnnotations;
using Managing.Common;
using Orleans;
using Skender.Stock.Indicators;

namespace Managing.Domain.Candles
{
    [GenerateSerializer]
    public class Candle : IQuote
    {
        [Id(0)]
        [Required] public Enums.TradingExchanges Exchange { get; set; }
        
        [Id(1)]
        [Required] public string Ticker { get; set; }
        
        [Id(2)]
        [Required] public DateTime OpenTime { get; set; }
        
        [Id(3)]
        [Required] public DateTime Date { get; set; }
        
        [Id(4)]
        [Required] public decimal Open { get; set; }
        
        [Id(5)]
        [Required] public decimal Close { get; set; }
        
        [Id(6)]
        [Required] public decimal High { get; set; }
        
        [Id(7)]
        [Required] public decimal Low { get; set; }
        
        [Id(8)]
        [Required] public Enums.Timeframe Timeframe { get; set; }
        
        [Id(9)]
        public decimal Volume { get; set; }
    }
}