namespace GeradoresService.Core; /// /// Um gerador/validador de um tipo de identificador. /// Os metadados (Id, Name, Options, ...) são expostos pela API para o frontend construir a UI. /// public interface IGenerator { /// Identificador estável usado nos URLs (ex.: "nif"). string Id { get; } string Name { get; } string Category { get; } string Description { get; } IReadOnlyList Options { get; } /// /// Indica se a validação verifica um dígito de controlo (true) ou apenas o formato (false). /// bool HasChecksum { get; } /// False para geradores compostos que não têm validação (ex.: pessoa fictícia). bool CanValidate { get; } GeneratedItem Generate(GeneratorContext context); ValidationResult Validate(string value); } public static class Categories { public const string Identificacao = "Identificação"; public const string Financeiro = "Financeiro"; public const string Contactos = "Contactos e Morada"; public const string Outros = "Outros"; }