"""Auto-generate Thomas Sabo charm descriptions for all remaining leaders.
Uses 5 short templates + 5 long templates, varied by:
- color (silver vs gold via cikkszám middle group)
- charm sku
Hungarian quotes-safe.
"""
import openpyxl, json, os, sys, io, time, random
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

BASE = os.path.dirname(os.path.abspath(__file__))
DST = os.path.join(BASE, 'merged_master_v2_updated.xlsx')
PROGRESS = os.path.join(BASE, '_progress.json')
TARGETS = os.path.join(BASE, '_targets.json')

with open(TARGETS, encoding='utf-8') as f:
    targets = json.load(f)
with open(PROGRESS, encoding='utf-8') as f:
    prog = json.load(f)

done_leaders = set(prog.get('done_leaders', []))
done_cikks = set(prog.get('done_cikks', []))

# Collect Thomas Sabo charm targets not yet done
ts_targets = []
for t in targets:
    if 'Thomas Sabo' in t.get('leader_name', '') and t['leader'] not in done_leaders:
        ts_targets.append(t)

print(f'Thomas Sabo charm-ok feldolgozandók: {len(ts_targets)}')

# Determine color from cikkszám: -001-, -051-, -041-, -007-, -664-, -643-, -691-, -430- = ezüst
# -413-, -414-, -310-, -311-, -315-, -011- = arany (with -39 suffix often)
def is_gold(cikk):
    parts = cikk.split('-')
    if len(parts) >= 2:
        mid = parts[1]
        # 4xx, 3xx middle groups are usually gold/rose-gold
        if mid.startswith('4') or mid.startswith('3'):
            return True
    return False

SHORT_TEMPLATES_SILVER = [
    """<b>Thomas Sabo {cikk} ezüst függő charm</b><br><br>A <b>Thomas Sabo</b> német ékszermárka ezüst függő charmja - kifinomult kis ékszer, amely karkötőkre vagy nyakláncra fűzhető.<br><br>A Thomas Sabo 1984 óta a finom német ékszerek egyik vezető nemzetközi képviselője. A charm-rendszer 1992 óta a női ékszergyűjtemények egyik kedvelt alappillére - minden viselő saját egyedi kombinációt építhet fel.<br><br>Az <b>ezüst</b> hipoallergén és tartós. A Thomas Sabo finom német ékszerészi minőségben dolgozik - a részletek alaposak, a kivitelezés precíz.<br><br>A <b>Thomas Sabo {cikk}</b> ideális ajándék minden alkalomra - egy charm minden emléknek.""",
    """<b>Thomas Sabo {cikk} ezüst függő charm</b><br><br>A <b>Thomas Sabo</b> német ékszermárka ezüst függő charmja - a karkötők és nyakláncok karakteresebbé tételére. Háromdimenziós, mozgó kis ékszer.<br><br>A Thomas Sabo charm-rendszer az egyik legkedveltebb a női ékszerpiacon. A viselő saját egyedi kombinációt építhet fel.<br><br>Az <b>ezüst</b> hipoallergén és tartós. A Thomas Sabo finom német ékszerészi minőségben dolgozik.<br><br>A <b>Thomas Sabo {cikk}</b> ideális ajándék minden alkalomra - különösen Thomas Sabo karkötőhöz vagy nyaklánchoz.""",
    """<b>Thomas Sabo {cikk} ezüst függő charm</b><br><br>A <b>Thomas Sabo</b> német ékszermárka ezüst függő charmja - kifinomult kis ékszer a karkötők és nyakláncok személyre szabásához.<br><br>A függő charmok karakteresebbek, mint a lapos modellek - vizuálisan és tapintásra is gazdagabbak. A Thomas Sabo charm-rendszer évek óta a női ékszergyűjtemények egyik alappillére.<br><br>Az <b>ezüst</b> hipoallergén és tartós.<br><br>A <b>Thomas Sabo {cikk}</b> ideális ajándék minden alkalomra - egy charm minden emléknek. Önállóan és más Thomas Sabo darabokkal kombinálva is szépen mutat.""",
    """<b>Thomas Sabo {cikk} ezüst függő charm</b><br><br>A <b>Thomas Sabo</b> német ékszermárka ezüst függő charmja - kifinomult kis ékszer, amely a viselő személyes történetének hordozója.<br><br>A Thomas Sabo charm-rendszer 1992 óta a női ékszergyűjtemények egyik alappillére. Minden charm egy emlék, érzés vagy fontos pillanat hordozója.<br><br>Az <b>ezüst</b> hipoallergén és tartós. A Thomas Sabo a finom német ékszerészi minőséget képviseli.<br><br>A <b>Thomas Sabo {cikk}</b> ideális ajándék minden alkalomra - különösen Thomas Sabo karkötőhöz vagy nyaklánchoz.""",
    """<b>Thomas Sabo {cikk} ezüst függő charm</b><br><br>A <b>Thomas Sabo</b> 1984 óta a kifinomult német ezüst ékszerek egyik vezető képviselője. Az ezüst függő charm karakteres, háromdimenziós kis ékszer.<br><br>A Thomas Sabo charm-katalógus rendkívül széles - minden viselőhöz és minden élethelyzethez található passzoló darab. A viselő saját egyedi gyűjteményt építhet fel.<br><br>Az <b>ezüst</b> hipoallergén és tartós, jól ápolható.<br><br>A <b>Thomas Sabo {cikk}</b> ideális ajándék minden alkalomra - egy charm minden emléknek.""",
]

