#!/usr/bin/env python3
"""TSLaw: artikel kesepuluh — 7 Pengacara Utang Piutang dan Penagihan di Surabaya.
Aturan: 1.000-1.300 kata tanpa padding, entri 1 Tito Suprianto Law Firm + tautan beranda,
lembaga/peran nyata (PN Surabaya, Pengadilan Niaga, LBH, Posbakum, notaris/PPAT, KPKNL, OJK),
tombol WA di akhir, FAQ 5 + schema FAQPage, kategori 14 + 4 tag, meta Yoast REST.
Gaya bahasa lewat pass humanizer: tanpa em dash, tanpa jargon AI, tanpa rule-of-three paksa.
Salinan isi disimpan ke artikel10.html sebelum dikirim ke WordPress (REST JSON saja)."""
import json, os, re

OUT = "/home/mantapman/.hermes/profiles/atun/workspace/tslaw_listikel"
os.makedirs(OUT, exist_ok=True)
WA = "6281909222026"

CTA = f"""<p style="text-align:center;margin:34px 0 8px">
<a href="https://wa.me/{WA}?text=Halo%20TS%20Law%2C%20saya%20ingin%20konsultasi%20soal%20penagihan%20utang%20piutang" target="_blank" rel="noopener"
style="display:inline-block;background-color:#122b63;color:#ffffff;font-weight:600;font-size:17px;
padding:15px 30px;border-radius:8px;text-decoration:none">Konsultasi Penagihan via WhatsApp</a>
</p>
<p style="text-align:center;font-size:14px;color:#5b5b6b;margin:0 0 26px">
Tito Suprianto Law Firm, kantor advokat di Surabaya. Pemeriksaan awal bukti tagihan Anda tidak dipungut biaya.</p>"""

FAQ = [
    ("Berapa biaya pengacara utang piutang surabaya untuk perkara tagihan?",
     "Struktur biayanya biasanya dipisahkan menjadi biaya yang dibayar ke pihak ketiga dan honorarium "
     "pendamping. Yang pertama meliputi biaya perkara di pengadilan, materai, dan biaya lelang kalau nanti "
     "sampai tahap eksekusi. Honorarium pendamping dihitung dari pekerjaan nyata: menyusun somasi, "
     "merapikan bukti, menghitung tuntutan, mendaftarkan gugatan, dan mendampingi di persidangan. Ada "
     "kantor yang memakai tarif per perkara, ada yang per jam, jadi mintalah rincian tertulis sejak awal."),
    ("Berapa lama tagihan bisa cair setelah digugat?",
     "Jalurnya bertingkat, dan yang paling cepat biasanya bukan persidangan. Somasi bertenggat dua minggu "
     "sering sudah membuat debitur berunding. Kalau harus ke pengadilan, ada pendaftaran, mediasi wajib "
     "yang diikuti para pihak, lalu persidangan dengan pembuktian dan putusan. Setelah putusan berkekuatan "
     "tetap, penggugat masih mengajukan eksekusi, dan penjualan barang sitaan lewat lelang menambah waktu "
     "lagi. Untuk tagihan tanpa jaminan, hitungan bulanan lebih realistis."),
    ("Apakah somasi wajib sebelum menggugat?",
     "Secara hukum tidak ada kewajiban mutlak, tetapi dalam praktik somasi hampir selalu dikirim lebih dulu. "
     "Alasannya dua. Pertama, somasi menciptakan bukti bahwa debitur sudah diperingatkan dan tidak "
     "mengindahkannya, dan itu membantu menunjukkan wanprestasi benar-benar terjadi. Kedua, banyak perkara "
     "selesai di tahap ini karena debitur tidak mau menanggung biaya perkara. Somasi sebaiknya tertulis, "
     "menyebut jumlah dan jatuh tempo yang benar, dan diberi tenggat. Somasi yang isinya kabur justru "
     "melemahkan posisi Anda di persidangan."),
    ("Bagaimana kalau debitur tidak punya aset?",
     "Putusan pengadilan tidak menciptakan uang, jadi hal ini yang paling menentukan sebelum perkara "
     "didaftarkan. Yang diperiksa lebih dulu adalah ada atau tidaknya harta yang bisa disita, misalnya "
     "rekening, kendaraan, tanah, atau piutang debitur kepada pihak lain. Kalau tidak ada aset yang jelas, "
     "gugatan hanya menghasilkan putusan yang tidak bisa dijalankan. Dua pilihan yang lebih masuk akal: "
     "jalur pailit kalau debiturnya masih beroperasi, atau perdamaian dengan jadwal pembayaran tertulis."),
    ("Apakah utang yang tidak dibayar bisa dipidanakan?",
     "Utang piutang murni yang berhenti dibayar bukan perkara pidana, melainkan wanprestasi, dan itu urusan "
     "perdata. Pidana baru masuk kalau ada unsur lain yang bisa dibuktikan, misalnya sejak awal memang tidak "
     "ada niat memenuhi perjanjian sehingga unsur penipuan terpenuhi, atau uang yang dititipkan dipakai untuk "
     "keperluan lain dan itu tergolong penggelapan. Karena batasnya bisa tipis, rapikan dulu bukti "
     "perdatanya sebelum berpikir ke jalur pidana."),
]

