using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using EQNetwork.Utility;
using EQNetwork.Aspects;

namespace EQNetwork.Objects
{
    public class ListUsersContext : PropertyChangeTracker
    {
        public enum SortOrder
        {
            Alpha,
            Recent,
        };

        // OPTIONS (all one way... sent to backend)

        /// <summary>
        /// Limit results to SearchFilters options
        /// </summary>
        [TrackPropertyChanged()]
        [SerializePropertyValuesInline()]
        public SearchFilters SearchFilters { get; set; }

        /// <summary>
        /// Limit results to include users who are following 
        /// </summary>
        [TrackPropertyChanged()]
        public bool? Following { get; set; }

        /// <summary>
        /// Limit results to include users who are blocked
        /// </summary>
        [TrackPropertyChanged()]
        public bool? Blocked { get; set; }

        /// <summary>
        /// Limit results to include users who are channel followers
        /// </summary>
        [TrackPropertyChanged()]
        public bool? IncludeChannelFollowers { get; set; }

        /// <summary>
        /// Show the inverse result set 
        /// </summary>
        [TrackPropertyChanged()]
        public bool? ShowInverse { get; set; }

        /// <summary>
        /// UserId
        /// </summary>
        [TrackPropertyChanged()]
        public int? UserId { get; set; }
    }
}