SHORT_TEMPLATES_GOLD = [
    """<b>Thomas Sabo {cikk} ezüst függő charm aranyozott kivitelben</b><br><br>A <b>Thomas Sabo</b> német ékszermárka aranyozott függő charmja - ezüst alapon arany felülettel. A meleg arany árnyalat ünnepélyes karaktert ad, melegebb hatású, mint a tiszta ezüst.<br><br>A Thomas Sabo charm-rendszer évek óta a női ékszergyűjtemények egyik alappillére. Az aranyozott charmok különösen szépen mutatnak ünnepi és esti viseletben.<br><br>Az <b>ezüst alap</b> hipoallergén és tartós, az <b>aranyozás</b> finom német ékszerészi minőségben készül.<br><br>A <b>Thomas Sabo {cikk}</b> ideális ajándék ünnepi alkalmakra - különösen Thomas Sabo arany karkötőhöz vagy nyaklánchoz.""",
    """<b>Thomas Sabo {cikk} ezüst függő charm aranyozott kivitelben</b><br><br>A <b>Thomas Sabo</b> német ékszermárka aranyozott függő charmja - meleg arany felülettel ezüst alapon. Klasszikus, ünnepélyes karakter.<br><br>A függő charmok háromdimenziós kis ékszerek - külön lógnak a karkötőről vagy nyaklánc, mozgóbbak, mint a lapos modellek.<br><br>Az <b>ezüst alap</b> hipoallergén és tartós, az <b>aranyozás</b> finom német ékszerészi minőségben készül.<br><br>A <b>Thomas Sabo {cikk}</b> ideális ajándék ünnepi alkalmakra - különösen Thomas Sabo arany karkötőhöz vagy nyaklánchoz.""",
    """<b>Thomas Sabo {cikk} ezüst függő charm aranyozott kivitelben</b><br><br>A <b>Thomas Sabo</b> német ékszermárka aranyozott függő charmja - ezüst alapon arany felülettel. Az aranyozás vékony, ünnepélyes karaktert ad.<br><br>A függő charmok karakteresebbek, mozgóbbak, mint a lapos modellek. A Thomas Sabo charm-rendszer az egyik legkedveltebb a női ékszerpiacon.<br><br>Az <b>ezüst alap</b> hipoallergén és tartós, az <b>aranyozás</b> finom német ékszerészi minőségben.<br><br>A <b>Thomas Sabo {cikk}</b> ideális ajándék ünnepi alkalmakra - különösen Thomas Sabo arany karkötőhöz vagy nyaklánchoz.""",
    """<b>Thomas Sabo {cikk} ezüst függő charm aranyozott kivitelben</b><br><br>A <b>Thomas Sabo</b> német ékszermárka aranyozott függő charmja - meleg arany felülettel ezüst alapon. Az aranyozás vékony, klasszikus karaktert ad.<br><br>A Thomas Sabo charm-rendszer évek óta a női ékszergyűjtemények egyik alappillére. Az aranyozott charmok különösen szépen mutatnak ünnepi viseletben.<br><br>Az <b>ezüst alap</b> hipoallergén és tartós.<br><br>A <b>Thomas Sabo {cikk}</b> ideális ajándék ünnepi alkalmakra - különösen Thomas Sabo arany karkötőhöz vagy nyaklánchoz.""",
    """<b>Thomas Sabo {cikk} aranyozott függő charm</b><br><br>A <b>Thomas Sabo</b> 1984 óta a kifinomult német ezüst ékszerek egyik vezető képviselője. Az aranyozott függő charm meleg, ünnepélyes karaktert ad a karkötőnek vagy nyakláncnak.<br><br>Az aranyozás vékony arany rétege bevonja az ezüst alapot, megőrizve annak hipoallergén jellegét. A meleg arany árnyalat különbözik a tiszta ezüsttől - ünnepélyesebb, klasszikusabb.<br><br>A <b>Thomas Sabo {cikk}</b> ideális ajándék ünnepi alkalmakra - különösen Thomas Sabo arany karkötőhöz vagy nyaklánchoz.""",
]

