using System;
using System.Collections.Generic;
using SimpleCore.Navigation;
using StandardScene.CarTypes;

namespace StandardScene.QrLidar
{
    /// <summary>
    /// scene.qrlidar 平台画像：激光 + 二维码融合导航场景插件。
    /// <para>激光（SLAM 坐标导航）由内核 GhostCar 的 BasicGo 兜底提供；二维码 QrGo 按轨道两端
    /// tag 字段逐段触发——同一台车同一条路线可全激光、全二维码或混合（融合 / 单独使用均可）。</para>
    /// <para>Kiva / 多舵轮顶升车原属本平台（激光+二维码 + 货架取放），会话39 由 scene.mag 迁入。</para>
    /// </summary>
    public sealed class QrLidarSceneProfile : NavigationProfileBase
    {
        public override NavKind Kind => NavKind.Laser;

        public override IReadOnlyList<NavKind> Kinds => new[] { NavKind.Laser, NavKind.QrCode };

        public override string SceneId => "scene.qrlidar";

        public override string DisplayName => "激光+二维码平台";

        public override IReadOnlyList<Type> CarTypes => new[]
        {
            typeof(Forklift),
            typeof(MultiWheelForkLifter),
            typeof(DualLiftingCar),
            typeof(MultiVehicleCar),
            typeof(ArmCar),
            typeof(Kiva),
            typeof(MultiWheelLifterCar),
        };

        public override void OnActivate(ISceneContext context)
        {
            context.Log($"{DisplayName} 已激活（车型：叉车 / 多舵轮叉车 / 锂电双举升 / 多车联动 / ArmCar / Kiva / 多舵轮顶升车）");
        }
    }
}
