using System;

namespace OpenCVStudio_v0
{
    /// <summary>
    /// Свойства блока MergeChannels.
    /// Объединяет отдельные каналы изображения
    /// в одно цветное BGR изображение.
    /// </summary>
    public sealed class MergeChannelsBlockProperties
    {
        private readonly ProjectManager projectManager;
        private readonly ProjectBlock projectBlock;

        public MergeChannelsBlockProperties(ProjectManager projectManager, ProjectBlock projectBlock)
        {
            this.projectManager = projectManager ?? throw new ArgumentNullException(nameof(projectManager));
            this.projectBlock = projectBlock ?? throw new ArgumentNullException(nameof(projectBlock));
        }

        public string FunctionName => "Cv2.Merge";

        public string Description => "Объединяет коллекцию одноканальных изображений в цветное BGR изображение.";

        public string InputDescription => "Вход: ChannelCollection.\r\nКанал 0: Blue.\r\nКанал 1: Green.\r\nКанал 2: Red.";

        public string OutputDescription => "Выход: основное изображение pipeline формата BGR.";

        public string Requirements => "Коллекция должна содержать 3 одноканальных изображения одинакового размера.";

        public string Parameters => "Нет параметров OpenCV.";

        public string ChannelOrder => "Порядок каналов: [0] Blue, [1] Green, [2] Red.";

        public string ResultDescription => "Создаёт трёхканальное цветное изображение из отдельных каналов.";

        public string DataFlow => "ChannelCollection → Image";
    }
}