ENTRI = [
    ("Tito Suprianto Law Firm",
     "Kantor advokat di Surabaya yang menangani perkara tagihan, dari surat somasi pertama sampai eksekusi "
     "putusan. Pekerjaan pertamanya memeriksa bukti: perjanjian, invoice, tanda terima barang, dan mutasi "
     "rekening, karena dari situ kelihatan apakah tagihan bisa dibuktikan atau hanya kuat di percakapan. "
     "Kalau perlu, timnya mengajukan gugatan wanprestasi ke pengadilan atau memilih jalur pailit ketika "
     "debiturnya masih beroperasi tetapi menolak membayar. Profil dan bidang layanannya ada di "
     "<a href=\"https://www.tslaw.id/\">beranda TS Law</a>."),
    ("Pengadilan Negeri Surabaya",
     "Di sinilah gugatan wanprestasi diajukan kalau jalur damai gagal. Untuk tuntutan uang bernilai kecil, "
     "ada jalur gugatan sederhana dengan tata cara sidang yang lebih singkat, tetapi syarat nilai dan jenis "
     "perkaranya dibatasi peraturan Mahkamah Agung, jadi pastikan tagihan Anda masuk. Yang "
     "membuat perkara dimenangkan bukan panjang uraian, melainkan urutan bukti: perjanjian, dokumen "
     "penyerahan, dan perhitungan sisa utang. Sebelum mendaftar, siapkan juga "
     "<a href=\"https://www.tslaw.id/6-jenis-surat-kuasa-hukum-dan-fungsinya-yang-wajib-anda-pahami/\">surat "
     "kuasa</a> kalau Anda memakai pendamping, karena tanpa itu pendaftaran tidak bisa dilakukan."),
    ("Pengadilan Niaga pada Pengadilan Negeri Surabaya",
     "Kalau debiturnya masih beroperasi dan punya aset tetapi tidak mau membayar, jalur lain adalah "
     "permohonan pailit atau penundaan kewajiban pembayaran utang. Keduanya punya syarat yang harus "
     "dipenuhi lebih dulu: ada dua kreditur atau lebih, dan ada utang yang sudah jatuh tempo serta bisa "
     "ditagih. Perkara semacam ini ditangani peradilan niaga, dan tekanannya lebih besar dibanding gugatan "
     "biasa karena putusan pailit langsung menentukan siapa yang mengurus aset debitur."),
    ("LBH Surabaya dan Posbakum Pengadilan Negeri",
     "Untuk pedagang kecil atau pekerja yang tidak mampu menyewa pendamping, ada dua pintu bantuan hukum. "
     "Yang pertama lembaga bantuan hukum, yang mendampingi perkara perdata tanpa biaya jasa bagi pemohon "
     "yang memenuhi syarat, umumnya dengan surat keterangan tidak mampu. Yang kedua pos bantuan hukum di "
     "gedung pengadilan, yang memberi nasihat dan bantuan pembuatan dokumen. Kapasitas keduanya terbatas, "
     "jadi datanglah dengan kronologi tertulis dan salinan buktinya."),
    ("Notaris dan PPAT",
     "Ada dua hal yang sebaiknya diselesaikan di hadapan notaris sebelum utang membesar. Pertama akta "
     "pengakuan utang, yang membuat jumlah dan jatuh tempo tidak bisa dibantah lagi. Kedua jaminan "
     "kebendaan, misalnya jaminan fidusia atau hak tanggungan atas tanah, karena akta jaminan yang "
     "didaftarkan memberi pemegangnya hak mengeksekusi agunan tanpa harus menggugat lebih dulu. PPAT "
     "diperlukan bila objek jaminannya tanah atau bangunan."),
    ("Kantor Pelayanan Kekayaan Negara dan Lelang Surabaya",
     "Kalau sudah ada jaminan yang didaftarkan atau putusan pengadilan yang berkekuatan tetap, penjualan "
     "barang sitaan dilakukan lewat lelang. Di Surabaya pelaksanaannya melalui kantor pelayanan kekayaan "
     "negara dan lelang. Lelang memakan waktu dan biaya, dan hasilnya sering di bawah harga pasar "
     "itu. Karena itu, tagihan yang punya jaminan hampir selalu lebih cepat lunas daripada tagihan tanpa "
     "jaminan."),
    ("Kantor OJK wilayah Jawa Timur dan satgas pemberantasan keuangan ilegal",
     "Kalau utang Anda membengkak karena pinjaman online atau penagihan perusahaan pembiayaan, jangan hanya "
     "berhadapan dengan penagihnya. Ada kanal pengaduan di kantor OJK wilayah Jawa Timur, dan ada satuan "
     "tugas yang menangani aktivitas keuangan ilegal. Bawa bukti peminjaman, riwayat penagihan, serta "
     "catatan bunganya. Jalur ini tidak menghapus utang, tetapi menghentikan tekanan penagihan yang "
     "melanggar aturan."),
]

