using System.Collections.Generic;

namespace Nodify.Calculator
{
    public enum OperationType
    {
        Normal,
        Expando,
        Expression,
        Calculator,
        Group,
        Graph,
        API,
        System
    }

    public class OperationInfoViewModel
    {
        public string? Title { get; set; }
        public OperationType Type { get; set; }
        public IOperation? Operation { get; set; }
        public SystemOperations sysOp { get; set; }
        public List<string?> Input { get; } = new List<string?>();
        public List<string?> Output { get; } = new List<string?>();
        public uint MinInput { get; set; }
        public uint MaxInput { get; set; }
        public string InputType { get; set; } = string.Empty;
        public string OPType { get; set; }
        public bool IsFlowNode { get; set; }
        public bool IsModelNode { get; set; }
        public string ClassName { get; set; }
        public string VariableType { get; set; } = string.Empty;
        public string DefaultValue { get; set; } = string.Empty;
        public bool IsSimpleVariable { get; set; }
        public bool IsFunction { get; set; }
        public List<FunctionParameterInfo> FunctionInputs { get; set; } = new List<FunctionParameterInfo>();
        public List<FunctionParameterInfo> FunctionOutputs { get; set; } = new List<FunctionParameterInfo>();
        public string ResponseModelClassName { get; set; } = string.Empty;
        public string SwaggerGroup { get; set; } = string.Empty;
    }
}
