using System.Text.RegularExpressions;

namespace Nalu.Web.PostProcessors;

public class FormatCep : IPostProcessor
{
    public string Name => "format_cep";

    public ProcessorResult Process(string? value)
    {
        if (string.IsNullOrWhiteSpace(value)) return ProcessorResult.Invalid("CEP não informado");

        var digits = Regex.Replace(value, @"\D", "");

        if (digits.Length != 8)
            return ProcessorResult.Invalid("CEP deve ter 8 dígitos");

        if (digits == "00000000")
            return ProcessorResult.Invalid("CEP inválido");

        return ProcessorResult.Ok($"{digits[..5]}-{digits[5..]}");
    }
}
