"""Utility functions for Chonkie's Connections."""

import random

ADJECTIVES = [
    "happy", "chonky", "splashy", "munchy", "muddy", "groovy", "bubbly",
    "swift", "lazy", "hungry", "glowing", "radiant", "mighty", "gentle",
    "whimsical", "snug", "plump", "jovial", "sleepy", "sunny", "peppy",
    "breezy", "sneaky", "clever", "peaceful", "dreamy",
]

VERBS = [
    "chomping", "splashing", "munching", "wading", "floating", "drifting", "chunking",
    "slicing", "dancing", "wandering", "sleeping", "dreaming", "gliding", "swimming",
    "bubbling", "giggling", "jumping", "diving", "hopping", "skipping", "trotting", "sneaking",
    "exploring", "nibbling", "resting",
]

NOUNS = [
    "hippo", "river", "chunk", "lilypad", "mudbath", "stream", "pod", "chomp",
    "byte", "fragment", "slice", "splash", "nugget", "lagoon", "marsh",
    "pebble", "ripple", "cluster", "patch", "parcel", "meadow", "glade",
    "puddle", "nook", "bite", "whisper", "journey", "haven", "buddy", "pal",
    "snack", "secret"
]

def generate_random_collection_name(sep: str = "-") -> str:
    """Generate a random, fun, 3-part Chonkie-themed name (Adj-Verb-Noun).

    Combines one random adjective, one random verb, and one random noun from
    predefined lists, joined by a separator.

    Args:
        sep: The separator to use between the words. Defaults to "-".

    Returns:
        A randomly generated collection name string (e.g., "happy-splashes-hippo").

    """
    adjective = random.choice(ADJECTIVES)
    verb = random.choice(VERBS)
    noun = random.choice(NOUNS)
    return f"{adjective}{sep}{verb}{sep}{noun}"