using System;
namespace MediaBrowser.Model.SyncPlay
{
    /// 
    /// Class SendCommand.
    /// 
    public class SendCommand
    {
        /// 
        /// Initializes a new instance of the  class.
        /// 
        /// The group identifier.
        /// The playlist identifier of the playing item.
        /// The UTC time when to execute the command.
        /// The command.
        /// The position ticks, for commands that require it.
        /// The UTC time when this command has been emitted.
        public SendCommand(Guid groupId, Guid playlistItemId, DateTime when, SendCommandType command, long? positionTicks, DateTime emittedAt)
        {
            GroupId = groupId;
            PlaylistItemId = playlistItemId;
            When = when;
            Command = command;
            PositionTicks = positionTicks;
            EmittedAt = emittedAt;
        }
        /// 
        /// Gets the group identifier.
        /// 
        /// The group identifier.
        public Guid GroupId { get; }
        /// 
        /// Gets the playlist identifier of the playing item.
        /// 
        /// The playlist identifier of the playing item.
        public Guid PlaylistItemId { get; }
        /// 
        /// Gets or sets the UTC time when to execute the command.
        /// 
        /// The UTC time when to execute the command.
        public DateTime When { get; set; }
        /// 
        /// Gets the position ticks.
        /// 
        /// The position ticks.
        public long? PositionTicks { get; }
        /// 
        /// Gets the command.
        /// 
        /// The command.
        public SendCommandType Command { get; }
        /// 
        /// Gets the UTC time when this command has been emitted.
        /// 
        /// The UTC time when this command has been emitted.
        public DateTime EmittedAt { get; }
    }
}