#!/usr/bin/env python3
"""Ubah 30 caption TSC menjadi berkas postingan siap tempel.

Keluaran:
  drafts/tsc_gbp_postingan.txt        → semuanya, dipisah jelas per postingan
  drafts/tsc_gbp_postingan/post_NN.txt → satu berkas per postingan (isi caption saja)
"""
import json, os, re
from datetime import date, timedelta

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
SUMBER = f"{WS}/drafts/tsc_gbp_30_caption.md"
DIR = f"{WS}/drafts/tsc_gbp_postingan"
os.makedirs(DIR, exist_ok=True)

teks = open(SUMBER, encoding="utf-8").read()
blok = re.findall(r"\*\*(\d+)\.\s*([^:*]+):\s*([^*]+)\*\*\n(.*?)(?=\n\*\*\d+\.|\n---|\Z)", teks, re.S)

# saran gambar (sama seperti kalender)
KALENDER = json.load(open(f"{WS}/drafts/tsc_gbp_gambar.json")) if os.path.exists(f"{WS}/drafts/tsc_gbp_gambar.json") else {}

GAMBAR = {
    "perkenalan lokasi": "foto depan klinik atau papan nama",
    "kapan perlu ke dokter kulit": "foto ruang konsultasi",
    "konsultasi online": "foto dokter sedang memegang tablet",
    "klinik kecantikan yang berstandar medis": "foto alat medis di klinik",
    "dokter kulit dan kelamin": "foto ruang periksa yang tertutup",
    "jerawat yang tidak sembuh": "foto perawatan jerawat",
    "bekas jerawat": "foto sesi microneedling",
    "kulit berminyak": "foto produk perawatan klinik",
    "jerawat hormonal": "foto sesi konsultasi",
    "jerawat pada remaja": "foto konsultasi bersama orang tua",
    "facial medis": "foto sesi facial medis",
    "kulit kusam": "foto hasil perawatan (dengan izin pasien)",
    "skin barrier": "foto produk pelembap",
    "anti aging": "foto perawatan wajah",
    "perawatan kulit pria": "foto pasien pria saat konsultasi",
    "apakah perlu booking": "foto area resepsionis",
    "berapa lama hasil": "foto sesi kontrol pasien",
    "perawatan aman atau tidak": "foto alat steril atau kemasan sekali pakai",
    "mitos: jerawat muncul karena wajah kotor": "foto edukasi kulit",
    "kulit sensitif": "foto dokter memeriksa kulit pasien",
    "layanan yang tersedia di klinik": "foto ruang tindakan",
    "melayani pasien dari": "foto papan nama dan lokasi klinik",
    "apa yang terjadi saat konsultasi pertama": "foto dokter mencatat riwayat pasien",
    "klinik medis dan salon kecantikan": "foto ruang perawatan medis",
    "tanda kulit yang sebaiknya tidak ditunda": "foto pemeriksaan dengan dermoskop",
    "kenapa kami menanyakan produk": "foto produk pasien di meja periksa",
    "konsultasi dulu, tindakan kemudian": "foto meja konsultasi",
    "menjaga hasil perawatan di rumah": "foto rutinitas pagi dengan pelindung matahari",
    "perawatan jerawat dan bekas jerawat": "poster penawaran (dibuat khusus)",
    "kenali dokter yang menangani": "foto dr. Avril Novianto",
}

# tanggal: Jumat & Selasa mulai 9 Okt 2026
jadwal, t, i = [], date(2026, 10, 9), 0
while i < len(blok):
    if t.weekday() in (4, 1):
        jadwal.append(t)
        i += 1
    t += timedelta(days=1)

BULAN = ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September",
         "Oktober", "November", "Desember"]
HARI = ["Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"]

semua = ["THE SKIN CODE CLINIC — 30 POSTINGAN GOOGLE BUSINESS PROFILE",
         "Siap tempel. Ambil teks di antara garis 'salin dari sini' dan 'sampai sini'.",
         ""]

for (nomor, jenis, judul, isi), tgl in zip(blok, jadwal):
    isi = isi.strip()
    # rapikan: paragraf jadi satu baris panjang (hindari baris terpotong saat ditempel)
    paragraf = [re.sub(r"\s*\n\s*", " ", p).strip() for p in re.split(r"\n\s*\n", isi) if p.strip()]
    isi = "\n\n".join(paragraf)
    isi = isi.replace("**", "").replace("—", "-").replace("–", "-")
    saran = "foto klinik"
    for kunci, g in GAMBAR.items():
        if kunci.lower() in judul.lower():
            saran = g
            break
    header = (f"{'=' * 64}\nPOSTINGAN {int(nomor):>2} · {HARI[tgl.weekday()]} "
              f"{tgl.day} {BULAN[tgl.month - 1]} {tgl.year} · jenis: {jenis.strip()}\n"
              f"Tombol ajakan: WhatsApp   |   Gambar: {saran}\n{'=' * 64}")
    semua += [header, "--- salin dari sini ---", isi, "--- sampai sini ---", ""]
    with open(f"{DIR}/post_{int(nomor):02d}.txt", "w") as f:
        f.write(isi + "\n")

open(f"{WS}/drafts/tsc_gbp_postingan.txt", "w").write("\n".join(semua))
print(f"postingan: {len(blok)}")
print(f"→ drafts/tsc_gbp_postingan.txt")
print(f"→ drafts/tsc_gbp_postingan/post_01.txt … post_{len(blok):02d}.txt")
print("\ncontoh postingan pertama:")
print("\n".join(semua[3:14]))
