/**
 * KoalaSync Shared Name Generation & Emoji Mapping
 *
 * ⚠️ WARNING: This is the SINGLE SOURCE OF TRUTH.
 * If you edit this file, you MUST run: node scripts/build-extension.js
 * to propagate changes to the extension.
 *
 * The emoji map covers every animal/creature that has a Unicode emoji.
 * Entries are sorted by key length (longest first) at lookup time to
 * prevent substring false-matches (e.g. "caterpillar" must be checked
 * before "cat").
 *
 * If you add a new animal noun to USERNAME_NOUNS, ensure it has a
 * corresponding entry in ANIMAL_EMOJI_MAP (or a substring that already
 * maps to a suitable emoji).
 */

export const USERNAME_ADJECTIVES = [
    'Happy', 'Cool', 'Fast', 'Smart', 'Brave', 'Calm', 'Sneaky', 'Lazy',
    'Wild', 'Chill', 'Lucky', 'Epic', 'Swift', 'Bold', 'Mighty',
    'Cosmic', 'Neon', 'Shadow', 'Crystal', 'Thunder', 'Silent', 'Golden',
    'Fierce', 'Noble', 'Mystic', 'Frozen', 'Blazing', 'Sapphire', 'Iron', 'Crimson',
    'Turbo', 'Zen', 'Pixel', 'Cyber', 'Solar', 'Lunar', 'Astro', 'Hyper',
    'Steel', 'Rogue', 'Alpha', 'Omega', 'Royal', 'Pixel', 'Warp', 'Frost',
];

export const USERNAME_NOUNS = [
    'Koala', 'Panda', 'Tiger', 'Eagle', 'Fox', 'Bear', 'Wolf', 'Lion',
    'Hawk', 'Seal', 'Owl', 'Shark', 'Dragon', 'Phoenix', 'Falcon',
    'Panther', 'Raven', 'Cobra', 'Lynx', 'Jaguar', 'Orca', 'Mantis',
    'Viper', 'Condor', 'Badger', 'Otter', 'Rhino', 'Crane', 'Mongoose',
    'Specter',
    'Cat', 'Dog', 'Deer', 'Bat', 'Gorilla', 'Monkey', 'Rabbit',
    'Horse', 'Unicorn', 'Zebra', 'Leopard', 'Cheetah', 'Puma',
    'Ram', 'Goat', 'Bull', 'Donkey', 'Moose',
    'Elephant', 'Giraffe', 'Hippo', 'Sloth', 'Kangaroo',
    'Raccoon', 'Hamster', 'Hedgehog', 'Skunk', 'Beaver', 'Bison',
    'Camel', 'Llama', 'Hyena', 'Coyote',
    'Mouse', 'Pig', 'Boar', 'Polar', 'Orangutan', 'Mammoth',
    'Crow', 'Duck', 'Swan', 'Penguin', 'Parrot', 'Peacock',
    'Dove', 'Dodo', 'Turkey', 'Flamingo', 'Chicken', 'Rooster', 'Goose',
    'Dolphin', 'Whale', 'Crab', 'Lobster', 'Octopus', 'Squid',
    'Jellyfish', 'Turtle',
    'Crocodile', 'Lizard', 'Snake', 'Frog', 'Toad', 'Gecko',
    'Bee', 'Ant', 'Spider', 'Scorpion', 'Butterfly', 'Ladybug',
    'Beetle', 'Snail', 'Dragonfly', 'Caterpillar',
    'Alien', 'Robot', 'Mermaid', 'Ghoul', 'Sprite', 'Cyborg',
    'Dinosaur', 'Reaper', 'Wraith', 'Sphinx',
    'Yeti', 'Goblin', 'Pirate', 'Ninja', 'Samurai', 'Wizard', 'Knight',
    'Bandit', 'Storm', 'Comet', 'Nebula', 'Quasar', 'Vortex',
];

