using System; using System.Collections.Generic; using Jellyfin.Data.Enums; using MediaBrowser.Model.Session; namespace MediaBrowser.Model.Dto; /// /// Session info DTO. /// public class SessionInfoDto { /// /// Gets or sets the play state. /// /// The play state. public PlayerStateInfo? PlayState { get; set; } /// /// Gets or sets the additional users. /// /// The additional users. public IReadOnlyList? AdditionalUsers { get; set; } /// /// Gets or sets the client capabilities. /// /// The client capabilities. public ClientCapabilitiesDto? Capabilities { get; set; } /// /// Gets or sets the remote end point. /// /// The remote end point. public string? RemoteEndPoint { get; set; } /// /// Gets or sets the playable media types. /// /// The playable media types. public IReadOnlyList PlayableMediaTypes { get; set; } = []; /// /// Gets or sets the id. /// /// The id. public string? Id { get; set; } /// /// Gets or sets the user id. /// /// The user id. public Guid UserId { get; set; } /// /// Gets or sets the username. /// /// The username. public string? UserName { get; set; } /// /// Gets or sets the type of the client. /// /// The type of the client. public string? Client { get; set; } /// /// Gets or sets the last activity date. /// /// The last activity date. public DateTime LastActivityDate { get; set; } /// /// Gets or sets the last playback check in. /// /// The last playback check in. public DateTime LastPlaybackCheckIn { get; set; } /// /// Gets or sets the last paused date. /// /// The last paused date. public DateTime? LastPausedDate { get; set; } /// /// Gets or sets the name of the device. /// /// The name of the device. public string? DeviceName { get; set; } /// /// Gets or sets the type of the device. /// /// The type of the device. public string? DeviceType { get; set; } /// /// Gets or sets the now playing item. /// /// The now playing item. public BaseItemDto? NowPlayingItem { get; set; } /// /// Gets or sets the now viewing item. /// /// The now viewing item. public BaseItemDto? NowViewingItem { get; set; } /// /// Gets or sets the device id. /// /// The device id. public string? DeviceId { get; set; } /// /// Gets or sets the application version. /// /// The application version. public string? ApplicationVersion { get; set; } /// /// Gets or sets the transcoding info. /// /// The transcoding info. public TranscodingInfo? TranscodingInfo { get; set; } /// /// Gets or sets a value indicating whether this session is active. /// /// true if this session is active; otherwise, false. public bool IsActive { get; set; } /// /// Gets or sets a value indicating whether the session supports media control. /// /// true if this session supports media control; otherwise, false. public bool SupportsMediaControl { get; set; } /// /// Gets or sets a value indicating whether the session supports remote control. /// /// true if this session supports remote control; otherwise, false. public bool SupportsRemoteControl { get; set; } /// /// Gets or sets the now playing queue. /// /// The now playing queue. public IReadOnlyList? NowPlayingQueue { get; set; } /// /// Gets or sets the now playing queue full items. /// /// The now playing queue full items. public IReadOnlyList? NowPlayingQueueFullItems { get; set; } /// /// Gets or sets a value indicating whether the session has a custom device name. /// /// true if this session has a custom device name; otherwise, false. public bool HasCustomDeviceName { get; set; } /// /// Gets or sets the playlist item id. /// /// The splaylist item id. public string? PlaylistItemId { get; set; } /// /// Gets or sets the server id. /// /// The server id. public string? ServerId { get; set; } /// /// Gets or sets the user primary image tag. /// /// The user primary image tag. public string? UserPrimaryImageTag { get; set; } /// /// Gets or sets the supported commands. /// /// The supported commands. public IReadOnlyList SupportedCommands { get; set; } = []; }