#!/usr/bin/env python3
"""
The Skin Code Clinic (TSC) — Threads Scheduler.
Post nested thread tiap hari tentang facial medis, perawatan kulit, estetika.
Prime time: 17:00/20:00/23:00 WIB.
Konten dari artikel klinik tanpa link website.
"""
import json, urllib.request, sys, os
from datetime import datetime, timezone, timedelta

from repliz_client import HEADERS, BASE
from threads_text_check import cek_teks_threads, ThreadsTextError

LOG_FILE = "/home/mantapman/.hermes/profiles/atun/workspace/threads_log.txt"
STATE_FILE = "/home/mantapman/.hermes/profiles/atun/workspace/tsc_threads_state.json"

WIB = timezone(timedelta(hours=7))

ACCOUNT = {
    "id": "6a4bbc5920e4f4f195e52960",
    "name": "The Skin Code Clinic",
}

# === BANK KONTEN TSC — The Skin Code Clinic ===
# Dari artikel klinik: facial medis, botox, chemical peeling, laser, microneedling, dll
# 10 series, ≤ 500 chars
CONTENT_SERIES = [
    # Series 1: Facial Medis
    [
        (
            "Facial medis vs facial biasa — jangan sampe salah pilih! 💆‍♀️\n"
            "\n"
            "Facial biasa di salon:\n"
            "🔸 Terapis umum, produk komersial\n"
            "🔸 Bersih-bersih standar\n"
            "\n"
            "Facial medis di klinik:\n"
            "✅ Dokter estetika profesional\n"
            "✅ Produk medis berkualitas tinggi\n"
            "✅ Alat steril & teknologi modern\n"
            "✅ Diagnosis kulit sebelum treatment\n"
            "\n"
            "Hasilnya beda banget! Yang penting: aman & optimal.\n"
            "Mau coba facial medis? 😊✨\n"
            "\n"
            "#TSCClinic #FacialMedis #KlinikKecantikan"
        ),
        (
            "6 manfaat facial medis yang wajib kamu tau! 👇\n"
            "\n"
            "1️⃣ Bersihin pori-pori dalam — kotoran & minyak terangkat tuntas\n"
            "2️⃣ Ngurangin jerawat & peradangan\n"
            "3️⃣ Cerahin kulit kusam — regenerasi sel baru\n"
            "4️⃣ Kontrol minyak berlebih — kulit gak kilap terus\n"
            "5️⃣ Kecilin pori-pori — tekstur kulit lebih halus\n"
            "6️⃣ Penyerapan skincare jadi maksimal\n"
            "\n"
            "Rutin facial medis = investasi jangka panjang buat kulit! 🎯\n"
            "\n"
            "#TSCClinic #FacialMedis #PerawatanWajah"
        ),
        (
            "Siapa aja yang cocok facial medis? 🤔\n"
            "\n"
            "✅ Kulit berminyak & berjerawat\n"
            "✅ Kulit sensitif — butuh penanganan dokter\n"
            "✅ Kulit kusam & gak bercahaya\n"
            "✅ Komedo membandel — udah pake produk tetep aja ada\n"
            "✅ Bekas jerawat — kombinasi facial + treatment lain\n"
            "\n"
            "Prosedurnya:\n"
            "🔹 Konsultasi & analisis kulit → diagnosis tepat\n"
            "🔹 Pembersihan + ekstraksi steril\n"
            "🔹 Chemical peeling ringan\n"
            "🔹 Masker medis + serum sesuai jenis kulit\n"
            "\n"
            "Konsultasi gratis dulu aja! 😊💬\n"
            "\n"
            "#TSCClinic #FacialMedis #DokterEstetika"
        ),
    ],
    # Series 2: Botox & Filler
    [
        (
            "Botox & filler — bedanya apa sih? 🤔💉\n"
            "\n"
            "BOTOX:\n"
            "🔸 Buat kerutan halus — dahi, mata, mulut\n"
            "🔸 Relaksasi otot — bikin wajah lebih mulus\n"
            "🔸 Hasil 3-6 bulan\n"
            "\n"
            "FILLER:\n"
            "🔸 Buat volume — pipi, bibir, dagu, hidung\n"
            "🔸 Isi jaringan yang kendur\n"
            "🔸 Hasil 6-18 bulan tergantung jenis\n"
            "\n"
            "Keduanya aman kalo dilakukan dokter estetika berpengalaman!\n"
            "Jangan asal — trust the expert! 👨‍⚕️✨\n"
            "\n"
            "#TSCClinic #Botox #Filler #Estetika"
        ),
        (
            "Mau botox tapi takut efek samping? Tenang, ini faktanya! 👇\n"
            "\n"
            "✅ Dilakukan dokter estetika — bukan sembarang orang\n"
            "✅ Dosis sesuai kebutuhan — gak berlebihan\n"
            "✅ Produk asli & tersertifikasi BPOM\n"
            "✅ Prosedur cepat — 15-30 menit\n"
            "\n"
            "Efek samping minimal kalo dilakukan profesional:\n"
            "🔸 Bengkak ringan — hilang 1-2 jam\n"
            "🔸 Memar kecil — hilang 2-3 hari\n"
            "\n"
            "Hasilnya? Wajah lebih fresh, kerutan hilang, lebih pede! 💃\n"
            "\n"
            "#TSCClinic #Botox #AntiAging"
        ),
        (
            "Filler bibir lagi tren — tapi jangan asal! 🫦⚠️\n"
            "\n"
            "Tips aman filler:\n"
            "✅ Cari klinik dengan dokter estetika — bukan beauty clinic abal\n"
            "✅ Minta lihat produk — pastikan BPOM & asli\n"
            "✅ Jangan minta volume berlebihan — natural lebih cantik\n"
            "✅ Tanya soal aftercare & masa pemulihan\n"
            "\n"
            "Yang terjadi kalo asal:\n"
            "❌ Bibir benjol gak simetris\n"
            "❌ Infeksi & iritasi\n"
            "❌ Produk palsu — bahaya banget!\n"
            "\n"
            "Trust the expert! Konsultasi dulu yuk 😊👨‍⚕️\n"
            "\n"
            "#TSCClinic #Filler #BibirSehat"
        ),
    ],
    # Series 3: Chemical Peeling
    [
        (
            "Chemical peeling — takut kulit ngelupas? Tenang, ini manfaatnya! 🧪✨\n"
            "\n"
            "Chemical peeling itu pengelupasan kulit terkontrol pake larutan\n"
            "kimia khusus. Dilakukan dokter, bukan beauty therapist biasa.\n"
            "\n"
            "Manfaat:\n"
            "✅ Angkat sel kulit mati\n"
            "✅ Cerahin kulit kusam\n"
            "✅ Kurangi bekas jerawat & flek hitam\n"
            "✅ Stimulasi kolagen — kulit lebih kencang\n"
            "\n"
            "Jenis peeling: ringan, sedang, dalam — disesuaikan kebutuhan.\n"
            "Konsultasi dulu biar dapet yang pas! 😊\n"
            "\n"
            "#TSCClinic #ChemicalPeeling #PerawatanKulit"
        ),
        (
            "Bekas jerawat bikin gak pede? Chemical peeling solusinya! 🎯\n"
            "\n"
            "Bekas jerawat jenis hiperpigmentasi (noda hitam) — peeling\n"
            "ringan-sedang bisa bantu banget!\n"
            "\n"
            "Prosesnya:\n"
            "🔸 Konsultasi & analisis kulit\n"
            "🔸 Aplikasi larutan peeling — 5-15 menit\n"
            "🔸 Netralisasi & perawatan lanjutan\n"
            "\n"
            "Hasil:\n"
            "✅ Flek hitam memudar bertahap\n"
            "✅ Tekstur kulit lebih rata\n"
            "✅ Wajah lebih glowing\n"
            "\n"
            "Butuh 4-6 sesi untuk hasil optimal. Sabar ya! 🥰\n"
            "\n"
            "#TSCClinic #ChemicalPeeling #BekasJerawat"
        ),
        (
            "Siapa yang cocok chemical peeling? Cek di sini! 🔍\n"
            "\n"
            "✅ Kulit kusam & gak bercahaya\n"
            "✅ Bekas jerawat (hiperpigmentasi)\n"
            "✅ Flek hitam / melasma\n"
            "✅ Kulit berminyak & komedo\n"
            "✅ Tanda penuaan ringan\n"
            "\n"
            "Yang TIDAK boleh:\n"
            "❌ Ibu hamil & menyusui\n"
            "❌ Kulit luka / infeksi aktif\n"
            "❌ Riwayat alergi bahan tertentu\n"
            "\n"
            "Konsultasi gratis dulu — biar dokter tentuin peeling yang pas! 🌟\n"
            "\n"
            "#TSCClinic #ChemicalPeeling #KonsultasiKulit"
        ),
    ],
    # Series 4: Laser Rejuvenation
    [
        (
            "Laser rejuvenation — teknologi bikin kulit awet muda! 🔦✨\n"
            "\n"
            "Bukan laser sembarangan — ini laser medis yang aman di tangan\n"
            "dokter estetika profesional.\n"
            "\n"
            "Manfaat:\n"
            "✅ Stimulasi kolagen & elastin\n"
            "✅ Kencangkan kulit kendur\n"
            "✅ Ratakan tekstur & warna kulit\n"
            "✅ Kurangi kerutan halus\n"
            "✅ Kecilin pori-pori\n"
            "\n"
            "Minimal downtime — bisa langsung aktivitas ringan!\n"
            "Mau kulit kencang tanpa operasi? 😊💫\n"
            "\n"
            "#TSCClinic #LaserRejuvenation #AwetMuda"
        ),
        (
            "Bedanya laser ablatif vs non-ablatif? 🤔\n"
            "\n"
            "LASER ABLATIF:\n"
            "🔸 Lapisan kulit atas diangkat\n"
            "🔸 Hasil lebih drastis\n"
            "🔸 Downtime 5-10 hari\n"
            "\n"
            "LASER NON-ABLATIF:\n"
            "🔸 Panas di lapisan kulit dalam\n"
            "🔸 Kulit luar tetap utuh\n"
            "🔸 Downtime minimal (redness 1-2 jam)\n"
            "🔸 Butuh beberapa sesi\n"
            "\n"
            "Mana yang cocok? Tergantung kondisi kulit & tujuan perawatan.\n"
            "Dokter bakal recommend sesuai kebutuhan! 👨‍⚕️💡\n"
            "\n"
            "#TSCClinic #LaserRejuvenation #PerawatanKulit"
        ),
        (
            "Persiapan sebelum laser rejuvenation — jangan skip! 📋\n"
            "\n"
            "❌ Stop retinol & AHA/BHA 3-5 hari sebelum\n"
            "❌ Hindari paparan matahari berlebihan\n"
            "❌ Jangan lakukan scrub / eksfoliasi 3 hari sebelumnya\n"
            "\n"
            "Sesudah:\n"
            "✅ Pakai sunscreen SPF 30+ tiap hari\n"
            "✅ Pelembap ringan — jaga kelembapan\n"
            "✅ Hindari makeup 12-24 jam\n"
            "✅ Jangan panasin wajah (sauna, olahraga berat) 2-3 hari\n"
            "\n"
            "Patuhi instruksi dokter biar hasil maksimal! 💪😊\n"
            "\n"
            "#TSCClinic #LaserRejuvenation #Aftercare"
        ),
    ],
    # Series 5: Microneedling
    [
        (
            "Microneedling — jarum kecil di wajah? Jangan takut dulu! 📍✨\n"
            "\n"
            "Microneedling pakai alat Dermapen dengan jarum mikrosteril\n"
            "yang menusuk lapisan kulit superfisial.\n"
            "\n"
            "Kedengarannya serem, tapi ini manfaatnya:\n"
            "✅ Stimulasi kolagen maksimal\n"
            "✅ Kencangkan kulit kendur\n"
            "✅ Ratakan bekas jerawat\n"
            "✅ Kecilin pori-pori\n"
            "✅ Penyerapan serum lebih optimal\n"
            "\n"
            "Dilakukan dokter estetika dengan teknik steril & anestesi lokal.\n"
            "Gak seserem yang dibayangin kok! 😊\n"
            "\n"
            "#TSCClinic #Microneedling #Dermapen"
        ),
        (
            "Bekas jerawat bolong-bolong? Microneedling jawabannya! 🎯\n"
            "\n"
            "Bekas jerawat jenis atrofik (cekung) susah dihilangkan\n"
            "pake skincare biasa — perlu treatment klinik.\n"
            "\n"
            "Microneedling bikin:\n"
            "🔸 Kolagen baru terbentuk di area bekas jerawat\n"
            "🔸 Kulit terisi & rata perlahan\n"
            "🔸 Tekstur kulit makin halus\n"
            "\n"
            "Butuh 3-6 sesi untuk hasil optimal, jarak 4-6 minggu.\n"
            "Hasilnya? Wajah mulus tanpa bekas! 💫🥰\n"
            "\n"
            "#TSCClinic #Microneedling #BekasJerawat"
        ),
        (
            "Microneedling + PRP — kombinasi mantep buat kulit! 🔥\n"
            "\n"
            "PRP (Platelet Rich Plasma) = plasma kaya trombosit dari\n"
            "darah kamu sendiri, dioleskan setelah microneedling.\n"
            "\n"
            "Kenapa jadi lebih maksimal?\n"
            "✅ Kolagen terstimulasi 2x lipat\n"
            "✅ Proses penyembuhan lebih cepat\n"
            "✅ Hasil lebih optimal\n"
            "✅ Bahan dari darah sendiri — zero alergi\n"
            "\n"
            "Vampire facial? Yep, itu istilahnya! Tapi hasilnya bikin\n"
            "wajah glowing maksimal! 🧛‍♀️✨\n"
            "\n"
            "#TSCClinic #Microneedling #PRP #VampireFacial"
        ),
    ],
    # Series 6: Perawatan Kulit Berminyak
    [
        (
            "Kulit berminyak — musuh bebuyutan yang bikin sebel! 😤\n"
            "\n"
            "Faktanya:\n"
            "🔸 Minyak berlebih = pori-pori gampang tersumbat\n"
            "🔸 = jerawat & komedo muncul\n"
            "🔸 = makeup gampang luntur\n"
            "\n"
            "Solusi dari klinik:\n"
            "✅ Facial medis rutin — kontrol minyak\n"
            "✅ Chemical peeling — angkat sel kulit mati\n"
            "✅ Laser — kecilin produksi minyak\n"
            "✅ Skincare sesuai resep dokter\n"
            "\n"
            "Jangan over-wash! Cuci muka cukup 2x sehari.\n"
            "Konsultasi gratis di klinik, yuk! 😊💆‍♀️\n"
            "\n"
            "#TSCClinic #KulitBerminyak #PerawatanWajah"
        ),
        (
            "Mit vs fakta soal kulit berminyak — cek dulu! 🧐\n"
            "\n"
            "MITOS ❌\n"
            "\"Kulit berminyak gak perlu pelembap\"\n"
            "Fakta: justru butuh pelembap ringan biar gak produksi minyak\n"
            "berlebih sebagai kompensasi.\n"
            "\n"
            "MITOS ❌\n"
            "\"Cuci muka sering-sering biar kering\"\n"
            "Fakta: over-wash bikin kulit iritasi & minyak makin banyak.\n"
            "\n"
            "MITOS ❌\n"
            "\"Pakai toner alkohol biar kering\"\n"
            "Fakta: alkohol merusak skin barrier! Hindari! 🚫\n"
            "\n"
            "#TSCClinic #KulitBerminyak #SkincareFakta"
        ),
        (
            "Rekomendasi skincare untuk kulit berminyak dari dokter! 👩‍⚕️📋\n"
            "\n"
            "🌅 PAGI:\n"
            "• Face wash gentle — jangan yang keras\n"
            "• Toner tanpa alkohol\n"
            "• Serum niacinamide / salicylic acid\n"
            "• Pelembap gel-based\n"
            "• Sunscreen SPF 30+ (WAJIB!)\n"
            "\n"
            "🌙 MALAM:\n"
            "• Double cleansing\n"
            "• Treatment (retinol/AHA — sesuai resep)\n"
            "• Pelembap ringan\n"
            "\n"
            "Kombinasi treatment klinik + skincare rutin = hasil maksimal! ✨\n"
            "\n"
            "#TSCClinic #SkincareRutin #KulitBerminyak"
        ),
    ],
    # Series 7: Body Contouring
    [
        (
            "Body contouring — bentuk tubuh ideal tanpa operasi! 💃✨\n"
            "\n"
            "Teknologi non-invasif yang bantu:\n"
            "✅ Kencangkan kulit kendur\n"
            "✅ Kurangi lemak lokal — perut, lengan, paha\n"
            "✅ Haluskan selulit\n"
            "✅ Bentuk body silhouette\n"
            "\n"
            "Gak perlu cuti panjang — bisa langsung aktivitas!\n"
            "Cocok buat yang:\n"
            "🔸 Setelah diet — kulit kendur butuh dikencangin\n"
            "🔸 Setelah melahirkan — body recovery\n"
            "🔸 Lemak membandel yang gak bisa hilang dengan olahraga\n"
            "\n"
            "#TSCClinic #BodyContouring #BodyGoals"
        ),
        (
            "Cryolipolysis — bakar lemak pake dingin! ❄️🔥\n"
            "\n"
            "Teknologi cold fat reduction:\n"
            "🔹 Lemak dibekukan pakai suhu rendah\n"
            "🔹 Sel lemak mati & dikeluarkan tubuh alami\n"
            "🔹 Hasil bertahap 1-3 bulan\n"
            "\n"
            "Kelebihan:\n"
            "✅ Non-invasif — tanpa jarum & pisau\n"
            "✅ Aman — cuma sel lemak yang kena, jaringan lain aman\n"
            "✅ No downtime — langsung beraktivitas\n"
            "✅ Hasil permanen — lemak gak balik (asalkan jaga pola hidup)\n"
            "\n"
            "Biar makin pede sama body goals! 🎯😊\n"
            "\n"
            "#TSCClinic #Cryolipolysis #BodyContouring"
        ),
        (
            "Radiofrequency untuk body tightening — kencangkan kulit tanpa operasi! 📡\n"
            "\n"
            "Cara kerja:\n"
            "🔸 Gelombang radio panas menembus lapisan kulit\n"
            "🔸 Stimulasi kolagen & elastin\n"
            "🔸 Kulit jadi lebih kencang & elastis\n"
            "\n"
            "Cocok buat:\n"
            "✅ Kulit kendur setelah hamil\n"
            "✅ Kulit kendur setelah turun berat badan\n"
            "✅ Selulit di paha & bokong\n"
            "✅ Lengan kendur\n"
            "\n"
            "Hasil terlihat setelah 3-6 sesi. Nyaman & tanpa sakit! 😊✨\n"
            "\n"
            "#TSCClinic #Radiofrequency #BodyTightening"
        ),
    ],
    # Series 8: Anti Aging
    [
        (
            "Tanda-tanda penuaan kulit — kenali sejak dini! 👀\n"
            "\n"
            "🔸 Kerutan halus — pertama muncul di sudut mata & dahi\n"
            "🔸 Kulit kendur — elastisitas menurun\n"
            "🔸 Flek hitam — akibat paparan matahari\n"
            "🔸 Kulit kusam — regenerasi sel melambat\n"
            "🔸 Pori-pori membesar\n"
            "\n"
            "Faktor penyebab:\n"
            "🔹 Usia — proses alami\n"
            "🔹 Paparan sinar UV — #1 penyebab penuaan dini\n"
            "🔹 Polusi & gaya hidup — merokok, kurang tidur\n"
            "\n"
            "Solusi? Kombinasi treatment klinik + skincare + gaya hidup sehat! 💪✨\n"
            "\n"
            "#TSCClinic #AntiAging #PerawatanKulit"
        ),
        (
            "Rutinitas anti aging — mulai dari sekarang! ⏰\n"
            "\n"
            "🌅 PAGI:\n"
            "• Vitamin C serum — antioksidan kuat\n"
            "• Pelembap dengan SPF\n"
            "• Sunscreen — REAPPLY tiap 2-4 jam\n"
            "\n"
            "🌙 MALAM:\n"
            "• Retinol — stimulasi kolagen (mulai kadar rendah)\n"
            "• Peptida serum — kencangkan kulit\n"
            "• Pelembap kaya nutrisi\n"
            "\n"
            "Treatment klinik:\n"
            "• Chemical peeling tiap 3-4 minggu\n"
            "• Microneedling / laser tiap 4-6 minggu\n"
            "• Botox & filler — untuk hasil optimal\n"
            "\n"
            "Konsultasi gratis dulu, yuk! 🥰\n"
            "\n"
            "#TSCClinic #AntiAging #SkincareRutin"
        ),
        (
            "Skin aging — bisa dicegah! Ini yang perlu kamu lakukan 🛡️\n"
            "\n"
            "1️⃣ SUNSCREEN setiap hari — bahkan di rumah / mendung\n"
            "2️⃣ Antioksidan — vitamin C, E, ferulic acid\n"
            "3️⃣ Retinol — gold standard anti aging\n"
            "4️⃣ Hidrasi — minum air & pelembap\n"
            "5️⃣ Tidur cukup — regenerasi kulit terjadi pas tidur\n"
            "6️⃣ Treatment rutin di klinik — facial, peeling, laser\n"
            "\n"
            "Usia 25+ udah boleh mulai anti aging routine loh!\n"
            "Jangan nunggu kerutan baru bergerak! 🔥😊\n"
            "\n"
            "#TSCClinic #AntiAging #SkinCeuticals"
        ),
    ],
    # Series 9: 7 Manfaat Facial Medis
    [
        (
            "7 manfaat facial medis — nomor 5 favorit banget! 🏆\n"
            "\n"
            "1️⃣ Bersihin pori-pori dalam — angkat komedo & kotoran\n"
            "2️⃣ Kurangi jerawat & peradangan — mencegah jerawat baru\n"
            "3️⃣ Cerahin kulit — bye-bye kulit kusam!\n"
            "4️⃣ Kontrol minyak — gak kilap terus\n"
            "5️⃣ Pori-pori mengecil — tekstur kulit lebih halus\n"
            "6️⃣ Anti aging — stimulasi kolagen\n"
            "7️⃣ Skincare lebih maksimal — kulit siap menyerap nutrisi\n"
            "\n"
            "Rutin sebulan sekali aja udah keliatan bedanya! ✨💫\n"
            "\n"
            "#TSCClinic #FacialMedis #ManfaatFacial"
        ),
        (
            "Fakta: facial medis bukan cuma buat yang punya masalah kulit aja! 🙌\n"
            "\n"
            "Kulit sehat pun tetap butuh perawatan rutin:\n"
            "✅ Buang sel kulit mati — regenerasi\n"
            "✅ Stimulasi sirkulasi darah — wajah lebih fresh\n"
            "✅ Deteksi dini masalah kulit — dokter bisa lihat\n"
            "✅ Relaksasi — me time yang berkualitas\n"
            "\n"
            "Ibarat mobil, kulit juga perlu servis rutin.\n"
            "Jangan nunggu rusak baru dirawat! 🚗💨\n"
            "\n"
            "#TSCClinic #FacialMedis #SelfCare"
        ),
        (
            "Perawatan setelah facial medis — jangan asal! ⚠️\n"
            "\n"
            "✅ Pakai sunscreen SPF 30+ setiap hari\n"
            "✅ Hindari makeup 12-24 jam\n"
            "✅ Jangan sentuh / pencet wajah\n"
            "✅ Pakai pelembap ringan sesuai rekomendasi dokter\n"
            "✅ Hindari aktivitas yang bikin wajah berkeringat\n"
            "\n"
            "❌ Jangan pakai retinol/AHA 3-5 hari setelah\n"
            "❌ Jangan scrub / eksfoliasi\n"
            "❌ Jangan berenang / sauna 2-3 hari\n"
            "\n"
            "Ikuti instruksi dokter biar hasil maksimal & kulit aman! 🥰\n"
            "\n"
            "#TSCClinic #Aftercare #FacialMedis"
        ),
    ],
    # Series 10: Tips Pilih Klinik
    [
        (
            "Tips milih klinik kecantikan — jangan asal pilih! 🔍\n"
            "\n"
            "1️⃣ Cek tenaga medis — apakah ada dokter estetika?\n"
            "2️⃣ Cek legalitas — izin klinik & BPOM produk\n"
            "3️⃣ Cek testimoni — real review pasien\n"
            "4️⃣ Cek kebersihan — ruang treatment & alat steril\n"
            "5️⃣ Cek transparansi — harga jelas, gak ada biaya tersembunyi\n"
            "\n"
            "Klinik abal-abal banyak! Jangan sampe kamu jadi korban.\n"
            "Murah di awal, mahal di akhir — atau bahkan bahaya! 😱\n"
            "\n"
            "Pilih klinik yang terpercaya! 😊✅\n"
            "\n"
            "#TSCClinic #TipsKlinik #KlinikKecantikan"
        ),
        (
            "Konsultasi gratis sebelum treatment — itu WAJIB ada! 🆓\n"
            "\n"
            "Kenapa penting:\n"
            "✅ Dokter bisa analisis kondisi kulit kamu\n"
            "✅ Kamu bisa tanya apa aja tanpa dipaksa beli paket\n"
            "✅ Treatment disesuaikan kebutuhan — bukan harga termahal\n"
            "✅ Kamu tau pro & kontra sebelum ambil keputusan\n"
            "\n"
            "Klinik profesional TIDAK akan:\n"
            "❌ Paksa kamu ambil paket mahal\n"
            "❌ Janji hasil instan & berlebihan\n"
            "❌ Skip konsultasi demi buru-buru treatment\n"
            "\n"
            "Konsultasi dulu — baru treatment! 🗣️👩‍⚕️\n"
            "\n"
            "#TSCClinic #KonsultasiGratis #KlinikKecantikan"
        ),
        (
            "Yang membedakan klinik kecantikan profesional dari yang abal-abal: 🏥\n"
            "\n"
            "KLINIK PROFESIONAL:\n"
            "✅ Ada dokter estetika — bukan terapis\n"
            "✅ Produk medis BPOM — jelas asalnya\n"
            "✅ Ruang steril — standar medis\n"
            "✅ Konsultasi & diagnosis sebelum treatment\n"
            "✅ Transparan — harga & prosedur jelas\n"
            "\n"
            "KLINIK ABAL:\n"
            "❌ Tanpa dokter — cuma beauty therapist\n"
            "❌ Produk gak jelas — no BPOM\n"
            "❌ Harga murah — treatment asal-asalan\n"
            "\n"
            "Jangan taruh muka & badan kamu di tempat abal! 🛡️😊\n"
            "\n"
            "#TSCClinic #TipsKlinik #KlinikAbal"
        ),
    ],
]


