namespace GeradoresService.Core; public abstract class GeneratorBase : IGenerator { public abstract string Id { get; } public abstract string Name { get; } public abstract string Category { get; } public abstract string Description { get; } public virtual IReadOnlyList Options => []; public virtual bool HasChecksum => true; public virtual bool CanValidate => true; public abstract GeneratedItem Generate(GeneratorContext context); public abstract ValidationResult Validate(string value); protected static GeneratorOption Option(string key, string label, string defaultValue, params (string Value, string Label)[] choices) => new(key, label, choices.Select(c => new OptionChoice(c.Value, c.Label)).ToArray(), defaultValue); }