"""Gedeelde classificatielijsten voor de laag-2-generatoren (SERP + modifiers).
Deterministisch, geen AI. Later te verhuizen naar Supabase-tabel `domain_classes` (dan lezen de workflows ze live).
Alles lowercase. Bij toevoegen: beide generatoren opnieuw draaien + importeren.
"""

# Winkelnamen zoals mensen ze intypen (modifiers) én als domein-fragment (SERP). Per land + generiek.
RETAILERS = sorted(set("""
bol bol.com intertoys action amazon mediamarkt media markt coolblue kruidvat hema blokker marktplaats wehkamp aliexpress temu ebay etsy
zeeman primark toychamp dreamland bart smit kijkshop ikea jumbo albert heijn ah lidl aldi gamma praxis karwei hornbach bcc expert
belsimpel mobiel.nl gsmpunt smartphonehoesjes fonq bax-shop conrad alternate decathlon xenos flying tiger big bazar wibra trekpleister
etos douglas de bijenkorf bijenkorf v&d hunkemoller game mania gamemania nedgame bruna ako paagman libris boekenvoordeel
mueller müller rossmann dm saturn otto kaufland real thalia galeria kaufhof cyberport notebooksbilliger galaxus digitec smyths
argos tesco asda currys john lewis boots very walmart bestbuy best buy target fnac cdiscount darty leclerc carrefour auchan
shein wish joom vinted 2dehands zalando about you aboutyou wehkamp coolshop proshop bax
""".split()))
# multi-woord retailers die als bigram binnenkomen
RETAILERS_BIGRAM = ["media markt", "bart smit", "albert heijn", "flying tiger", "big bazar", "de bijenkorf", "game mania", "john lewis", "best buy", "about you"]

# Merken/fabrikanten + compatibiliteitsmerken (apple/iphone/samsung): "merkvraag", geen USP.
BRANDS = sorted(set("""
apple iphone ipad airpods macbook samsung galaxy huawei xiaomi redmi oppo oneplus google pixel nokia motorola sony lg philips
anker belkin xtorm ugreen baseus iniu mophie spigen torras esr otterbox jbl bose sennheiser logitech razer corsair
duracell varta energizer panasonic eneloop intenso sandisk kingston verbatim tp-link tplink netgear ring nest tado
nintendo pokemon pokémon topps panini ultrapro vaultx gamegenic dragonshield asmodee lego playmobil mattel hasbro
nike adidas puma bosch makita dewalt dyson tefal krups nespresso delonghi senseo dolce gusto braun oral-b oralb
""".split()))
BRANDS_BIGRAM = ["ultra pro", "vault x", "dragon shield", "dolce gusto", "oral b", "tp link"]

# SERP: domein-fragmenten van grote retailers/marketplaces (uit laag2-serp-v0, aangevuld)
MARKETPLACE_DOMAINS = ['bol.com','amazon.','coolblue.','mediamarkt.','ebay.','marktplaats.nl','aliexpress.','temu.','otto.de','kaufland.','etsy.','wehkamp.nl',
 'blokker.nl','action.com','hema.','kruidvat.','decathlon.','gamma.nl','praxis.nl','karwei.nl','hornbach.','bcc.nl','expert.nl','belsimpel.','mobiel.nl',
 'gsmpunt.nl','smartphonehoesjes.nl','fonq.nl','bax-shop.','conrad.','alternate.','saturn.de','cyberport.de','notebooksbilliger.','galaxus.','digitec.',
 'fnac.','cdiscount.','walmart.','bestbuy.','target.','intertoys.','toychamp.','bart smit','dreamland.','zalando.','xenos.','2dehands.','vinted.','shein.']
CONTENT_DOMAINS = ['tweakers.net','consumentenbond.nl','kieskeurig.nl','vergelijk.nl','beslist.nl','reddit.com','youtube.com','wikipedia.org','nu.nl','ad.nl',
 'chip.de','computerbild.de','testberichte.de','idealo.','pricewatch','iculture.nl','androidplanet.nl','apple.com','gadgetgear','techradar','tomsguide',
 'wired','techpulse','hardware.info','trustedreviews','ratgeber','vergleich.org','stiftung-warentest','testsieger','netzwelt','giga.de','pokemon.com',
 'pokemon-zone','tcgplayer','cardmarket','icreatemagazine','tweakers','techzine','want.nl','bright.nl','quora.com','facebook.com','instagram.com','tiktok.com','pinterest.']
# SERP: domeinen die een merk zijn (fabrikant met eigen shop). Heuristiek daarnaast: domein-naam komt voor in BRANDS.
BRAND_DOMAINS = ['xtorm.','anker.com','belkin.','ugreen.','baseus.','apple.com/nl/shop','apple.com/de/shop','samsung.com','mophie.','spigen.','esr','otterbox.','ultrapro.',
 'gamegenic.','dragonshield.','asmodee.','lego.com','philips.','sony.','jbl.','bose.','logitech.','razer.','dyson.','bosch','makita.','nespresso.','tefal.']

def js_array(xs):
    import json
    return json.dumps(sorted(set(xs)), ensure_ascii=False)