LONG_TEMPLATES_SILVER = [
    """<b>Thomas Sabo {cikk} - ezüst függő charm</b><br><br>A <b>Thomas Sabo</b> 1984-ben alapított német ékszermárka. A márkát Thomas Sabo tervező alapította Lauf an der Pegnitz városában - azóta a finom német ékszerek egyik vezető nemzetközi képviselője.<br><br>A <b>függő charmok</b> karakteresebbek, mint a lapos modellek - külön lógnak a karkötőről vagy nyaklánc, vizuálisan és tapintásra is gazdagabbak. Háromdimenziós kis ékszer az ujj körül.<br><br>A Thomas Sabo charm-rendszer 1992 óta a női ékszergyűjtemények egyik alappillére. A filozófia szerint a viselő saját, személyes történetét építheti fel az ékszerével - minden egyes charm egy emlékhez, érzéshez, vagy fontos pillanathoz kapcsolódhat.<br><br>Az <b>ezüst</b> hipoallergén, tartós, jól ápolható. A Thomas Sabo nagy hangsúlyt fektet a részletekre és a kifinomult német ékszerészi minőségre.<br><br>Ideális ajándék minden alkalomra - egy charm minden emléknek.""",
    """<b>Thomas Sabo {cikk} - ezüst függő charm</b><br><br>A <b>Thomas Sabo</b> 1984-ben alapított német ékszermárka, amely világszerte ismert a kifinomult ezüst ékszereiről. A márka egyik legnépszerűbb terméke a charm-rendszer.<br><br>A <b>függő charmok</b> karakteresebbek, mint a lapos modellek - külön lógnak, vizuálisan és tapintásra is gazdagabbak. Háromdimenziós kis ékszer.<br><br>A Thomas Sabo charm-katalógus rendkívül széles: állatok, szimbólumok, ünnepi motívumok, természeti elemek, hobbik, foglalkozások - minden viselőhöz található passzoló darab.<br><br>A charm-rendszer filozófiája: a viselő saját, személyes történetét építheti fel az ékszerével - minden egyes charm egy emlékhez, érzéshez, vagy fontos pillanathoz kapcsolódhat.<br><br>Az <b>ezüst</b> hipoallergén, tartós, jól ápolható.<br><br>Ideális ajándék minden alkalomra - egy charm minden emléknek. Önállóan és más Thomas Sabo darabokkal kombinálva egyaránt szépen mutat.""",
    """<b>Thomas Sabo {cikk} - ezüst függő charm</b><br><br>A <b>Thomas Sabo</b> 1984-ben alapított német ékszermárka. A márka világszerte ismert a kifinomult ezüst ékszereiről és a charm-rendszeréről, amely 1992 óta a női ékszergyűjtemények egyik alappillére.<br><br>A <b>függő charmok</b> karakteresebbek, mint a lapos modellek - külön lógnak a karkötőről vagy nyaklánc, vizuálisan és tapintásra is gazdagabbak.<br><br>A charm-rendszer filozófiája: a viselő saját, személyes történetét építheti fel az ékszerével - minden egyes charm egy emlékhez, érzéshez kapcsolódhat.<br><br>A Thomas Sabo charm-katalógus rendkívül széles - állatok, szimbólumok, ünnepi motívumok, természeti elemek.<br><br>Az <b>ezüst</b> hipoallergén, tartós, jól ápolható. A Thomas Sabo nagy hangsúlyt fektet a részletekre és a kifinomult német ékszerészi minőségre.<br><br>Ideális ajándék minden alkalomra - egy charm minden emléknek.""",
    """<b>Thomas Sabo {cikk} - ezüst függő charm</b><br><br>A <b>Thomas Sabo</b> 1984-ben alapított német ékszermárka. A márka egyik legnépszerűbb terméke a charm-rendszer - olyan kis ékszerek, amelyeket karkötőkre vagy nyakláncra lehet fűzni.<br><br>A <b>függő charmok</b> karakteresebbek, mint a lapos modellek - külön lógnak, vizuálisan és tapintásra is gazdagabbak. Háromdimenziós kis ékszer.<br><br>A charm-rendszer filozófiája: a viselő saját, személyes történetét építheti fel az ékszerével - minden egyes charm egy emlékhez, érzéshez kapcsolódhat.<br><br>A Thomas Sabo charm-katalógus rendkívül széles - szinte minden élethelyzethez és érdeklődési körhöz található passzoló darab.<br><br>Az <b>ezüst</b> hipoallergén, tartós, jól ápolható.<br><br>Ideális ajándék minden alkalomra. Önállóan és más Thomas Sabo darabokkal kombinálva egyaránt szépen mutat.""",
    """<b>Thomas Sabo {cikk} - kifinomult ezüst függő charm</b><br><br>A <b>Thomas Sabo</b> 1984-ben alapított német ékszermárka. A márkát Thomas Sabo tervező alapította Lauf an der Pegnitz városában - azóta a finom német ékszerek egyik vezető nemzetközi képviselője.<br><br>A charm-rendszer 1992-ben került bevezetésre, és azóta a Thomas Sabo egyik fő terméke. A rendszer filozófiája az, hogy a viselő saját, személyes történetét építheti fel az ékszerével.<br><br>A <b>függő charmok</b> karakteresebbek, mint a lapos modellek - külön lógnak a karkötőről vagy nyaklánc, vizuálisan és tapintásra is gazdagabbak.<br><br>A Thomas Sabo charm-katalógus rendkívül széles - szinte minden élethelyzethez és érdeklődési körhöz található passzoló darab.<br><br>Az <b>ezüst</b> hipoallergén, tartós, jól ápolható. A Thomas Sabo nagy hangsúlyt fektet a részletekre és a kifinomult német ékszerészi minőségre.<br><br>Ideális ajándék minden alkalomra.""",
]

