# retoor <retoor@molodetz.nl>

CATEGORY_BY_PREFIX: dict[str, str] = {
    "auth": "auth",
    "profile": "account",
    "account": "account",
    "consent": "account",
    "terms": "account",
    "report": "moderation",
    "moderation": "moderation",
    "filter": "moderation",
    "follow": "social",
    "award": "social",
    "relation": "social",
    "push": "push",
    "notification": "notification",
    "message": "message",
    "post": "content",
    "comment": "content",
    "gist": "content",
    "issue": "content",
    "quiz": "content",
    "vote": "engagement",
    "reaction": "engagement",
    "bookmark": "engagement",
    "poll": "engagement",
    "battle": "engagement",
    "project": "project",
    "file": "project_files",
    "dir": "project_files",
    "files": "project_files",
    "job.zip": "project_files",
    "job.backup": "backup",
    "backup": "backup",
    "attachment": "attachment",
    "news": "news",
    "game": "game",
    "admin": "admin",
    "service": "service",
    "gateway": "ai",
    "container": "container",
    "proxy": "ingress",
    "seo": "tools",
    "deepsearch": "tools",
    "isslop": "tools",
    "ai": "ai",
    "database": "database",
    "pubsub": "pubsub",
    "telegram": "telegram",
    "devii": "devii",
    "email": "email",
    "cli": "cli",
    "reward": "reward",
    "security": "security",
}

EVENT_RESULTS = ("success", "failure", "denied")
ACTOR_KINDS = ("user", "guest", "system", "cli", "service")
ORIGINS = ("web", "api", "devii", "cli", "service", "scheduler", "devrant")


def category_for(event_key: str) -> str:
    if not event_key:
        return "other"
    parts = event_key.split(".")
    for size in range(len(parts), 0, -1):
        prefix = ".".join(parts[:size])
        if prefix in CATEGORY_BY_PREFIX:
            return CATEGORY_BY_PREFIX[prefix]
    return parts[0]
