using UnityEngine;
using EventsAppQuest.Core;

namespace EventsAppQuest.Presentation
{
    /// <summary>
    /// Marcador para vincular um GameObject (com Collider) a um alvo apontável.
    /// Anexe a um painel ou elemento de UI espacial que tenha Collider; o QuestXRRaycastController usa para devolver HitTargetId.
    /// </summary>
    public class QuestPointableTargetMarker : MonoBehaviour
    {
        [Tooltip("Identificador do alvo (ex.: guided_step, hotspot, action_next). Deve coincidir com QuestPointableTarget.TargetId.")]
        [SerializeField] private string _targetId;

        [Tooltip("Tipo do alvo para o resultado do raycast.")]
        [SerializeField] private QuestPointableTargetType _targetType = QuestPointableTargetType.Panel;

        /// <summary>Identificador do alvo apontável.</summary>
        public string TargetId => _targetId;

        /// <summary>Tipo do alvo.</summary>
        public QuestPointableTargetType TargetType => _targetType;

        public void SetTargetId(string targetId)
        {
            _targetId = targetId ?? "";
        }

        /// <summary>Define alvo e tipo (para configuração por código).</summary>
        public void SetTarget(string targetId, QuestPointableTargetType targetType)
        {
            _targetId = targetId ?? "";
            _targetType = targetType;
        }
    }
}
