using System.Collections.Generic;
namespace Jellyfin.Plugin.JellyLMS.Models;
///
/// Represents an LMS player/zone.
///
public class LmsPlayer
{
///
/// Gets or sets the player's display name.
///
public string Name { get; set; } = string.Empty;
///
/// Gets or sets the player's MAC address (unique identifier).
///
public string MacAddress { get; set; } = string.Empty;
///
/// Gets or sets the player's IP address.
///
public string IpAddress { get; set; } = string.Empty;
///
/// Gets or sets a value indicating whether the player is connected to LMS.
///
public bool IsConnected { get; set; }
///
/// Gets or sets a value indicating whether the player is powered on.
///
public bool IsPoweredOn { get; set; }
///
/// Gets or sets the player's current volume (0-100).
///
public int Volume { get; set; }
///
/// Gets or sets the player model name.
///
public string Model { get; set; } = string.Empty;
///
/// Gets or sets the MAC address of the sync master, if this player is synced.
///
public string? SyncMaster { get; set; }
///
/// Gets or sets the list of synced player MAC addresses (if this is a sync master).
///
public List SyncSlaves { get; set; } = [];
///
/// Gets a value indicating whether this player is part of a sync group.
///
public bool IsSynced => !string.IsNullOrEmpty(SyncMaster) || SyncSlaves.Count > 0;
}