"""test_import_3files.py – jednorázový test: 3 soubory jednoho pacienta → 1 dekurs s klikacími odkazy
Testuje opravenou RTF logiku (cs32, Přílohy: inline, poradi++)
Spustit na Windows.
"""
import datetime
import os
import fdb
import funkce
import funkce_ext

CESTA  = r'u:\\'
IDPAC  = 9742   # Buzalka Vladimír, RC 7309208104

SOUBORY = [
    {
        'souborname':   '7309208104 2026-03-18 Buzalka, Vladimír [vyšetření] [ahoj Claude copy1].pdf',
        'prvnizavorka': 'vyšetření',
        'druhazavorka': 'ahoj Claude copy1',
        'datum':        datetime.date(2026, 3, 18),
    },
    {
        'souborname':   '7309208104 2026-03-18 Buzalka, Vladimír [vyšetření] [ahoj Claude copy2].pdf',
        'prvnizavorka': 'vyšetření',
        'druhazavorka': 'ahoj Claude copy2',
        'datum':        datetime.date(2026, 3, 18),
    },
    {
        'souborname':   '7309208104 2026-03-18 Buzalka, Vladimír [vyšetření] [ahoj Claude].pdf',
        'prvnizavorka': 'vyšetření',
        'druhazavorka': 'ahoj Claude',
        'datum':        datetime.date(2026, 3, 18),
    },
]

# ── Připojení ─────────────────────────────────────────────────────────────────
conn = fdb.connect(
    dsn=r'localhost:c:\medicus 3\data\medicus.fdb',
    user='SYSDBA', password='masterkey', charset='WIN1250'
)

# ── Krok 1: vložit každý soubor do ext DB ─────────────────────────────────────
bookmark     = ''
bookmarks    = ''
cislo   = 9
poradi  = 0

for s in SOUBORY:
    cesta_souboru = os.path.join(CESTA, s['souborname'])
    datumsouboru  = datetime.datetime.fromtimestamp(os.path.getmtime(cesta_souboru))

    print(f"\n>>> Zpracovávám: {s['souborname']}")
    fileid = funkce_ext.zapis_file_ext(
        vstupconnection = conn,
        idpac           = IDPAC,
        cesta           = CESTA,
        souborname      = s['souborname'],
        prvnizavorka    = s['prvnizavorka'],
        soubordate      = s['datum'],
        souborfiledate  = datumsouboru,
        poznamka        = s['druhazavorka'],
    )
    print(f"    → FILES.ID = {fileid}")

    # {\info{\bookmarks ...}} sekce
    filenameforbookmark = s['datum'].strftime('%Y-%m-%d') + ' ' + s['prvnizavorka'] + ': ' + s['druhazavorka']
    bookmark += '"' + filenameforbookmark + '","Files:' + str(fileid) + '",' + str(cislo) + ';'
    cislo += 7

    # tělo RTF – klikatelné záložky (cs32, všechny stejný formát)
    bookmarks += (r'\pard\s10{\*\bkmkstart ' + str(poradi) + r'}'
                  r'\plain\cs32\f0\ul\fs20\cf1 ' + filenameforbookmark +
                  r'{\*\bkmkend ' + str(poradi) + r'}\par')
    poradi += 1

bookmark = bookmark[:-1]   # odstranit poslední ;

# ── Krok 2: sestavit RTF ──────────────────────────────────────────────────────
rtf = r"""{\rtf1\ansi\ansicpg1250\uc1\deff0\deflang1029{\info{\bookmarks BOOKMARKNAMES}}{\fonttbl{\f0\fnil\fcharset238 Arial;}{\f5\fnil\fcharset238 Symbol;}}
{\colortbl ;\red0\green0\blue255;\red0\green128\blue0;\red0\green0\blue0;}
{\stylesheet{\s10\fi0\li0\ql\ri0\sb0\sa0 Vlevo;}{\*\cs15\f0\fs20 Norm\'e1ln\'ed;}{\*\cs20\f0\i\fs20 Z\'e1hlav\'ed;}{\*\cs32\f0\ul\fs20\cf1 Odkaz;}}
\uc1\pard\s10\plain\cs20\f0\i\fs20 Vlo\'9een\'e9 p\'f8\'edlohy:\par
BOOKMARKSTEXT
\pard\s10\plain\cs15\f0\fs20 \par
}"""

rtf = rtf.replace('BOOKMARKNAMES', bookmark)
rtf = rtf.replace('BOOKMARKSTEXT', bookmarks)

print('\n=== Výsledný RTF ===')
print(rtf)

# ── Krok 3: zapsat dekurs ─────────────────────────────────────────────────────
dekursid    = funkce.get_dekurs_id(conn)
datumzapisu = datetime.datetime.now().date()
caszapisu   = datetime.datetime.now().time()

cur = conn.cursor()
cur.execute(
    "INSERT INTO DEKURS (id, iduzi, idprac, idodd, idpac, datum, cas, dekurs)"
    " VALUES (?,?,?,?,?,?,?,?)",
    (dekursid, 6, 2, 2, IDPAC, datumzapisu, caszapisu, rtf)
)
conn.commit()
conn.close()

print(f'\n=== HOTOVO ===')
print(f'DEKURS.ID = {dekursid}')
print('Otevři Medicus → karta Buzalka Vladimír → najdi dnešní záznam → klikej na odkazy!')
