"""Supabase-Dateien für Jami in den Site-Ordner schreiben."""

from __future__ import annotations

import json
import shutil
from pathlib import Path

SCHEMA_SRC = Path(__file__).resolve().parents[1] / "supabase" / "jami_schema.sql"
API_SRC = Path(__file__).parent / "jami_api.js"

SUPABASE_CONFIG_EXAMPLE = {
    "enabled": False,
    "url": "https://DEIN-PROJEKT.supabase.co",
    "anonKey": "DEIN_ANON_KEY",
}

SETUP_TXT = """JAMI – Supabase einrichten (kostenlos, Frankfurt)
================================================

1) https://supabase.com → Account → New Project
   - Name: jami
   - Region: Frankfurt (eu-central)
   - Passwort für DB notieren

2) SQL ausführen
   - Supabase → SQL Editor → New query
   - Inhalt von supabase/jami_schema.sql einfügen → Run

3) API-Keys
   - Project Settings → API
   - Project URL → in js/supabase-config.json bei "url"
   - anon public key → bei "anonKey"
   - "enabled": true setzen

4) E-Mail-Login (für Tests)
   - Authentication → Providers → Email
   - Optional: "Confirm email" AUS für schnelle Registrierung

5) Seite neu bauen & testen
   python -c "from jam.dating_site import build_site; build_site()"
   start-jami.bat

6) Online stellen (Cloudflare Pages)
   - Siehe CLOUDFLARE_EINRICHTEN.txt im Site-Ordner
   - Oder: deploy-jami-cloudflare.bat (nach npx wrangler login)
   - Domain jami.de: Pages → Custom domains

Datenschutz: In datenschutz.html Supabase (Frankfurt) als Auftragsverarbeiter nennen.

Kosten: Free-Tier – für Beta meist 0 €/Monat.
"""


def write_supabase_files(site_root: Path) -> None:
    site_root.mkdir(parents=True, exist_ok=True)
    (site_root / "js").mkdir(exist_ok=True)
    (site_root / "supabase").mkdir(exist_ok=True)

    if API_SRC.is_file():
        shutil.copy2(API_SRC, site_root / "js" / "jami-api.js")

    if SCHEMA_SRC.is_file():
        shutil.copy2(SCHEMA_SRC, site_root / "supabase" / "jami_schema.sql")

    cfg = site_root / "js" / "supabase-config.json"
    if not cfg.is_file():
        cfg.write_text(
            json.dumps(SUPABASE_CONFIG_EXAMPLE, ensure_ascii=False, indent=2),
            encoding="utf-8",
        )

    (site_root / "SUPABASE_EINRICHTEN.txt").write_text(SETUP_TXT, encoding="utf-8")
