using System.Collections.ObjectModel;
using System.Windows.Input;

namespace SHH.CameraDashboard
{
    public class VideoWallViewModel : ViewModelBase
    {
        // 视频列表
        public ObservableCollection<VideoTileViewModel> VideoTiles { get; } = new ObservableCollection<VideoTileViewModel>();

        // 控制 UniformGrid 的列数 (决定是 2x2 还是 3x3)
        private int _columns = 2;
        public int Columns
        {
            get => _columns;
            set => SetProperty(ref _columns, value);
        }

        // 切换布局命令
        public ICommand SetLayoutCommand { get; }

        public VideoWallViewModel()
        {
            SetLayoutCommand = new RelayCommand<string>(ExecuteSetLayout);

            // 3. 初始化格子 (不再需要传入 IP/Port 去主动连接了)
            // 我们用 CameraId 或 Name 来作为匹配标识
            InitVideoTiles();
        }

        private void InitVideoTiles()
        {
            // 假设我们预设 4 个格子，分别对应不同的摄像头 ID
            // 这里 ID 必须和采集端发送的 VideoPayload.CameraId 一致
            //VideoTiles.Add(new VideoTileViewModel("1004", "仓库通道"));
        }

        private void ExecuteSetLayout(string layoutType)
        {
            switch (layoutType)
            {
                case "1x1": Columns = 1; break;
                case "2x2": Columns = 2; break;
                case "3x3": Columns = 3; break;
                case "4x4": Columns = 4; break;
                default: Columns = 2; break;
            }
        }
    }
}