<?php
// Arquivo: funcoes_slug.php

if (!function_exists('gerarSlugBaseLocal')) {
    function gerarSlugBaseLocal($string) {
        if ($string === null || $string === '') {
            return ''; // Retorna string vazia se a entrada for nula ou vazia
        }

        // Tabela de transliteração para remover acentos e caracteres especiais comuns
        $transliterator = \Transliterator::createFromRules(
            ':: Any-Latin;'
            . ':: Latin-ASCII;'
            . ':: NFD;'
            . ':: [:Nonspacing Mark:] Remove;'
            . ':: NFC;'
            . ':: Lower();',
            \Transliterator::FORWARD
        );
        if ($transliterator) {
            $string = $transliterator->transliterate($string);
        } else {
            // Fallback se a intl não estiver disponível ou falhar (menos ideal)
            $string = strtolower($string);
            $search = ['à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ü','ý','þ','ÿ'];
            $replace = ['a','a','a','a','a','a','ae','c','e','e','e','e','i','i','i','i','d','n','o','o','o','o','o','o','u','u','u','u','y','th','y'];
            $string = str_replace($search, $replace, $string);
        }

        // Remove caracteres que não são letras, números, espaços ou hífens
        $string = preg_replace('/[^\p{L}\p{N}\s-]/u', '', $string);

        // Substitui espaços e múltiplos hífens por um único hífen
        $string = preg_replace('/[\s-]+/', '-', $string);

        // Remove hífens do início e do fim
        $string = trim($string, '-');

        // Garante que não seja excessivamente longo (opcional, ajuste o limite)
        $string = substr($string, 0, 200); // Limita o slug base

        return $string;
    }
}
?>