LONG_TEMPLATES_GOLD = [
    """<b>Thomas Sabo {cikk} - aranyozott függő charm</b><br><br>A <b>Thomas Sabo</b> 1984-ben alapított német ékszermárka, amely a kifinomult ezüst ékszerek és a charm-rendszer egyik vezető képviselője.<br><br>A <b>Thomas Sabo {cikk}</b> egy <b>aranyozott függő charm</b> - ezüst alapon arany felülettel. Az aranyozás vékony arany rétege bevonja az ezüst alapot, megőrizve annak hipoallergén jellegét.<br><br>A függő charmok karakteresebbek, mint a lapos modellek - külön lógnak a karkötőről vagy nyaklánc, vizuálisan és tapintásra is gazdagabbak.<br><br>Az aranyozott charmok különösen szépen mutatnak ünnepi és esti viseletben - a melegebb arany árnyalat ünnepélyesebb hatást ad.<br><br>A Thomas Sabo charm-rendszer filozófiája: a viselő saját, személyes történetét építheti fel az ékszerével - minden egyes charm egy emlékhez kapcsolódhat.<br><br>Ideális ajándék ünnepi alkalmakra - különösen Thomas Sabo arany karkötőhöz vagy nyaklánchoz.""",
    """<b>Thomas Sabo {cikk} - aranyozott függő charm</b><br><br>A <b>Thomas Sabo</b> 1984-ben alapított német ékszermárka, amely világszerte ismert a kifinomult ezüst ékszereiről.<br><br>A <b>Thomas Sabo {cikk}</b> egy <b>aranyozott függő charm</b>. Az aranyozás vékony arany rétege bevonja az ezüst alapot, megőrizve annak hipoallergén jellegét, miközben a meleg arany megjelenést is biztosítja.<br><br>A függő charmok karakteresebbek, mozgóbbak, mint a lapos modellek - külön lógnak a karkötőről vagy nyaklánc.<br><br>Az aranyozott charmok különösen szépen mutatnak ünnepi és esti viseletben. A Thomas Sabo charm-rendszer filozófiája: a viselő saját, személyes történetét építheti fel.<br><br>A Thomas Sabo nagy hangsúlyt fektet a részletekre és a kifinomult német ékszerészi minőségre.<br><br>Ideális ajándék ünnepi alkalmakra - különösen Thomas Sabo arany karkötőhöz vagy nyaklánchoz.""",
    """<b>Thomas Sabo {cikk} - aranyozott függő charm</b><br><br>A <b>Thomas Sabo</b> 1984-ben alapított német ékszermárka. A márka egyik legnépszerűbb terméke a charm-rendszer.<br><br>A <b>Thomas Sabo {cikk}</b> egy <b>aranyozott függő charm</b> - ezüst alapon arany felülettel. Az aranyozás vékony arany rétege bevonja az ezüst alapot, megőrizve annak hipoallergén jellegét.<br><br>A függő charmok karakteresebbek, mint a lapos modellek - külön lógnak, vizuálisan és tapintásra is gazdagabbak.<br><br>Az aranyozott charmok különösen szépen mutatnak ünnepi és esti viseletben - a melegebb arany árnyalat ünnepélyesebb hatást ad, mint a tiszta ezüst.<br><br>A Thomas Sabo charm-rendszer filozófiája: a viselő saját, személyes történetét építheti fel.<br><br>Ideális ajándék ünnepi alkalmakra - különösen Thomas Sabo arany karkötőhöz vagy nyaklánchoz.""",
    """<b>Thomas Sabo {cikk} - aranyozott függő charm</b><br><br>A <b>Thomas Sabo</b> 1984-ben alapított német ékszermárka. A márka világszerte ismert a kifinomult ezüst ékszereiről és charm-rendszeréről.<br><br>A <b>Thomas Sabo {cikk}</b> egy <b>aranyozott függő charm</b>. Az aranyozás 18 karátos arany vékony rétege az ezüst alapon - megőrzi az ezüst hipoallergén jellegét, miközben a meleg arany megjelenést is biztosítja.<br><br>A függő charmok karakteresebbek, mint a lapos modellek - vizuálisan és tapintásra is gazdagabbak.<br><br>Az aranyozott charmok különösen szépen mutatnak ünnepi és esti viseletben - klasszikus, ünnepélyes karakter.<br><br>A Thomas Sabo nagy hangsúlyt fektet a részletekre és a kifinomult német ékszerészi minőségre.<br><br>Ideális ajándék ünnepi alkalmakra - különösen Thomas Sabo arany karkötőhöz vagy nyaklánchoz.""",
    """<b>Thomas Sabo {cikk} - aranyozott függő charm ezüst alapon</b><br><br>A <b>Thomas Sabo</b> 1984-ben alapított német ékszermárka, amely a kifinomult ezüst ékszerek és a charm-rendszer egyik vezető nemzetközi képviselője.<br><br>A <b>Thomas Sabo {cikk}</b> aranyozott függő charm - a tiszta ezüst hipoallergén alapja meleg arany felülettel borított. Az aranyozott Thomas Sabo darabok különösen jól mutatnak ünnepi és esti viseletben.<br><br>A függő charmok háromdimenziós, mozgó kis ékszerek - karakteresebbek, mint a lapos modellek. Külön lógnak a karkötőről vagy nyaklánc.<br><br>A Thomas Sabo charm-rendszer 1992 óta a női ékszergyűjtemények egyik alappillére. A filozófia szerint a viselő saját, személyes történetét építheti fel.<br><br>Ideális ajándék ünnepi alkalmakra - különösen Thomas Sabo arany karkötőhöz vagy nyaklánchoz.""",
]

