using Knoks.Framework.DataAccess;
using Knoks.Framework.Extentions;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;

namespace Knoks.Core.Entities.Args
{
    public class CreateKnokArgs : IApiArgs
    {
        [JsonIgnore, AutoInitField]
        public string HttpRequestInfo { get; set; }

        [JsonIgnore, AutoInitField]
        public long UserId { get; set; }

        [JsonIgnore, AutoInitField]
        public int? OperatorId { get; set; }
        [Required]
        public string Currency1 { get; set; }
        [Required]
        public string Currency2 { get; set; }
        [NotZero(typeof(int))]
        public int ExchangeId { get; set; }
        //public int TickerId { get; set; }
        [NotZero]
        public decimal EntryPriceFrom { get; set; }
        [NotZero]
        public decimal EntryPriceTo { get; set; }
        [NotZero]
        public decimal ExitPriceFrom { get; set; }
        [NotZero]
        public decimal ExitPriceTo { get; set; }
        [NotZero]
        public decimal StopLoss { get; set; }
        [NotZero(typeof(int))]
        public int Duration { get; set; }
        [JsonIgnore]
        public decimal PotentialProfitValue { get; set; }
        [JsonIgnore]
        public PotentialProfit PotentialProfit { get; set; }
        [ProcParamIgnore]
        public KnokAnalysis Technical { get; set; }
        [ProcParamIgnore]
        public KnokAnalysis Fundamental { get; set; }
        public decimal? Rate { get; set; }
    }
}
