namespace EventsAppQuest.Core
{
    /// <summary>
    /// Resultado simples de um raycast XR real: objecto atingido, TargetId, distância e validade.
    /// Usado pelo QuestXRRaycastController e pela camada de apontamento/seleção.
    /// </summary>
    public class QuestXRRaycastHitResult
    {
        /// <summary>Nome do GameObject atingido (para debug).</summary>
        public string HitObjectName { get; set; }

        /// <summary>Identificador do alvo (ex.: "guided_step", "hotspot"). Preenchido a partir de QuestPointableTargetMarker.</summary>
        public string HitTargetId { get; set; }

        /// <summary>Tipo do alvo apontável (painel, hotspot, ação, etc.).</summary>
        public QuestPointableTargetType HitTargetType { get; set; }

        /// <summary>Distância do hit em metros.</summary>
        public float HitDistance { get; set; }

        /// <summary>Se true, o hit corresponde a um alvo válido (com TargetId conhecido).</summary>
        public bool IsValidTarget { get; set; }

        /// <summary>Modo de origem do raycast (ex.: CameraForward).</summary>
        public QuestXRRaycastSourceMode SourceMode { get; set; }

        /// <summary>Notas breves (ex.: "Sem collider", "Alvo fora de alcance").</summary>
        public string Notes { get; set; }
    }
}
