using System;
using System.Collections.Generic;
using MediaBrowser.Model.Sync;
namespace MediaBrowser.Model.Sync
{
    public class SyncJob
    {
        /// 
        /// Gets or sets the identifier.
        /// 
        /// The identifier.
        public string Id { get; set; }
        /// 
        /// Gets or sets the device identifier.
        /// 
        /// The device identifier.
        public string TargetId { get; set; }
        /// 
        /// Gets or sets the name of the target.
        /// 
        /// The name of the target.
        public string TargetName { get; set; }
        /// 
        /// Gets or sets the quality.
        /// 
        /// The quality.
        public string Quality { get; set; }
        /// 
        /// Gets or sets the bitrate.
        /// 
        /// The bitrate.
        public int? Bitrate { get; set; }
        /// 
        /// Gets or sets the profile.
        /// 
        /// The profile.
        public string Profile { get; set; }
        /// 
        /// Gets or sets the category.
        /// 
        /// The category.
        public SyncCategory? Category { get; set; }
        /// 
        /// Gets or sets the parent identifier.
        /// 
        /// The parent identifier.
        public string ParentId { get; set; }
        /// 
        /// Gets or sets the current progress.
        /// 
        /// The current progress.
        public double? Progress { get; set; }
        /// 
        /// Gets or sets the name.
        /// 
        /// The name.
        public string Name { get; set; }
        /// 
        /// Gets or sets the status.
        /// 
        /// The status.
        public SyncJobStatus Status { get; set; }
        /// 
        /// Gets or sets the user identifier.
        /// 
        /// The user identifier.
        public string UserId { get; set; }
        /// 
        /// Gets or sets a value indicating whether [unwatched only].
        /// 
        /// true if [unwatched only]; otherwise, false.
        public bool UnwatchedOnly { get; set; }
        /// 
        /// Gets or sets a value indicating whether [synchronize new content].
        /// 
        /// true if [synchronize new content]; otherwise, false.
        public bool SyncNewContent { get; set; }
        /// 
        /// Gets or sets the item limit.
        /// 
        /// The item limit.
        public int? ItemLimit { get; set; }
        /// 
        /// Gets or sets the requested item ids.
        /// 
        /// The requested item ids.
        public Guid[] RequestedItemIds { get; set; }
        /// 
        /// Gets or sets the date created.
        /// 
        /// The date created.
        public DateTime DateCreated { get; set; }
        /// 
        /// Gets or sets the date last modified.
        /// 
        /// The date last modified.
        public DateTime DateLastModified { get; set; }
        /// 
        /// Gets or sets the item count.
        /// 
        /// The item count.
        public int ItemCount { get; set; }
        public string ParentName { get; set; }
        public string PrimaryImageItemId { get; set; }
        public string PrimaryImageTag { get; set; }
        public SyncJob()
        {
            RequestedItemIds = new Guid[] { };
        }
    }
}