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

namespace Knoks.Core.Entities.Args
{
    public class KnokFeedArgs : IApiArgs
    {
        [ProcParamIgnore, JsonIgnore, AutoInitField]
        public string HttpRequestInfo { get; set; }
        [JsonIgnore, AutoInitField]
        public long UserId { get; set; }
        [ProcParamIgnore, JsonIgnore, AutoInitField]
        public int? OperatorId { get; set; }

        public bool SortOrderAsc { get; set; }
        public int SortField { get; set; }
        //public int? Raiting { get; set; }
        [ProcParamIgnore]
        public short[] Raitings { get; set; }
        public bool? KnoksersIFollow { get; set; }
        public bool? Favorites { get; set; } //The same data methods for favorite request
        public bool? ContainsTA { get; set; }
        public bool? ContainsFA { get; set; }
        public decimal? KnokPriceMax { get; set; }
        public decimal? KnokPriceMin { get; set; }
        [ProcParamIgnore]
        public bool? Published { get; set; }
        [ProcParamIgnore]
        public bool? Losing { get; set; }
        [ProcParamIgnore]
        public bool? Gaining { get; set; }
        [ProcParamIgnore]
        public int[] ExchangesIds { get; set; }
        [ProcParamIgnore]
        public string[] TradingPairs { get; set; }
        public string ExchangesIdsString {
            get {
                return this.ExchangesIds != null ? string.Join(";", this.ExchangesIds) : null;
            }
        }
        public string RatingsString
        {
            get
            {
                return this.Raitings != null ? string.Join(";", this.Raitings) : null;
            }
        }
        public string TradingPairsString
        {
            get
            {
                return this.TradingPairs != null ? string.Join(";", this.TradingPairs) : null;
            }
        }
    }
}
