"""
Přihlášení na portál ZPMVČR (eforms.zpmvcr.cz) jménem a heslem.
Odlišná platforma od portalzp.cz — přihlášení přes POST formulář s polem PIN a heslo.

Přihlašovací pole:
  pin  — přihlašovací jméno (zobrazeno jako "PIN" na stránce)
  pin2 — druhá část PINu (obvykle prázdné)
  pwd  — heslo

POUŽITÍ:
  pip install requests
  python 01_prihlaseni.py
"""

import json
import os
import sys

import requests

# ── Přihlašovací údaje ────────────────────────────────────────────────────────
PIN   = "9023895287"
PIN2  = ""            # druhé pole PINu — obvykle prázdné
HESLO = "Ax162q8+"
# ─────────────────────────────────────────────────────────────────────────────

LOGIN_URL    = "https://eforms.zpmvcr.cz/eforms/ekomunikace"
COOKIES_FILE = os.path.abspath(os.path.join(os.path.dirname(__file__), "zpmvcr_cookies.json"))


def main() -> None:
    session = requests.Session()
    session.headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"

    # 1. GET → session cookie
    r = session.get(LOGIN_URL, timeout=15)
    r.raise_for_status()

    # 2. POST přihlášení
    r = session.post(LOGIN_URL, data={"pin": PIN, "pin2": PIN2, "pwd": HESLO}, timeout=15)
    r.raise_for_status()

    # Úspěch = server přesměroval pryč z login stránky na redir nebo smluvni
    if "pin" in r.text and "Přihlásit" in r.text:
        print(f"Prihlaseni selhalo — zkontroluj PIN a HESLO. URL: {r.url}")
        sys.exit(1)

    print(f"Prihlaseni uspesne — {r.url}")

    cookies = [
        {
            "name":     c.name,
            "value":    c.value,
            "domain":   c.domain if c.domain.startswith(".") else "." + c.domain,
            "path":     c.path or "/",
            "expires":  int(c.expires) if c.expires else -1,
            "secure":   bool(c.secure),
            "httpOnly": False,
            "sameSite": "Lax",
        }
        for c in session.cookies
    ]
    with open(COOKIES_FILE, "w", encoding="utf-8") as f:
        json.dump(cookies, f, indent=2, ensure_ascii=False)
    print(f"Ulozeno {len(cookies)} cookies -> {COOKIES_FILE}")


if __name__ == "__main__":
    main()
