import re
from django.core.exceptions import ValidationError

DOMAIN_RE = re.compile(r"^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z0-9-]{2,63}$")


def validate_domain_name(value):
    value = value.strip().lower().rstrip(".")
    if not DOMAIN_RE.match(value):
        raise ValidationError("Introduza um domínio válido, por exemplo exemplo.pt.")
