using Newtonsoft.Json;
using PepperDash.Core;
///
/// Config properties for an IEssentialsRoomFusionController device
///
public class IEssentialsRoomFusionControllerPropertiesConfig
{
///
/// Gets or sets the IP ID of the Fusion Room Controller
///
[JsonProperty("ipId")]
public string IpId { get; set; }
///
/// Gets the IP ID as a UInt16
///
[JsonIgnore]
public uint IpIdInt
{
get
{
// Try to parse the IpId string to UInt16 as hex
if (ushort.TryParse(IpId, System.Globalization.NumberStyles.HexNumber, null, out ushort result))
{
return result;
}
else
{
Debug.LogWarning("Failed to parse IpId '{0}' as UInt16", IpId);
return 0;
}
}
}
///
/// Gets or sets the join map key
///
[JsonProperty("joinMapKey")]
public string JoinMapKey { get; set; }
///
/// Gets or sets the room key associated with this Fusion Room Controller
///
[JsonProperty("roomKey")]
public string RoomKey { get; set; }
///
/// Gets or sets whether to use the Fusion room name for this room
///
/// Defaults to true to preserve current behavior. Set to false to skip updating the room name from Fusion
[JsonProperty("useFusionRoomName")]
public bool UseFusionRoomName { get; set; } = true;
///
/// Gets or sets whether to use HTML format for help requests
///
[JsonProperty("useHtmlFormatForHelpRequests")]
public bool UseHtmlFormatForHelpRequests { get; set; } = false;
///
/// Gets or sets whether to use 24-hour time format
///
[JsonProperty("use24HourTimeFormat")]
public bool Use24HourTimeFormat { get; set; } = false;
///
/// Gets or sets whether to use a timeout for help requests
///
[JsonProperty("useTimeoutForHelpRequests")]
public bool UseTimeoutForHelpRequests { get; set; } = false;
///
/// Gets or sets the timeout duration for help requests in milliseconds
///
[JsonProperty("helpRequestTimeoutMs")]
public int HelpRequestTimeoutMs { get; set; } = 30000;
}