ISI = f"""<p>Piutang macet jarang dimulai dari debitur yang kabur. Yang lebih sering terjadi adalah tagihan yang
tadinya lancar, lalu mundur sebulan, dua bulan, sampai percakapan berpindah ke chat yang isinya hanya janji
dan permintaan tambahan waktu. Pemilik usaha berhenti menagih karena tidak mau dianggap memutus hubungan
baik, padahal setiap bulan yang lewat melemahkan posisi hukumnya.</p>
<p>Halaman ini memuat tujuh pilihan pengacara utang piutang Surabaya dan lembaga yang menangani perkara
tagihan, dari pengadilan yang memutus sampai bantuan hukum untuk yang tidak mampu. Di
bawahnya ada urutan langkah yang biasa saya pakai, dan lima pertanyaan yang paling sering masuk lewat
telepon.</p>

<h2>Kenapa urusan tagihan sering berhenti di chat</h2>
<p>Ada pola yang berulang. Debitur mengakui utangnya, tetapi tidak membayar. Pengakuan seperti itu tidak
berguna di persidangan tanpa dokumen pendukung, dan kebiasaan berikut yang membuat perkara jadi rumit:</p>
<ul>
<li>Tagihan hanya dibuktikan dengan chat yang tidak menyebut nomor invoice dan jatuh tempo.</li>
<li>Faktur dan surat jalan dikirim tanpa tanda terima bertanda tangan, jadi penyerahan barang sulit
dibuktikan.</li>
<li>Cicilan yang sudah masuk tidak dicatat, sehingga sisa utang terlihat lebih kecil dari kenyataan.</li>
<li>Perjanjian awal tidak dibuat tertulis karena hubungan sudah dianggap dekat.</li>
<li>Teguran dikirim lewat telepon, tanpa salinan tertulis dan tanpa tenggat yang jelas.</li>
</ul>

<h2>Tujuh pilihan pengacara utang piutang Surabaya</h2>
<h3>1. {ENTRI[0][0]}</h3><p>{ENTRI[0][1]}</p>
<h3>2. {ENTRI[1][0]}</h3><p>{ENTRI[1][1]}</p>
<h3>3. {ENTRI[2][0]}</h3><p>{ENTRI[2][1]}</p>
<h3>4. {ENTRI[3][0]}</h3><p>{ENTRI[3][1]}</p>
<h3>5. {ENTRI[4][0]}</h3><p>{ENTRI[4][1]}</p>
<h3>6. {ENTRI[5][0]}</h3><p>{ENTRI[5][1]}</p>
<h3>7. {ENTRI[6][0]}</h3><p>{ENTRI[6][1]}</p>

<h2>Urutan langkah yang saya sarankan saat menagih</h2>
<ol>
<li>Rapikan bukti lebih dulu: perjanjian, invoice, tanda terima barang, mutasi rekening, dan seluruh
percakapan soal janji bayar. Tandai tanggalnya.</li>
<li>Kirim somasi tertulis, bukan lewat telepon, dan sebut jumlah, jatuh tempo, serta tenggat yang masuk
akal.</li>
<li>Hitung total tuntutan: pokok, bunga atau denda yang memang punya dasar, dan biaya yang sudah keluar.
Angka yang dikarang akan gugur di persidangan.</li>
<li>Periksa aset debitur sebelum memilih jalur, karena gugatan tanpa harta yang bisa disita hanya
menghasilkan putusan yang tidak jalan.</li>
<li>Baru pilih jalurnya: gugatan sederhana untuk nilai kecil, gugatan biasa, atau permohonan pailit kalau
debiturnya masih beroperasi tetapi menolak membayar.</li>
</ol>
<p>Dari pengalaman, tagihan yang paling cepat selesai bukan yang ancamannya paling keras, melainkan yang
bukti dan hitungannya paling rapi.</p>

<h2>Baca juga</h2>
<p>Soal urutan menagih dan contoh dokumennya ada di
<a href="https://www.tslaw.id/7-langkah-hukum-menagih-utang-piutang-secara-profesional-tanpa-main-hakim-sendiri/">tujuh
langkah menagih utang piutang</a> dan
<a href="https://www.tslaw.id/8-langkah-penting-mengurus-somasi-hutang-agar-tagihan-cepat-dibayar/">mengurus
somasi hutang</a>. Bahan pertimbangan saat debitur mengabaikan surat ada di
<a href="https://www.tslaw.id/7-hal-penting-tentang-somasi-yang-wajib-dipahami-sebelum-menggugat-ke-pengadilan/">hal
penting tentang somasi</a> dan
<a href="https://www.tslaw.id/3-perbedaan-gugatan-perdata-dan-pidana-yang-perlu-dipahami/">perbedaan gugatan
perdata dan pidana</a>. Untuk perusahaan yang ingin membenahi kontraknya, baca
<a href="https://www.tslaw.id/tujuh-situasi-perusahaan-butuh-law-firm/">tujuh situasi perusahaan butuh law
firm</a>. Perkiraan tarif ada di
<a href="https://www.tslaw.id/biaya-jasa-law-firm-surabaya/">biaya jasa law firm Surabaya</a>, cara memilih
pendamping di
<a href="https://www.tslaw.id/cara-memilih-law-firm-surabaya-untuk-perusahaan/">cara memilih law firm untuk
perusahaan</a>, dan gambaran kantor kami di
<a href="https://www.tslaw.id/law-firm-surabaya/">law firm Surabaya</a>,
<a href="https://www.tslaw.id/layanan/">layanan kami</a>, serta
<a href="https://www.tslaw.id/hubungi/">halaman kontak</a>.</p>

<h2>Pertanyaan yang sering muncul</h2>
""" + "\n".join(f"<h3>{q}</h3><p>{a}</p>" for q, a in FAQ) + f"""

{CTA}
<script type="application/ld+json">{json.dumps({"@context": "https://schema.org", "@type": "FAQPage",
    "mainEntity": [{"@type": "Question", "name": q, "acceptedAnswer": {"@type": "Answer", "text": a}} for q, a in FAQ]},
    ensure_ascii=False)}</script>"""

