using System;
using System.Collections.Generic;
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 quality.
        /// 
        /// The quality.
        public SyncQuality Quality { 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 the limit.
        /// 
        /// The limit.
        public long? Limit { get; set; }
        /// 
        /// Gets or sets the type of the limit.
        /// 
        /// The type of the limit.
        public SyncLimitType? LimitType { get; set; }
        /// 
        /// Gets or sets the requested item ids.
        /// 
        /// The requested item ids.
        public List RequestedItemIds { get; set; }
        /// 
        /// Gets or sets a value indicating whether this instance is dynamic.
        /// 
        /// true if this instance is dynamic; otherwise, false.
        public bool IsDynamic { 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 double? PrimaryImageAspectRatio { get; set; }
        public SyncJob()
        {
            RequestedItemIds = new List();
        }
    }
}