#!/usr/bin/env python3
"""Diskusi Engine — menambahkan pancingan diskusi ke caption untuk SEMUA akun.
Tone: netral (default), opini (kontroversial ringan), sanjungan (apresiasi).
Tetap menghormati aturan: bahasa Indonesia, sopan, Threads ≤500 karakter.

Pemakaian:
    from diskusi_engine import tambahkan_diskusi
    caption_baru = tambahkan_diskusi(caption, platform="threads", industri="seo", tone="opini")

    # atau pancingan terpisah:
    from diskusi_engine import ambil_pancingan
    kalimat = ambil_pancingan(industri="klinik", tone="sanjungan")
"""
import random

# ── PANCINGAN DISKUSI PER INDUSTRI ──
# tone: netral / opini / sanjungan
PANCINGAN = {
    "umum": {
        "netral": [
            "Menurut Anda, bagaimana cara terbaik menghadapi situasi ini? Ceritakan di kolom komentar ya.",
            "Setuju dengan pendapat ini? Atau punya pandangan berbeda? Yuk diskusi.",
            "Bagaimana pengalaman Anda? Share di komentar biar kita sama-sama belajar.",
            "Menarik bukan? Apa tanggapan Anda soal ini?",
        ],
        "opini": [
            "Jujur saja, banyak orang masih menyepelekan hal ini — padahal dampaknya besar. Setuju?",
            "Ini mungkin pendapat yang bikin pro-kontra: kebanyakan orang lebih memilih jalan pintas daripada cara yang benar. Bagaimana menurut Anda?",
            "Bold statement: yang sering dianggap sepele justru paling menentukan. Anda setuju atau tidak?",
        ],
        "sanjungan": [
            "Kalau sudah paham konsep ini, berarti Anda punya naluri yang bagus dalam bisnis. 👏",
            "Terima kasih buat yang sudah konsisten menerapkan ini — itu langkah yang jarang dilakukan banyak orang.",
            "Buat yang sudah mempraktikkan ini, Anda pasti merasakan bedanya. Bangga sama Anda!",
        ],
    },
    "seo": {
        "netral": [
            "Pengalaman Anda gimana soal SEO? Dulu pernah pakai jasa SEO atau belajar sendiri? Share dong.",
            "Menurut Anda, SEO masih relevan di era AI sekarang? Mau dengar pendapat Anda.",
            "Kata kunci apa yang paling susah Anda rankingkan? Ceritakan di kolom komentar.",
        ],
        "opini": [
            "Banyak yang salah kaprah: SEO dianggap instan, padahal butuh proses. Yang setuju SEO itu investasi jangka panjang, angkat tangan. 🙋",
            "Kontroversial nih: website bagus tanpa SEO itu seperti toko di tengah hutan. Kasar tapi nyata. Setuju?",
            "Banyak yang buang uang di iklan tapi lupa SEO yang hasilnya justru lebih tahan lama. Pernah ngalamin juga?",
        ],
        "sanjungan": [
            "Buat yang sudah mulai konsisten riset kata kunci — Anda sudah selangkah lebih maju dari kebanyakan pebisnis. 👍",
            "Melihat klien kami yang sabar menunggu hasil SEO, kami salut. Kesabaran itu yang bikin hasilnya manis.",
            "Anda yang rutin update konten website, itu kebiasaan emas yang jarang dimiliki orang. Lanjutkan!",
        ],
    },
    "digital_marketing": {
        "netral": [
            "Strategi digital marketing apa yang paling berhasil untuk bisnis Anda sejauh ini?",
            "Kalau harus pilih satu platform untuk fokus tahun ini, pilih yang mana — dan kenapa?",
            "Berapa lama Anda bertahan sebelum melihat hasil dari digital marketing? Share pengalamannya.",
        ],
        "opini": [
            "Jujur, banyak UMKM gagal bukan karena produk jelek, tapi karena tidak pernah serius di digital. Pedas tapi nyata. Setuju?",
            "Konten yang bagus tanpa strategi itu cuma hiasan. Yang penting bukan sekadar rajin posting, tapi posting yang tepat. Anda setuju?",
            "Pertanyaan kontroversial: apakah bisnis kecil benar-benar butuh iklan berbayar, atau cukup organik dulu?",
        ],
        "sanjungan": [
            "Terima kasih untuk para pebisnis yang sudah berani mencoba hal baru di digital — itu keberanian yang layak diapresiasi! 👏",
            "Klien-klien kami yang konsisten selalu menuai hasil. Anda yang konsisten juga pasti akan sampai di sana.",
            "Bangga melihat UMKM lokal makin melek digital. Indonesia butuh lebih banyak pebisnis seperti Anda!",
        ],
    },
    "klinik": {
        "netral": [
            "Kapan terakhir kali Anda melakukan cek kesehatan kulit? Rutin atau baru kalau ada masalah?",
            "Apa yang paling Anda perhatikan saat memilih klinik kecantikan? Share dong.",
            "Menurut Anda, skincare yang benar itu mulai dari mana? Mau dengar pendapat Anda.",
        ],
        "opini": [
            "Bold statement: jangan asal ikut tren skincare viral — kulit Anda bukan tempat uji coba. Setuju?",
            "Banyak orang rela beli produk mahal tapi malas konsultasi dokter. Padahal diagnosis itu kuncinya. Sepakat?",
            "Kontroversial: lebih baik investasi ke treatment yang tepat daripada numpuk 10 produk yang belum tentu cocok. Anda tim mana?",
        ],
        "sanjungan": [
            "Terima kasih untuk pasien kami yang sudah percaya dan rutin perawatan — hasilnya pasti sepadan! 💛",
            "Anda yang sudah mulai rajin merawat kulit dari sekarang, itu investasi terbaik untuk diri sendiri.",
            "Kami bangga bisa jadi bagian dari perjalanan kesehatan kulit Anda. Terus jaga konsistensinya ya!",
        ],
    },
    "rumah_sakit": {
        "netral": [
            "Apa hal pertama yang Anda cari saat memilih rumah sakit untuk keluarga?",
            "Menurut Anda, kualitas layanan RS itu diukur dari apa? Share pendapat Anda.",
            "Pengalaman apa yang bikin Anda nyaman (atau tidak nyaman) dengan sebuah RS?",
        ],
        "opini": [
            "Fakta: banyak ibu lebih pilih RS karena fasilitas, padahal yang paling menentukan adalah penanganan medisnya. Setuju?",
            "Kesehatan ibu dan anak bukan tempat untuk coba-coba — pilih yang benar-benar profesional. Pedas tapi penting. Sepakat?",
            "Kontroversial: RS yang ramai belum tentu yang terbaik. Kadang yang sepi justru lebih telaten. Bagaimana menurut Anda?",
        ],
        "sanjungan": [
            "Terima kasih untuk para orang tua yang selalu mengutamakan kesehatan buah hatinya — kami bangga mendampingi! 💙",
            "Salut untuk para ibu yang selalu teliti memilih layanan kesehatan terbaik untuk keluarga. Anda luar biasa!",
            "Kepercayaan Anda adalah motivasi terbesar kami untuk terus memberikan pelayanan terbaik. 🙏",
        ],
    },
    "apotek": {
        "netral": [
            "Kebiasaan apa yang Anda lakukan supaya keluarga tetap sehat? Share dong.",
            "Menurut Anda, obat generik vs obat paten — mana yang lebih Anda percaya?",
            "Apa tips Anda supaya tidak lupa minum obat? Ceritakan di komentar!",
        ],
        "opini": [
            "Fakta yang sering diabaikan: membeli obat tanpa konsultasi apoteker itu berisiko. Pedas tapi penting. Setuju?",
            "Jangan asal beli obat karena viral — tubuh Anda beda dengan orang lain. Yang setuju, komen di sini!",
            "Kontroversial: lebih baik mencegah dengan pola hidup sehat daripada sibuk cari obat setelah sakit. Anda tim mana?",
        ],
        "sanjungan": [
            "Terima kasih untuk para orang tua yang selalu teliti memilih obat untuk keluarganya — kami bangga melayani! 💚",
            "Anda yang sudah rutin menjaga kesehatan keluarga, itu kebiasaan emas yang layak diapresiasi!",
            "Kepercayaan Anda kepada kami adalah tanggung jawab yang kami jaga dengan sepenuh hati. 🙏",
        ],
    },
    "hukum": {
        "netral": [
            "Menurut Anda, hal apa yang paling sering dilupakan UMKM dalam urusan legalitas bisnis?",
            "Pernah menghadapi sengketa bisnis? Bagaimana cara Anda menyelesaikannya?",
            "Seberapa penting menurut Anda kontrak tertulis untuk transaksi bisnis sekecil apa pun?",
        ],
        "opini": [
            "Banyak bisnis baru sadar pentingnya kontrak setelah kena masalah. Padahal mencegah selalu lebih murah daripada mengobati. Setuju?",
            "Bold statement: hubungan bisnis tanpa kontrak itu seperti naik motor tanpa helm — aman-aman saja sampai tidak. Sepakat?",
            "Kontroversial: lebih baik mengeluarkan biaya hukum di awal daripada kehilangan lebih banyak di akhir. Anda tim mana?",
        ],
        "sanjungan": [
            "Salut untuk para pebisnis yang sudah sadar pentingnya legalitas sejak dini — itu tanda bisnis yang dewasa! 👏",
            "Terima kasih untuk klien kami yang percaya pada proses hukum yang benar. Hasil yang adil butuh fondasi yang kuat.",
            "Anda yang sudah melengkapi legalitas usaha, selangkah lebih maju dari kebanyakan pebisnis lain. Lanjutkan!",
        ],
    },
    "pendidikan": {
        "netral": [
            "Menurut Anda, skill apa yang paling penting diajarkan ke anak selain akademik?",
            "Bagaimana cara Anda membangun kebiasaan belajar di rumah? Share tipsnya!",
            "Di usia berapa menurut Anda anak sebaiknya mulai belajar bahasa asing?",
        ],
        "opini": [
            "Fakta: nilai akademik bagus tanpa soft skill itu seperti mobil bagus tanpa mesin. Setuju?",
            "Banyak orang tua fokus ke nilai, tapi lupa bahwa percaya diri dan public speaking juga menentukan masa depan anak. Sepakat?",
            "Kontroversial: belajar bahasa asing itu bukan sekadar bisa ngomong, tapi membentuk cara berpikir. Anda setuju?",
        ],
        "sanjungan": [
            "Salut untuk para orang tua yang konsisten mendampingi tumbuh kembang anak — itu investasi terbaik! 💛",
            "Terima kasih untuk siswa-siswi kami yang semangat belajarnya luar biasa. Masa depan cerah menanti kalian!",
            "Anda yang percaya bahwa pendidikan adalah jalan terbaik, Anda sedang membangun masa depan yang kuat. 👏",
        ],
    },
    "otomotif": {
        "netral": [
            "Kapan terakhir kali Anda servis mobil? Rutin atau baru kalau ada masalah?",
            "Apa yang paling Anda pertimbangkan saat memilih bengkel? Share dong.",
            "Pernah mengalami mesin bermasalah di tengah perjalanan? Ceritakan!",
        ],
        "opini": [
            "Bold statement: bengkel umum dan bengkel spesialis itu beda — mesin modern tidak bisa disamakan perawatannya. Setuju?",
            "Banyak pemilik mobil baru sadar pentingnya perawatan setelah rusak parah. Padahal mencegah selalu lebih murah. Sepakat?",
            "Kontroversial: servis di bengkel spesialis itu bukan mahal, tapi lebih murah daripada salah diagnosis di bengkel umum. Anda tim mana?",
        ],
        "sanjungan": [
            "Salut untuk para pemilik mobil yang rajin servis berkala — kendaraannya pasti awet! 🚗",
            "Terima kasih untuk pelanggan kami yang sudah percaya menitipkan kendaraannya. Kepercayaan Anda tidak pernah kami sia-siakan!",
            "Anda yang teliti merawat mobil, itu investasi yang kelak terbayar. Lanjutkan kebiasaan baiknya!",
        ],
    },
    "kreatif": {
        "netral": [
            "Menurut Anda, elemen apa yang paling penting dalam sebuah desain?",
            "Branding yang berkesan itu seperti apa menurut Anda? Share contoh favoritnya!",
            "Pernah ganti identitas visual brand? Bagaimana respons pelanggan Anda?",
        ],
        "opini": [
            "Bold statement: desain yang bagus itu bukan sekadar cantik — tapi membuat orang ingat dan percaya. Setuju?",
            "Banyak bisnis menyepelekan desain, padahal kesan pertama menentukan keputusan. Pedas tapi nyata. Sepakat?",
            "Kontroversial: lebih baik budget besar untuk konten visual yang konsisten daripada bergonta-ganti gaya. Anda tim mana?",
        ],
        "sanjungan": [
            "Untuk para pebisnis yang peduli pada detail visual — Anda sudah paham bahwa kesan pertama itu segalanya! 👏",
            "Terima kasih untuk klien yang percaya pada proses kreatif kami. Hasil terbaik lahir dari kepercayaan!",
            "Anda yang berani tampil beda di tengah pasar yang ramai, itu keberanian yang layak diapresiasi!",
        ],
    },
    "personal_branding": {
        "netral": [
            "Menurut Anda, apa yang paling menentukan kesan pertama seseorang di dunia digital?",
            "Bagaimana cara Anda membangun personal branding? Share pengalamannya!",
            "Platform mana yang paling efektif untuk personal branding menurut Anda?",
        ],
        "opini": [
            "Bold statement: di era AI, orang tidak lagi mencari jawaban — mereka mencari siapa yang paling dipercaya. Setuju?",
            "Banyak orang sibuk membangun bisnis tapi lupa membangun diri sendiri sebagai brand. Padahal itu aset terbesar. Sepakat?",
            "Kontroversial: eksistensi tanpa konsistensi itu cuma noise. Lebih baik jarang posting tapi bermakna. Anda tim mana?",
        ],
        "sanjungan": [
            "Salut untuk yang sudah berani tampil dan berbagi di media sosial — itu langkah berani yang banyak orang takuti! 👏",
            "Anda yang konsisten membangun personal branding, sedang menabung aset yang tidak akan pernah rugi.",
            "Terima kasih untuk para profesional yang berani berbagi ilmu — dunia digital jadi lebih bermanfaat karena Anda!",
        ],
    },
    "kesehatan": {
        "netral": [
            "Apa kebiasaan sehat paling sederhana yang paling berdampak buat Anda?",
            "Menurut Anda, kenapa banyak orang sulit konsisten menjaga kesehatan?",
            "Pernah merasakan manfaat besar dari perubahan gaya hidup? Ceritakan!",
        ],
        "opini": [
            "Fakta: kesehatan itu seperti rekening — kalau tidak pernah diisi, lama-lama kosong. Setuju?",
            "Banyak orang rela bayar mahal untuk pengobatan, tapi pelit untuk pencegahan. Ironis tapi nyata. Sepakat?",
            "Kontroversial: lebih baik capek berolahraga sekarang daripada capek di rumah sakit nanti. Anda tim mana?",
        ],
        "sanjungan": [
            "Salut untuk Anda yang mulai peduli pada kesehatan sejak dini — itu keputusan paling bijak! 💚",
            "Terima kasih untuk pasien kami yang percaya pada penanganan medis yang tepat. Kesehatan Anda prioritas kami!",
            "Anda yang konsisten menjaga pola hidup sehat, sedang memberi hadiah terbaik untuk diri sendiri. 👏",
        ],
    },
    "kecantikan": {
        "netral": [
            "Rutinitas skincare Anda dimulai dari langkah apa? Share dong!",
            "Menurut Anda, treatment kecantikan yang paling worth it itu apa?",
            "Bagaimana cara Anda memilih produk skincare yang tepat?",
        ],
        "opini": [
            "Bold statement: skincare termahal belum tentu yang terbaik untuk kulit Anda. Yang penting cocok dan konsisten. Setuju?",
            "Banyak orang menumpuk produk tanpa tahu masalah kulitnya. Padahal diagnosis itu kuncinya. Sepakat?",
            "Kontroversial: lebih baik satu treatment yang tepat daripada sepuluh produk yang tidak jelas manfaatnya. Anda tim mana?",
        ],
        "sanjungan": [
            "Salut untuk Anda yang rajin merawat kulit — konsistensi itu kunci hasil maksimal! ✨",
            "Terima kasih untuk klien kami yang percaya pada perawatan kami. Melihat hasilnya membuat kami bangga!",
            "Anda yang mulai peduli pada kesehatan kulit sejak sekarang, sedang berinvestasi untuk masa depan. 👏",
        ],
    },
    "teknologi": {
        "netral": [
            "Teknologi apa yang paling mengubah cara kerja Anda dalam 5 tahun terakhir?",
            "Menurut Anda, AI akan menggantikan pekerjaan manusia atau justru membantu?",
            "Tools apa yang paling sering Anda pakai sehari-hari? Share dong!",
        ],
        "opini": [
            "Bold statement: bukan AI yang akan menggantikan Anda, tapi orang yang paham AI. Setuju?",
            "Banyak bisnis takut teknologi, padahal yang takut perubahan justru yang akan tertinggal. Sepakat?",
            "Kontroversial: perusahaan yang tidak mau adaptasi teknologi di 2026 ini sudah tertinggal diam-diam. Anda setuju?",
        ],
        "sanjungan": [
            "Salut untuk Anda yang berani belajar teknologi baru — itu skill paling berharga di era sekarang! 👏",
            "Klien kami yang cepat beradaptasi dengan teknologi selalu menuai hasil lebih dulu. Anda juga pasti bisa!",
            "Anda yang sudah memanfaatkan AI dalam pekerjaan, sedang bekerja lebih cerdas dari sebelumnya. Lanjutkan!",
        ],
    },
}

