using System;
using System.Collections.Generic;
using MediaBrowser.Model.Dto;
namespace MediaBrowser.Model.Sync
{
    public class SyncJobItem
    {
        /// 
        /// Gets or sets the identifier.
        /// 
        /// The identifier.
        public string Id { get; set; }
        /// 
        /// Gets or sets the job identifier.
        /// 
        /// The job identifier.
        public string JobId { get; set; }
        /// 
        /// Gets or sets the item identifier.
        /// 
        /// The item identifier.
        public string ItemId { get; set; }
        /// 
        /// Gets or sets the name of the item.
        /// 
        /// The name of the item.
        public string ItemName { get; set; }
        /// 
        /// Gets or sets the media source identifier.
        /// 
        /// The media source identifier.
        public string MediaSourceId { get; set; }
        /// 
        /// Gets or sets the media source.
        /// 
        /// The media source.
        public MediaSourceInfo MediaSource { get; set; }
        
        /// 
        /// Gets or sets the target identifier.
        /// 
        /// The target identifier.
        public string TargetId { get; set; }
        /// 
        /// Gets or sets the output path.
        /// 
        /// The output path.
        public string OutputPath { get; set; }
        /// 
        /// Gets or sets the status.
        /// 
        /// The status.
        public SyncJobItemStatus Status { get; set; }
        /// 
        /// Gets or sets the current progress.
        /// 
        /// The current progress.
        public double? Progress { get; set; }
        /// 
        /// Gets or sets the date created.
        /// 
        /// The date created.
        public DateTime DateCreated { get; set; }
        /// 
        /// Gets or sets the primary image item identifier.
        /// 
        /// The primary image item identifier.
        public string PrimaryImageItemId { get; set; }
        /// 
        /// Gets or sets the primary image tag.
        /// 
        /// The primary image tag.
        public string PrimaryImageTag { get; set; }
        /// 
        /// Gets or sets the temporary path.
        /// 
        /// The temporary path.
        public string TemporaryPath { get; set; }
        /// 
        /// Gets or sets the additional files.
        /// 
        /// The additional files.
        public List AdditionalFiles { get; set; }
        /// 
        /// Gets or sets a value indicating whether this instance is marked for removal.
        /// 
        /// true if this instance is marked for removal; otherwise, false.
        public bool IsMarkedForRemoval { get; set; }
        /// 
        /// Gets or sets the index of the job item.
        /// 
        /// The index of the job item.
        public int JobItemIndex { get; set; }
        public long ItemDateModifiedTicks { get; set; }
        public SyncJobItem()
        {
            AdditionalFiles = new List();
        }
    }
}