def enforce_max_chars(text, maxlen=500):
    """VALIDASI KETAT (FIXED 5 Agustus 2026): teks harus <= maxlen & semua link nyala.
    Kalau tidak lolos -> return None (JANGAN dipotong, JANGAN dikirim)."""
    try:
        return cek_teks_threads(text, label="Caption Threads", maxlen=maxlen)
    except ThreadsTextError as e:
        print(f"  SKIP: {e}")
        return None



def load_state():
    if not os.path.exists(STATE_FILE):
        return {"last_series": -1}
    with open(STATE_FILE) as f:
        return json.load(f)


def save_state(state):
    with open(STATE_FILE, "w") as f:
        json.dump(state, f)


def log_result(series_idx, date_str, ids):
    entry = f"TSC | Series {series_idx+1} | {date_str} | IDs: {', '.join(ids)}\n"
    with open(LOG_FILE, "a") as f:
        f.write(entry)


def schedule(text, scheduleAt_iso, parentId=None):
    text = enforce_max_chars(text)
    if text is None:
        return None
    payload = {
        'title': '', 'description': text, 'topic': 'Kecantikan', 'type': 'text',
        'medias': [], 'meta': {'title': '', 'description': '', 'url': ''},
        'additionalInfo': {
            'isAiGenerated': False, 'isDraft': False,
            'collaborators': [], 'mentions': [],
            'music': {'id': '', 'artist': '', 'name': '', 'thumbnail': ''},
            'products': [], 'tags': []
        },
        'replies': [], 'accountId': ACCOUNT["id"], 'scheduleAt': scheduleAt_iso,
    }
    if parentId:
        payload['replies'] = [parentId]

    body = json.dumps(payload).encode()
    req = urllib.request.Request(f'{BASE}/public/schedule', data=body, headers=HEADERS, method='POST')
    try:
        with urllib.request.urlopen(req) as r:
            result = json.loads(r.read())
            sid = result.get('scheduleId', '?')
            print(f'  ✅ {sid}')
            return sid
    except urllib.error.HTTPError as e:
        err = e.read().decode()
        print(f'  ❌ ERROR {e.code}: {err[:200]}')
        return None


