"""
Reusable helper functions for the project.
"""
from django.utils.text import slugify
import random
import string


def generate_unique_slug(model_class, title, slug_field='slug'):
    """Generate a unique slug for a model instance."""
    base_slug = slugify(title)
    slug = base_slug
    counter = 1
    while model_class.objects.filter(**{slug_field: slug}).exists():
        slug = f"{base_slug}-{counter}"
        counter += 1
    return slug


def random_string(length=8):
    """Generate a random alphanumeric string."""
    return ''.join(random.choices(string.ascii_lowercase + string.digits, k=length))


def get_enrollment_badge_class(status):
    """Return Bootstrap badge class based on enrollment status."""
    mapping = {
        'pending': 'warning',
        'approved': 'success',
        'rejected': 'danger',
    }
    return mapping.get(status, 'secondary')


def get_course_status_badge_class(status):
    """Return Bootstrap badge class based on course status."""
    mapping = {
        'draft': 'secondary',
        'published': 'success',
    }
    return mapping.get(status, 'secondary')
