<?php
namespace Autogedal\InternalLinks\Service;

class SlugHandler
{
    /**
     * Maximum allowed slug length
     */
    const MAX_SLUG_LENGTH = 255;

    /**
     * Generate a clean, URL-friendly slug
     *
     * @param string $value
     * @return string
     */
    public function generateSlug($value)
    {
        if (empty($value)) {
            return '';
        }
        $slug = strtolower($value);
        $slug = preg_replace('/[^a-z0-9\s-]/', '', $slug);
        $slug = preg_replace('/[\s-]+/', '-', $slug);
        return trim($slug, '-');
    }

    /**
     * Validate slug format
     *
     * @param string $slug
     * @return bool
     */
    public function validateSlug($slug)
    {
        if (empty($slug) || strlen($slug) > self::MAX_SLUG_LENGTH) {
            return false;
        }
        return preg_match('/^[a-z0-9-]+$/', $slug) === 1;
    }
}
