namespace EventsAppQuest.Core
{
    /// <summary>
    /// Estado simples do input XR na apresentação Quest: disponibilidade, activação, modo activo e última acção.
    /// </summary>
    public class QuestXRInputStatus
    {
        /// <summary>Se true, há input XR disponível (ex.: subsistema XR activo e controladores detectados).</summary>
        public bool IsXRInputAvailable { get; set; }

        /// <summary>Se true, o input XR está habilitado para enviar comandos ao dispatcher.</summary>
        public bool IsXRInputEnabled { get; set; }

        /// <summary>Modo de input XR actual (None, RuntimeFallback, XRControllerPrimary, etc.).</summary>
        public QuestXRInputMode ActiveXRInputMode { get; set; } = QuestXRInputMode.None;

        /// <summary>Último tipo de comando recebido via bridge XR a partir de input real (para debug).</summary>
        public QuestPresentationInputCommandType? LastXRAction { get; set; }

        /// <summary>Se true, a bridge não está a ler input XR real (apenas fallback ou SubmitXRCommand externo).</summary>
        public bool IsBridgeInFallbackOnly { get; set; } = true;

        /// <summary>Notas breves (ex.: "Fallback activo", "XR input real não disponível" ou "XR controlador activo").</summary>
        public string Notes { get; set; }
    }
}
