"""
Curated word lists for Reddit-style auto-assigned user handles.

The lists are sized so that the cartesian product (``ADJECTIVES × NOUNS``)
yields a comfortable handle namespace where collisions are rare. Both lists are
hand-curated to avoid offensive terms, brand names, and ambiguous spellings; do
**not** swap to a third-party word list without re-vetting.

Adding new entries grows the namespace and is safe — the management command
``regenerate_user_handles`` can be re-run after a list change to re-roll
handles for users who previously got a numeric-suffixed candidate due to a
collision.

Format requirements:
- ASCII only
- Lower-case
- No spaces, hyphens, or punctuation (we camelCase the pair)
- Length 3-12 characters
- Each word must be unique to its list (no entry appears in both
  ``ADJECTIVES`` and ``NOUNS``) so combinations like ``cometComet`` are
  impossible. The pair lists are spot-checked for cross-overlap; add
  new entries to whichever list reads more naturally.
"""

from __future__ import annotations

# 243 adjectives. Friendly, neutral, easy to spell.
ADJECTIVES: tuple[str, ...] = (
    "able",
    "agile",
    "alert",
    "amber",
    "amused",
    "ancient",
    "arctic",
    "ardent",
    "artful",
    "ashen",
    "aspen",
    "astral",
    "auburn",
    "autumn",
    "azure",
    "balmy",
    "blazing",
    "blissful",
    "blithe",
    "bold",
    "bouncy",
    "brave",
    "brawny",
    "breezy",
    "bright",
    "brisk",
    "bronze",
    "bubbly",
    "bumpy",
    "buoyant",
    "calm",
    "candid",
    "canny",
    "carmine",
    "casual",
    "cedar",
    "celadon",
    "charming",
    "cheery",
    "chic",
    "chilled",
    "chipper",
    "chirpy",
    "civic",
    "classic",
    "clean",
    "clear",
    "clever",
    "cloudy",
    "clumsy",
    "comic",
    "cool",
    "copper",
    "cordial",
    "cosmic",
    "cozy",
    "crafty",
    "creamy",
    "crimson",
    "crisp",
    "curious",
    "daffy",
    "dainty",
    "dapper",
    "daring",
    "dark",
    "dashing",
    "dazzling",
    "deep",
    "delicate",
    "dewy",
    "diligent",
    "dipper",
    "dotted",
    "downy",
    "dreamy",
    "dusky",
    "earnest",
    "easy",
    "eccentric",
    "elated",
    "elegant",
    "elfin",
    "emerald",
    "epic",
    "ethereal",
    "even",
    "exact",
    "exotic",
    "fair",
    "famed",
    "fancy",
    "feisty",
    "fervent",
    "fiery",
    "fine",
    "fizzy",
    "flaming",
    "fleet",
    "fluffy",
    "flying",
    "fond",
    "frank",
    "free",
    "fresh",
    "frosty",
    "frothy",
    "funky",
    "gallant",
    "gentle",
    "giddy",
    "glad",
    "glassy",
    "gleaming",
    "glittery",
    "glowing",
    "golden",
    "good",
    "graceful",
    "grand",
    "grassy",
    "great",
    "green",
    "grinning",
    "groovy",
    "gusty",
    "happy",
    "hardy",
    "harmonic",
    "hazel",
    "hearty",
    "heavenly",
    "honest",
    "honeyed",
    "hopeful",
    "humble",
    "hushed",
    "icy",
    "idle",
    "imperial",
    "indigo",
    "inky",
    "iron",
    "ivory",
    "jaunty",
    "jazzy",
    "jolly",
    "jovial",
    "joyful",
    "jubilant",
    "keen",
    "kind",
    "knowing",
    "lacy",
    "lavender",
    "leafy",
    "lemon",
    "lilac",
    "limber",
    "lithe",
    "lively",
    "loamy",
    "lofty",
    "lucid",
    "lucky",
    "lush",
    "luxe",
    "magnetic",
    "majestic",
    "mango",
    "maple",
    "mauve",
    "mellow",
    "melodic",
    "merry",
    "mighty",
    "mindful",
    "minty",
    "misty",
    "modest",
    "noble",
    "noisy",
    "nosy",
    "nutty",
    "oaken",
    "obvious",
    "olive",
    "opal",
    "orange",
    "outgoing",
    "pacific",
    "patient",
    "peachy",
    "pearly",
    "peppy",
    "perky",
    "pious",
    "placid",
    "playful",
    "plucky",
    "plum",
    "polished",
    "poppy",
    "posh",
    "pretty",
    "prim",
    "prismy",
    "proud",
    "puffy",
    "pure",
    "quaint",
    "quick",
    "quiet",
    "quirky",
    "racing",
    "radiant",
    "rapid",
    "rascal",
    "rebel",
    "regal",
    "ripe",
    "rising",
    "rocky",
    "rosy",
    "rowdy",
    "ruby",
    "rustic",
    "sage",
    "sandy",
    "sapphire",
    "savvy",
    "scarlet",
    "serene",
    "shaggy",
    "shiny",
    "silken",
    "silly",
    "silvery",
    "simple",
    "sleek",
    "slick",
    "smart",
    "smiling",
)

