using static Managing.Common.Enums;

namespace Managing.Domain.Workflows;

public abstract class FlowBase : IFlow
{
    public abstract Guid Id { get; }
    public abstract string Name { get;   }
    public abstract FlowType Type { get;   }
    public abstract string Description { get;   }
    public abstract List<FlowOutput> AcceptedInputs { get; }
    public abstract List<IFlow> Children { get; set; }
    public abstract List<FlowParameter> Parameters { get; set; }
    public abstract Guid ParentId { get;   }
    public abstract string Output { get; set; }
    public abstract List<FlowOutput> OutputTypes { get;   }
    public abstract Task Execute(string input);
    public abstract void MapParameters();
}