export const ANIMAL_EMOJI_MAP = {
    'hippopotamus': '🦛',
    'rhinoceros': '🦏',
    'caterpillar': '🐛',
    'chimpanzee': '🐵',
    'orangutan': '🦧',
    'blackbird': '🐦‍⬛',
    'bumblebee': '🐝',
    'cockatoo': '🦜',
    'cockroach': '🪳',
    'dragonfly': '🐉',
    'grasshopper': '🦗',
    'hedgehog': '🦔',
    'jellyfish': '🪼',
    'kangaroo': '🦘',
    'ladybird': '🐞',
    'ladybug': '🐞',
    'porcupine': '🦔',
    'scorpion': '🦂',
    'tarantula': '🕷️',
    'alligator': '🐊',
    'anaconda': '🐍',
    'antelope': '🦌',
    'blowfish': '🐡',
    'butterfly': '🦋',
    'chameleon': '🦎',
    'chipmunk': '🐿️',
    'crocodile': '🐊',
    'dinosaur': '🦖',
    'elephant': '🐘',
    'flamingo': '🦩',
    'giraffe': '🦒',
    'hamster': '🐹',
    'leopard': '🐆',
    'lobster': '🦞',
    'mermaid': '🧜‍♀️',
    'mongoose': '🦦',
    'mosquito': '🦟',
    'pangolin': '🦔',
    'peacock': '🦚',
    'penguin': '🐧',
    'phoenix': '🐦‍🔥',
    'raccoon': '🦝',
    'seahorse': '🐴',
    'sealion': '🦭',
    'unicorn': '🦄',
    'vampire': '🦇',
    'warthog': '🐗',
    'wolverine': '🦡',
    'mammoth': '🦣',
    'meerkat': '🦦',
    'octopus': '🐙',
    'opposum': '🐭',
    'ostrich': '🐦',
    'panther': '🐆',
    'pelican': '🦩',
    'rooster': '🐓',
    'serpent': '🐍',
    'specter': '👻',
    'spectre': '👻',
    'sparrow': '🐦',
    'spider': '🕷️',
    'sphinx': '🦁',
    'squirrel': '🐿️',
    'stingray': '🦈',
    'termite': '🐜',
    'tortoise': '🐢',
    'turkey': '🦃',
    'walrus': '🦭',
    'wombat': '🦡',
    'woodpecker': '🐦',
    'alien': '👾',
    'badger': '🦡',
    'beaver': '🦫',
    'beetle': '🪲',
    'beluga': '🐋',
    'bison': '🦬',
    'bobcat': '🐱',
    'buffalo': '🦬',
    'bunny': '🐰',
    'camel': '🐪',
    'cheetah': '🐆',
    'chicken': '🐔',
    'cobra': '🐍',
    'condor': '🦅',
    'cougar': '🐆',
    'coyote': '🐺',
    'crane': '🦩',
    'cricket': '🦗',
    'crow': '🐦‍⬛',
    'cyborg': '🤖',
    'dolphin': '🐬',
    'donkey': '🫏',
    'dragon': '🐉',
    'drake': '🐉',
    'eagle': '🦅',
    'falcon': '🦅',
    'ferret': '🦦',
    'gazelle': '🦌',
    'gecko': '🦎',
    'gerbil': '🐹',
    'ghost': '👻',
    'ghoul': '👻',
    'goose': '🪿',
    'gopher': '🐹',
    'gorilla': '🦍',
    'grizzly': '🐻',
    'heron': '🦩',
    'hippo': '🦛',
    'hornet': '🐝',
    'hyena': '🐺',
    'iguana': '🦎',
    'jackal': '🐺',
    'jaguar': '🐆',
    'kitten': '🐱',
    'koala': '🐨',
    'lemur': '🐒',
    'lizard': '🦎',
    'llama': '🦙',
    'locust': '🦗',
    'lynx': '🐱',
    'macaw': '🦜',
    'mantis': '🦗',
    'mink': '🦦',
    'monkey': '🐵',
    'moose': '🦌',
    'mouse': '🐭',
    'orca': '🐋',
    'otter': '🦦',
    'oyster': '🦪',
    'panda': '🐼',
    'parrot': '🦜',
    'pigeon': '🕊️',
    'polar': '🐻‍❄️',
    'poodle': '🐩',
    'puffin': '🐧',
    'puma': '🐆',
    'rabbit': '🐰',
    'raptor': '🦖',
    'raven': '🐦‍⬛',
    'reaper': '👻',
    'rhino': '🦏',
    'robin': '🐦',
    'robot': '🤖',
    'salmon': '🐟',
    'shrimp': '🦐',
    'skunk': '🦨',
    'sloth': '🦥',
    'snail': '🐌',
    'snake': '🐍',
    'sprite': '🧚',
    'squid': '🦑',
    'swan': '🦢',
    'tapir': '🐗',
    'tiger': '🐯',
    'toad': '🐸',
    'trout': '🐟',
    'tuna': '🐟',
    'turtle': '🐢',
    'viper': '🐍',
    'vulture': '🦅',
    'weasel': '🦦',
    'whale': '🐋',
    'wolf': '🐺',
    'wraith': '👻',
    'zebra': '🦓',
    'ape': '🦍',
    'ant': '🐜',
    'bat': '🦇',
    'bee': '🐝',
    'bug': '🐛',
    'cat': '🐱',
    'cow': '🐮',
    'crab': '🦀',
    'dog': '🐶',
    'duck': '🦆',
    'elk': '🦌',
    'fly': '🪰',
    'fox': '🦊',
    'frog': '🐸',
    'goat': '🐐',
    'hawk': '🦅',
    'hen': '🐔',
    'hog': '🐷',
    'lion': '🦁',
    'mole': '🐭',
    'moth': '🦋',
    'mule': '🫏',
    'owl': '🦉',
    'pig': '🐷',
    'ram': '🐏',
    'rat': '🐀',
    'seal': '🦭',
    'shark': '🦈',
    'wasp': '🐝',
    'yak': '🐂',
    'doe': '🦌',
    'ewe': '🐑',
    'buck': '🦌',
    'ox': '🐂',
    'bull': '🐂',
    'dodo': '🦤',
    'boar': '🐗',
    'bear': '🐻',
    'deer': '🦌',
    'dove': '🕊️',
    'fish': '🐟',
    'hare': '🐰',
    'horse': '🐴',
    'lamb': '🐑',
    'mare': '🐴',
    'pony': '🐴',
    'pup': '🐶',
    'croc': '🐊',
    'gnat': '🦟',
    'gnu': '🦬',
    'yeti': '🦍',
    'goblin': '👺',
    'pirate': '🏴',
    'ninja': '🥷',
    'samurai': '🥷',
    'wizard': '🧙',
    'knight': '⚔️',
    'bandit': '🦹',
    'storm': '🌩️',
    'comet': '☄️',
    'nebula': '🌌',
    'quasar': '🌟',
    'vortex': '🌪️',
};

export function getAvatarForName(username) {
    if (!username) return '\u{1F464}';
    const lower = username.toLowerCase();
    const sorted = Object.entries(ANIMAL_EMOJI_MAP).sort((a, b) => b[0].length - a[0].length);
    for (const [key, emoji] of sorted) {
        if (lower.includes(key)) return emoji;
    }
    return '\u{1F464}';
}

export function generateUsername() {
    const adj = USERNAME_ADJECTIVES[Math.floor(Math.random() * USERNAME_ADJECTIVES.length)];
    const noun = USERNAME_NOUNS[Math.floor(Math.random() * USERNAME_NOUNS.length)];
    return `${adj}${noun}`;
}