# Open xlsx once, write all, save once
wb = openpyxl.load_workbook(DST)
ws = wb['Sheet1']

random.seed(42)  # reproducible variation
written = 0
for t in ts_targets:
    leader = t['leader']
    variants = t.get('variants', [])
    gold = is_gold(leader)
    if gold:
        short_tpl = random.choice(SHORT_TEMPLATES_GOLD)
        long_tpl = random.choice(LONG_TEMPLATES_GOLD)
    else:
        short_tpl = random.choice(SHORT_TEMPLATES_SILVER)
        long_tpl = random.choice(LONG_TEMPLATES_SILVER)
    for v in variants:
        cikk = v['cikk']
        row_n = v['row']
        short = short_tpl.format(cikk=cikk)
        long_ = long_tpl.format(cikk=cikk)
        ws.cell(row=row_n, column=104, value=short)
        ws.cell(row=row_n, column=105, value=long_)
        done_cikks.add(cikk)
    done_leaders.add(leader)
    written += 1

tmp = DST + '.tmp'
wb.save(tmp); wb.close()
for i in range(30):
    try:
        os.replace(tmp, DST)
        break
    except PermissionError:
        if i == 0: print('File locked, retrying...')
        time.sleep(2)
else:
    raise PermissionError(f'Could not replace {DST}')

# Update progress
prog['done_leaders'] = list(done_leaders)
prog['done_cikks'] = list(done_cikks)
prog['next_index'] = prog.get('next_index', 0) + written
tmp = PROGRESS + '.tmp'
with open(tmp, 'w', encoding='utf-8') as f:
    json.dump(prog, f, ensure_ascii=False, indent=1)
os.replace(tmp, PROGRESS)

print(f'OK: wrote {written} Thomas Sabo leader-eket. Total done_leaders: {len(done_leaders)}')
