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";
}