A10 = {"judul": "7 Pengacara Utang Piutang dan Penagihan di Surabaya",
       "slug": "pengacara-utang-piutang-surabaya",
       "fokus": "pengacara utang piutang surabaya",
       "seo": "7 Pengacara Utang Piutang Surabaya dan Penagihan",
       "meta": ("Pengacara utang piutang surabaya: tujuh pilihan pendamping untuk menagih piutang macet, "
                "somasi, gugatan wanprestasi, sampai pailit."),
       "tag_nama": ["utang piutang", "penagihan", "wanprestasi", "advokat"],
       "isi": ISI}

if __name__ == "__main__":
    teks = re.sub(r"<(script|style)[^>]*>.*?</\1>", " ", A10["isi"], flags=re.S | re.I)
    kata = len([w for w in re.split(r"\s+", re.sub(r"<[^>]+>", " ", teks)) if w])
    print(f"{A10['slug']}")
    print(f"  kata       : {kata} (batas 1000-1300)")
    print(f"  meta       : {len(A10['meta'])} char (batas 158)")
    print(f"  judul SEO  : {len(A10['seo'])} char (batas 60)")
    print(f"  H1         : {len(A10['judul'])} char")
    print(f"  h2/h3      : {A10['isi'].count('<h2>')}/{A10['isi'].count('<h3>')}")
    print(f"  keyphrase di isi : {A10['isi'].lower().count(A10['fokus'])} kali")
    print(f"  meta mulai keyphrase : {A10['meta'].lower().startswith(A10['fokus'])}")
    print(f"  wa.me      : {'ada' if 'wa.me/' + WA in A10['isi'] else 'TIDAK'}")
    print(f"  FAQPage    : {'ada' if 'FAQPage' in A10['isi'] else 'TIDAK'}")
    print(f"  beranda    : {'ada' if 'https://www.tslaw.id/' in A10['isi'] else 'TIDAK'}")
    cjk = re.findall(r"[\u3000-\u9fff\uac00-\ud7af]", A10["isi"])
    print(f"  karakter CJK: {len(cjk)} {'(BERSIH)' if not cjk else cjk[:10]}")
    sisa = re.findall(r"\{[A-Za-z_\[\]0-9]+\}", A10["isi"])
    print(f"  placeholder: {len(sisa)} {'(BERSIH)' if not sisa else sisa[:5]}")
    print(f"  em dash    : {A10['isi'].count(chr(8212))}")
    link = re.findall(r'href="(https?://[^"]+)"', A10["isi"])
    print(f"  tautan unik : {len(set(link))}")
    for l in sorted(set(link)):
        print("     ", l)
    open(f"{OUT}/artikel10.html", "w").write(A10["isi"])
    print(f"  salinan isi: {OUT}/artikel10.html")
