from django.conf import settings

from .utils import is_super_admin


def _user_initials(user) -> str:
    if not user.is_authenticated:
        return "TS"

    first = (user.first_name or "").strip()
    last = (user.last_name or "").strip()

    if first or last:
        return f"{first[:1]}{last[:1]}".upper()

    username = (user.username or "").strip()
    return username[:2].upper() or "TS"


def auth_context(request):
    env = getattr(settings, "APP_ENV", "DEV").upper()
    env_tone = {
        "PROD": "danger",
        "PRODUCTION": "danger",
        "STAGE": "warning",
        "STAGING": "warning",
        "UAT": "warning",
        "DEV": "primary",
        "LOCAL": "info",
    }.get(env, "secondary")

    return {
        "OTP_ENABLED": settings.AUTH_OTP_ENABLED,
        "APP_ENV": env,
        "APP_ENV_TONE": env_tone,
        "USER_INITIALS": _user_initials(request.user),
        "CAN_MANAGE_USERS": is_super_admin(request.user),
    }
