#nullable disable
#pragma warning disable CS1591
using System;
using Jellyfin.Data.Enums;
using Jellyfin.Database.Implementations.Enums;
namespace MediaBrowser.Model.LiveTv
{
    /// 
    /// Class ChannelQuery.
    /// 
    public class LiveTvChannelQuery
    {
        public LiveTvChannelQuery()
        {
            EnableUserData = true;
            SortBy = Array.Empty();
        }
        /// 
        /// Gets or sets the type of the channel.
        /// 
        /// The type of the channel.
        public ChannelType? ChannelType { get; set; }
        /// 
        /// Gets or sets a value indicating whether this instance is favorite.
        /// 
        /// null if [is favorite] contains no value, true if [is favorite]; otherwise, false.
        public bool? IsFavorite { get; set; }
        /// 
        /// Gets or sets a value indicating whether this instance is liked.
        /// 
        /// null if [is liked] contains no value, true if [is liked]; otherwise, false.
        public bool? IsLiked { get; set; }
        /// 
        /// Gets or sets a value indicating whether this instance is disliked.
        /// 
        /// null if [is disliked] contains no value, true if [is disliked]; otherwise, false.
        public bool? IsDisliked { get; set; }
        /// 
        /// Gets or sets a value indicating whether [enable favorite sorting].
        /// 
        /// true if [enable favorite sorting]; otherwise, false.
        public bool EnableFavoriteSorting { get; set; }
        /// 
        /// Gets or sets the user identifier.
        /// 
        /// The user identifier.
        public Guid UserId { get; set; }
        /// 
        /// Gets or sets the start index. Used for paging.
        /// 
        /// The start index.
        public int? StartIndex { get; set; }
        /// 
        /// Gets or sets the maximum number of items to return.
        /// 
        /// The limit.
        public int? Limit { get; set; }
        /// 
        /// Gets or sets a value indicating whether [add current program].
        /// 
        /// true if [add current program]; otherwise, false.
        public bool AddCurrentProgram { get; set; }
        public bool EnableUserData { get; set; }
        /// 
        /// Gets or sets a value whether to return news or not.
        /// 
        /// If set to null, all programs will be returned.
        public bool? IsNews { get; set; }
        /// 
        /// Gets or sets a value whether to return movies or not.
        /// 
        /// If set to null, all programs will be returned.
        public bool? IsMovie { get; set; }
        /// 
        /// Gets or sets a value indicating whether this instance is kids.
        /// 
        /// null if [is kids] contains no value, true if [is kids]; otherwise, false.
        public bool? IsKids { get; set; }
        /// 
        /// Gets or sets a value indicating whether this instance is sports.
        /// 
        /// null if [is sports] contains no value, true if [is sports]; otherwise, false.
        public bool? IsSports { get; set; }
        public bool? IsSeries { get; set; }
        public ItemSortBy[] SortBy { get; set; }
        /// 
        /// Gets or sets the sort order to return results with.
        /// 
        /// The sort order.
        public SortOrder? SortOrder { get; set; }
    }
}