using System;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Querying;
namespace MediaBrowser.Model.LiveTv
{
    /// 
    /// Class RecordingQuery.
    /// 
    public class RecordingQuery
    {
        /// 
        /// Gets or sets the channel identifier.
        /// 
        /// The channel identifier.
        public string ChannelId { get; set; }
        /// 
        /// Gets or sets the user identifier.
        /// 
        /// The user identifier.
        public Guid UserId { get; set; }
        /// 
        /// Gets or sets the identifier.
        /// 
        /// The identifier.
        public string Id { get; set; }
        /// 
        /// Skips over a given number of items within the results. Use for paging.
        /// 
        /// The start index.
        public int? StartIndex { get; set; }
        /// 
        /// The maximum number of items to return
        /// 
        /// The limit.
        public int? Limit { get; set; }
        /// 
        /// Gets or sets the status.
        /// 
        /// The status.
        public RecordingStatus? Status { get; set; }
        /// 
        /// Gets or sets a value indicating whether this instance is in progress.
        /// 
        /// null if [is in progress] contains no value, true if [is in progress]; otherwise, false.
        public bool? IsInProgress { get; set; }
        /// 
        /// Gets or sets the series timer identifier.
        /// 
        /// The series timer identifier.
        public string SeriesTimerId { get; set; }
        /// 
        /// Fields to return within the items, in addition to basic information
        /// 
        /// The fields.
        public ItemFields[] Fields { get; set; }
        public bool? EnableImages { get; set; }
        public bool? IsLibraryItem { get; set; }
        public bool? IsNews { get; set; }
        public bool? IsMovie { get; set; }
        public bool? IsSeries { get; set; }
        public bool? IsKids { get; set; }
        public bool? IsSports { get; set; }
        public int? ImageTypeLimit { get; set; }
        public ImageType[] EnableImageTypes { get; set; }
        public bool EnableTotalRecordCount { get; set; }
        public RecordingQuery()
        {
            EnableTotalRecordCount = true;
        }
    }
}