# ── PEMETAAN AKUN → INDUSTRI ──
AKUN_INDUSTRI = {
    # Threads
    "studiosoft_threads": "seo",
    "uky_threads": "seo",
    "tslaw_threads": "hukum",
    "das_threads": "otomotif",
    "tsc_threads": "klinik",
    "dmark_threads": "kreatif",
    "leit_threads": "pendidikan",
    "dniclinic_krian": "klinik",
    # FB
    "studiosoft_fb": "seo",
    "tslaw_fb": "hukum",
    "das_fb": "otomotif",
    "dmark_fb": "kreatif",
    "leit_fb": "pendidikan",
    "rsia_fb": "rumah_sakit",
    "arelancor_fb": "apotek",
    "tsc_fb": "klinik",
    "ssc_fb": "klinik",
    "everybe_fb": "kecantikan",
    # LinkedIn
    "studiosoft_linkedin": "seo",
    "uky_linkedin": "seo",
    "dmark_linkedin": "kreatif",
    "tslaw_linkedin": "hukum",
    "leit_linkedin": "pendidikan",
}

# Tone default: 60% netral, 25% opini, 15% sanjungan
TONE_WEIGHTS = [("netral", 0.60), ("opini", 0.25), ("sanjungan", 0.15)]


def pilih_tone(tone=None):
    """Pilih tone secara acak dengan bobot, atau gunakan tone yang diminta."""
    if tone and tone in ("netral", "opini", "sanjungan"):
        return tone
    r = random.random()
    acc = 0
    for t, w in TONE_WEIGHTS:
        acc += w
        if r <= acc:
            return t
    return "netral"