def main():
    print('🏥 The Skin Code Clinic — Daily Scheduler')
    print('=' * 50)

    state = load_state()
    last_series = state.get("last_series", -1)
    next_series = (last_series + 1) % len(CONTENT_SERIES)
    series = CONTENT_SERIES[next_series]

    today = datetime.now(WIB).date()
    slots = [
        f'{today.isoformat()}T17:00:00+07:00',
        f'{today.isoformat()}T20:00:00+07:00',
        f'{today.isoformat()}T23:00:00+07:00',
    ]

    titles = [
        "Facial Medis", "Botox & Filler", "Chemical Peeling",
        "Laser Rejuvenation", "Microneedling", "Kulit Berminyak",
        "Body Contouring", "Anti Aging", "7 Manfaat Facial Medis",
        "Tips Pilih Klinik"
    ]

    print(f'\n📅 {today.isoformat()}')
    series_title = titles[next_series] if next_series < len(titles) else "Perawatan Kulit"
    print(f'📋 Series {next_series + 1} of {len(CONTENT_SERIES)}: {series_title}')
    print()

    ids = []
    prev = None
    for i, (post, slot) in enumerate(zip(series, slots)):
        print(f'  Post {i+1} ({slot[11:16]} WIB):')
        sid = schedule(post, slot, parentId=prev)
        if sid:
            ids.append(sid)
            prev = sid
        else:
            print(f'    ❌ Gagal di post {i+1}')
            break

    if len(ids) == 3:
        print(f'\n{"="*50}')
        print('✅ TSC SUCCESS!')
        for i, sid in enumerate(ids):
            print(f'  {slots[i][11:16]} WIB → ID: {sid}')
        log_result(next_series, str(today), ids)
        state["last_series"] = next_series
        save_state(state)

        note = f"TSC Threads | {today} Series {next_series+1}: {series_title}"
        with open(LOG_FILE, "a") as f:
            f.write(f"  📌 {note}\n")


if __name__ == "__main__":
    main()