# 228 nouns. Mostly animals, fauna, mythical, plus a few nature elements.
NOUNS: tuple[str, ...] = (
    "alpaca",
    "antelope",
    "ape",
    "armadillo",
    "axolotl",
    "badger",
    "barnacle",
    "bass",
    "bat",
    "beagle",
    "bear",
    "beaver",
    "bee",
    "beetle",
    "bird",
    "bison",
    "boar",
    "bobcat",
    "bonobo",
    "boulder",
    "buffalo",
    "bug",
    "bumblebee",
    "bunny",
    "burro",
    "butterfly",
    "calf",
    "camel",
    "canary",
    "canyon",
    "cardinal",
    "caribou",
    "cat",
    "caterpillar",
    "chameleon",
    "cheetah",
    "chickadee",
    "chimera",
    "chinchilla",
    "chipmunk",
    "clam",
    "cliff",
    "clover",
    "cobra",
    "comet",
    "condor",
    "coral",
    "corgi",
    "cougar",
    "cow",
    "coyote",
    "crab",
    "crane",
    "cricket",
    "crow",
    "cub",
    "cuckoo",
    "deer",
    "dingo",
    "dog",
    "dolphin",
    "donkey",
    "dove",
    "dragon",
    "dragonfly",
    "duck",
    "duckling",
    "eagle",
    "earwig",
    "echidna",
    "eel",
    "egret",
    "elephant",
    "elk",
    "ember",
    "ermine",
    "fairy",
    "falcon",
    "fawn",
    "feather",
    "ferret",
    "finch",
    "firefly",
    "fish",
    "flamingo",
    "flock",
    "flora",
    "flower",
    "fly",
    "foal",
    "forest",
    "fossil",
    "fox",
    "frog",
    "fruit",
    "galaxy",
    "gannet",
    "gazelle",
    "gecko",
    "geyser",
    "giraffe",
    "glacier",
    "gnu",
    "goat",
    "goose",
    "gopher",
    "gorilla",
    "grasshopper",
    "griffin",
    "grouse",
    "guppy",
    "hare",
    "harrier",
    "hawk",
    "hedgehog",
    "heifer",
    "hen",
    "heron",
    "hippo",
    "hornet",
    "horse",
    "hound",
    "hummingbird",
    "husky",
    "hyena",
    "ibex",
    "ibis",
    "iguana",
    "impala",
    "jackal",
    "jaguar",
    "jay",
    "jellyfish",
    "joey",
    "kangaroo",
    "kestrel",
    "kid",
    "kingfisher",
    "kit",
    "kite",
    "kiwi",
    "koala",
    "kraken",
    "ladybug",
    "lamb",
    "lark",
    "lemur",
    "leopard",
    "lion",
    "lizard",
    "llama",
    "lobster",
    "lynx",
    "macaw",
    "magpie",
    "manatee",
    "marmot",
    "marten",
    "meadow",
    "meerkat",
    "minnow",
    "mole",
    "mongoose",
    "monkey",
    "moon",
    "moose",
    "moth",
    "mountain",
    "mouse",
    "narwhal",
    "nebula",
    "newt",
    "nightingale",
    "nymph",
    "ocelot",
    "octopus",
    "okapi",
    "opossum",
    "orca",
    "oriole",
    "otter",
    "owl",
    "panda",
    "panther",
    "parrot",
    "peacock",
    "pebble",
    "pelican",
    "penguin",
    "phoenix",
    "pigeon",
    "pika",
    "platypus",
    "pony",
    "porcupine",
    "prairie",
    "puffin",
    "puma",
    "puppy",
    "quail",
    "quokka",
    "rabbit",
    "raccoon",
    "raven",
    "reef",
    "reindeer",
    "rhino",
    "river",
    "robin",
    "rooster",
    "salmon",
    "sandpiper",
    "satyr",
    "seahorse",
    "seal",
    "shark",
    "shrew",
    "skunk",
    "sloth",
    "snail",
    "snake",
    "sparrow",
    "sphinx",
    "squirrel",
    "starfish",
    "stoat",
    "stork",
    "swan",
)
