from django.utils.text import slugify


def company_initials(name: str) -> str:
    parts = name.split()
    if len(parts) >= 2:
        return f'{parts[0][0]}{parts[1][0]}'.upper()
    return name[:2].upper() if name else 'CO'


def unique_slug(model, base: str, slug_field='slug') -> str:
    slug = slugify(base) or 'profile'
    candidate = slug
    counter = 1
    while model.objects.filter(**{slug_field: candidate}).exists():
        candidate = f'{slug}-{counter}'
        counter += 1
    return candidate
