import re
from pathlib import Path


def normalize_name(name: str) -> str:
    name = name.upper()
    name = re.sub(r"[^A-Z0-9_ ]", "", name)
    name = re.sub(r"\s+", "_", name)
    return name.strip("_")


def get_company_document_path(
    base_dir: Path,
    company_name: str,
    document_type: str,
) -> Path:
    company_dir = base_dir / normalize_name(company_name)
    doc_type_dir = company_dir / document_type.lower()

    doc_type_dir.mkdir(parents=True, exist_ok=True)
    return doc_type_dir
