"""Mapping canonical tag slug → kandydaci aliasów slug-ów per tube.

Strategia per tube: iterujemy listę candidates dla danego canonical_slug po kolei,
pierwszy alias który zwróci >0 scen na danym tube'ie wygrywa. Reszta aliasów dla
tej kategorii skip. Dzięki temu obsługujemy slug-mismatch między tube'ami:
  - większość tubeów: "anal"
  - paradisehillcc: "anal-sex" (osobny inflection)
  - niektóre: "ass-fuck", "anal-fuck"

Format aliasów: zawsze z myślnikami. `categoryReplacer` per tube zamieni '-' na
docelowy separator ('_' / '+' / ''). Pierwszy alias w liście to zwykle najbardziej
mainstream slug, dalej coraz bardziej niszowe odmiany.
"""
from __future__ import annotations


CATEGORIES: dict[str, list[str]] = {
    "anal": [
        "anal", "anal-sex", "anal-fuck", "ass-fuck", "anal-porn", "analsex",
        "anal-pov", "ass-to-mouth", "atm",
    ],
    "anal-creampie": ["anal-creampie", "anal-cream-pie", "creampied-ass"],
    "anal-fisting": ["anal-fisting", "anal-fist", "fisting-anal"],
    "anal-gape": ["anal-gape", "gaping", "ass-gape", "gape"],
    "double-penetration": [
        "double-penetration", "dp", "double-anal", "dap", "double-anal-penetration",
    ],
    "big-tits": [
        "big-tits", "big-tit", "big-boobs", "huge-tits", "busty", "big-titted",
        "huge-boobs", "bigtits", "big-tits-amateur", "massive-tits",
    ],
    "natural-tits": [
        "natural-tits", "natural-boobs", "all-natural", "natural", "naturaltits",
    ],
    "small-tits": [
        "small-tits", "small-tit", "tiny-tits", "petite", "flat-chested",
        "smalltits", "small-boobs",
    ],
    "fake-tits": [
        "fake-tits", "fake-boobs", "silicone", "fake", "implants", "silicone-tits",
    ],
    "big-ass": [
        "big-ass", "big-butt", "big-butts", "huge-ass", "phat-ass", "pawg",
        "bigass", "big-booty", "huge-booty", "bubble-butt", "thick", "thicc",
    ],
    "blowjob": [
        "blowjob", "blow-job", "oral", "oral-sex", "blowjobs", "bj",
        "cock-sucking", "deep-blowjob", "sloppy-blowjob",
    ],
    "deepthroat": ["deepthroat", "deep-throat", "deep-throat-fuck"],
    "face-fuck": ["face-fuck", "facefuck", "throat-fuck", "rough-throat"],
    "facial": ["facial", "facials", "cum-on-face", "facial-cumshot"],
    "creampie": [
        "creampie", "cream-pie", "internal-cumshot", "creampies", "cum-inside",
    ],
    "cum-on-tits": [
        "cum-on-tits", "tits-cumshot", "cumshot-on-tits", "cum-on-boobs",
    ],
    "cumshot": ["cumshot", "cum-shot", "cumshots", "cum"],
    "milf-30": [
        "milf", "milfs", "mom", "moms", "stepmom", "step-mom", "mature",
        "cougar", "mature-women", "milf-anal", "mature-milf", "mommy",
    ],
    "lesbian": [
        "lesbian", "lesbians", "girl-girl", "girl-on-girl", "lez", "lezzie",
        "all-girl", "lesbo", "lesbian-sex",
    ],
    "threesome": [
        "threesome", "3some", "ffm", "mfm", "fmf", "mff", "two-girls",
        "ffm-threesome", "threesomes",
    ],
    "foursome": ["foursome", "4some", "two-couples", "four-some"],
    "gangbang": [
        "gangbang", "gang-bang", "orgy", "orgies", "group-sex", "bukkake",
        "group", "groupsex",
    ],
    "interracial": [
        "interracial", "bbc", "ir", "black-on-white", "interracial-anal",
    ],
    "rough": ["rough", "rough-sex", "extreme", "brutal", "punish", "punished"],
    "bdsm": [
        "bdsm", "bondage", "femdom", "domination", "submission", "dominatrix",
        "tied-up", "slave", "fetish",
    ],
    "masturbation": [
        "masturbation", "solo", "solo-girl", "masturbating", "masturbate",
        "fingering", "jerk-off", "self-pleasure",
    ],
    "pov": ["pov", "point-of-view", "pov-sex", "first-person"],
    "doggy-style": [
        "doggy-style", "doggystyle", "doggie-style", "doggy", "from-behind",
    ],
    "cowgirl": ["cowgirl", "riding", "riding-cock", "girl-on-top"],
    "reverse-cowgirl": ["reverse-cowgirl", "rcg", "reverse-riding"],
    "rimming": ["rimming", "ass-licking", "rim-job", "rimjob", "asslicking"],
    "handjob": ["handjob", "hand-job", "handjobs", "hj"],
    "footjob": ["footjob", "foot-job"],
    "fisting": ["fisting", "fist", "fist-fucking", "fistfuck"],
    "squirt": ["squirt", "squirting", "squirts", "female-ejaculation"],
    "ebony": ["ebony", "black", "blacks-women", "black-women", "ebony-anal"],
    "asian": [
        "asian", "asians", "japanese", "korean", "chinese", "thai", "japan",
        "asian-anal",
    ],
    "latina": ["latina", "latin", "latinas", "latina-anal", "spanish"],
    "teen-18": [
        "teen", "teens", "18", "barely-legal", "teenagers-18", "young",
        "young-girl", "18-year-old", "young-teen", "youngteens",
    ],
    "amateur": [
        "amateur", "amateur-porn", "homemade", "home-made", "real-amateur",
        "amateurs",
    ],
    "hardcore": ["hardcore", "hard-core", "hard-fuck", "rough-fuck"],
    "step-fantasy": [
        "step-fantasy", "stepfamily", "stepmom", "stepsis", "step-sister",
        "stepbro", "step-brother", "step-daughter", "step-son", "taboo",
        "family", "family-taboo",
    ],
    "lingerie": ["lingerie", "stockings", "fishnets", "lingerie-sex", "garter"],
    "piercing": ["piercing", "pierced", "pierced-pussy", "pierced-nipples"],
    "feet": ["feet", "foot-fetish", "footjob", "barefoot", "feet-licking"],
    "pussy-licking": [
        "pussy-licking", "pussy-eating", "eating-pussy", "muff-diving",
    ],
    "big-dick": [
        "big-dick", "big-cock", "huge-cock", "monster-cock", "huge-dick",
        "bigcock", "bigdick", "big-cocks",
    ],
    "public": [
        "public", "public-sex", "outdoor", "outdoors", "outdoor-sex",
        "in-public", "public-flashing",
    ],
    "anal-toys": ["anal-toys", "butt-plug", "buttplug", "anal-beads"],
    "anal-fingering": ["anal-fingering", "finger-ass", "ass-fingering"],
    "tribbing": ["tribbing", "trib", "scissoring", "scissor"],
    # Brand-new canonical slugs — gdy pierwszy alias w aktywnym tube hit'uje, tag jest
    # automatycznie utworzony przez `_ensure_tag` (nazwa = title-case slug).
    "hairy": ["hairy", "hairy-pussy", "bush", "unshaven"],
    "tattoo": ["tattoo", "tattoos", "tattooed", "inked"],
    "european": ["european", "euro", "czech", "british", "german", "russian"],
    "cuckold": ["cuckold", "cuck", "hotwife", "wife-watching"],
    "swingers": ["swingers", "swinging", "wife-swap"],
    "gloryhole": ["gloryhole", "glory-hole"],
    "pissing": ["pissing", "piss", "watersports"],
    "bbw": ["bbw", "chubby", "curvy", "plus-size"],
}


__all__ = ["CATEGORIES"]