def ambil_pancingan(industri="umum", tone=None):
    """Ambil satu kalimat pancingan diskusi."""
    if industri not in PANCINGAN:
        industri = "umum"
    t = pilih_tone(tone)
    return random.choice(PANCINGAN[industri][t])


def tambahkan_diskusi(caption, platform="threads", industri="umum", tone=None,
                      max_threads=500, force=False):
    """Tambahkan kalimat pancingan diskusi ke akhir caption.

    - platform "threads": otomatis dipangkas kalau melebihi max_threads
    - force=True: selalu tambahkan (untuk konten harian yang memang mau diskusi)
    - default: 70% kesempatan ditambahkan (biar tidak semua postingan sama)
    """
    if not force and random.random() > 0.70:
        return caption

    pancingan = ambil_pancingan(industri, tone)

    if platform == "threads":
        # Cek panjang: caption + pancingan harus ≤ max_threads
        if len(caption) + len(pancingan) + 1 > max_threads:
            # Coba pancingan yang lebih pendek
            pendek = sorted(PANCINGAN.get(industri, PANCINGAN["umum"])[pilih_tone(tone)],
                            key=len)[0]
            if len(caption) + len(pendek) + 1 > max_threads:
                return caption  # caption sudah hampir penuh, lewati
            pancingan = pendek
        return f"{caption}\n\n{pancingan}" if not caption.endswith("\n") else f"{caption}{pancingan}"

    # FB / LinkedIn: tambahkan baris ajakan
    if caption.endswith("\n"):
        return caption + pancingan
    return f"{caption}\n\n{pancingan}"


if __name__ == "__main__":
    import sys
    # Mode test: python3 diskusi_engine.py [industri] [tone]
    ind = sys.argv[1] if len(sys.argv) > 1 else "seo"
    tone = sys.argv[2] if len(sys.argv) > 2 else None
    for _ in range(5):
        print(f"[{pilih_tone(tone):9s}] {ambil_pancingan(ind, tone)}")
