#!/usr/bin/env python3
"""TSLaw: artikel ketujuhbelas - 8 Pengacara Perkara Perdata dan Gugatan di Surabaya.
Aturan: 1.000-1.300 kata tanpa padding, entri 1 Tito Suprianto Law Firm + tautan beranda,
lembaga/peran nyata (LBH Surabaya, LBH Legundi, Posbakum PN Surabaya, PBH DPC PERADI Surabaya,
UKBH FH UNAIR, BANI Surabaya, mediator bersertifikat), tombol WA di akhir, FAQ 5 + schema FAQPage,
kategori 14 + 4 tag, meta Yoast REST. Tautan internal memakai alamat bersih /%postname%/ (diuji 200).
Gaya: tanpa em dash, tanpa kutip melengkung, tanpa karakter CJK.
Salinan isi disimpan ke artikel17.html sebelum dikirim (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%20gugatan%20perdata" 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 Gugatan Perdata 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 dokumen dan kronologi perkara Anda gratis.</p>"""

FAQ = [
    ('Berapa lama perkara gugatan perdata selesai di pengadilan negeri?',
     'Tidak ada angka pasti, tetapi perkara yang tidak rumit umumnya butuh 6 sampai 12 bulan dari '
     'pendaftaran sampai putusan. Kalau majelis menetapkan mediasi, tahap itu memakan paling lama 30 hari '
     'dan bisa diperpanjang 30 hari lagi. Pemeriksaan saksi biasanya yang paling banyak menambah waktu.'),
    ('Apakah wajib memakai pengacara untuk menggugat?',
     'Tidak wajib. Anda boleh berperkara sendiri, asalkan memenuhi syarat formil gugatan dan hadir di '
     'setiap persidangan. Yang wajib memakai advokat adalah perkara di Pengadilan Niaga dan perkara '
     'arbitrase tertentu. Kuasa hukum membantu merumuskan dalil dan mengelola jadwal sidang supaya hak Anda '
     'tidak hilang karena kelalaian teknis.'),
    ('Berapa biaya mengajukan gugatan perdata?',
     'Biaya perkara terdiri dari panjar yang Anda setorkan ke bank yang ditunjuk pengadilan, besarnya '
     'ditetapkan ketua pengadilan negeri setempat. Kecuali biaya perkara, biaya jasa kuasa hukum dihitung '
     'terpisah dan bisa dinegosiasikan sesuai ruang lingkup pekerjaan.'),
    ('Kalau nilai gugatan kecil, apakah tetap lewat prosedur biasa?',
     'Bisa lewat gugatan sederhana. Prosedurnya diatur Perma Nomor 4 Tahun 2019 untuk gugatan materiil '
     'paling banyak Rp500 juta, dengan hakim tunggal dan pemeriksaan yang lebih singkat. Kalau nilai gugatan '
     'melewati batas itu, perkaranya kembali ke prosedur biasa.'),
    ('Bisakah menggugat tanpa mengirim somasi lebih dulu?',
     'Untuk gugatan yang berdiri di atas perjanjian, somasi sering jadi syarat supaya tergugat dinyatakan '
     'lalai. Tanpa pernyataan lalai, gugatan wanprestasi rawan diputus tidak dapat diterima. Untuk gugatan '
     'perbuatan melawan hukum, somasi bukan syarat mutlak, tetapi surat teguran tetap berguna sebagai bukti '
     'upaya penyelesaian.'),
]

ENTRI = [
    ('Tito Suprianto Law Firm',
     'Kantor advokat di Surabaya yang menangani perkara perdata mulai dari wanprestasi, perbuatan melawan '
     'hukum, sengketa tanah, sampai sengketa kontrak bisnis. Langkah kerjanya dimulai dari memeriksa '
     'hubungan hukum para pihak, menghitung kerugian yang bisa dibuktikan, lalu menyusun posita dan petitum '
     'supaya gugatan tidak gugur secara formil. Pendampingan berjalan dari somasi, mediasi, persidangan, '
     'sampai eksekusi. Profil kantornya ada di <a href="https://www.tslaw.id/">beranda TS Law</a>.'),
    ('LBH Surabaya',
     'Lembaga bantuan hukum yang menangani perkara warga tidak mampu tanpa biaya, termasuk gugatan perdata '
     'sederhana dan sengketa hak. Layanannya berupa konsultasi, penyusunan surat, sampai pendampingan di '
     'persidangan. Kantornya berada di Jalan Kidal nomor 6, Pacar Keling, Tambaksari. Jumlah advokatnya '
     'terbatas, jadi datanglah dengan dokumen asli dan kronologi tertulis.'),
    ('LBH Legundi (Yayasan Legundi Keadilan Indonesia)',
     'Lembaga bantuan hukum di Jalan Legundi nomor 31, Ketabang, Genteng, yang membuka layanan konsultasi '
     'cuma-cuma pada hari kerja. LBH Legundi juga menjadi penyedia layanan Posbakum Pengadilan Negeri '
     'Surabaya, sehingga alur perkara perdata dari kantor ini langsung bersambung ke meja pengadilan.'),
    ('Posbakum Pengadilan Negeri Surabaya',
     'Pos layanan bantuan hukum di pengadilan memberi bantuan awal gratis: menjelaskan alur perkara, '
     'membantu menyusun surat gugatan sederhana, dan mendampingi di persidangan. Letaknya di kantor '
     'Pengadilan Negeri Surabaya Kelas 1A Khusus, Jalan Arjuno nomor 16 sampai 18, Sawahan. Untuk pihak yang '
     'tidak mampu, biaya perkara bisa dimintakan pembebasan lewat jalur prodeo sesuai Pasal 237 HIR.'),
    ('Pusat Bantuan Hukum DPC PERADI Surabaya',
     'Unit kerja organisasi advokat yang menyalurkan advokat untuk perkara pro bono, termasuk sengketa '
     'perdata bagi pencari keadilan yang tidak mampu. Peminatnya mengisi formulir permohonan dan '
     'melampirkan surat keterangan tidak mampu dari kelurahan.'),
    ('Unit Konsultasi dan Bantuan Hukum Fakultas Hukum Universitas Airlangga',
     'Unit bantuan hukum kampus yang menerima konsultasi masyarakat, termasuk perkara perdata, dengan '
     'pendampingan advokat dan dosen. Kantornya di Gedung A.G. Pringgodigdo, Jalan Dharmawangsa Dalam '
     'Selatan, Surabaya. Layanan ini sering dipakai untuk meminta pendapat awal sebelum memutuskan '
     'menggugat, karena biayanya ringan.'),
    ('BANI Surabaya',
     'Kantor perwakilan Badan Arbitrase Nasional Indonesia di Jalan Ketintang Baru VIII nomor 10, Surabaya. '
     'Lembaga ini menangani sengketa bisnis di luar pengadilan berdasarkan klausul arbitrase, sesuai UU '
     'Nomor 30 Tahun 1999. Kalau kontrak memuat klausul arbitrase, gugatan ke pengadilan negeri bisa '
     'dinyatakan tidak berwenang.'),
    ('Mediator bersertifikat Mahkamah Agung',
     'Peran yang tersedia di setiap pengadilan negeri dan wajib dilalui sebelum pemeriksaan pokok perkara '
     'sesuai Perma Nomor 1 Tahun 2016. Mediator mempertemukan kedua pihak untuk mencari kesepakatan, '
     'termasuk soal nilai ganti rugi dan cara pembayarannya. Kesepakatan yang dicapai bisa dikukuhkan '
     'menjadi akta perdamaian.'),
]

ISI = """<p>Pengacara perdata surabaya dicari ketika hubungan bisnis atau urusan pribadi berujung pada kerugian yang
tidak mau ditanggung sendiri. Ada perjanjian yang tidak dijalankan, ada pembayaran yang macet, ada tindakan
pihak lain yang merugikan. Semua itu masuk ranah perkara perdata, dan jalur hukumnya jelas: somasi, mediasi,
lalu gugatan ke pengadilan negeri.</p>
<p>Halaman ini mengumpulkan delapan tempat dan peran yang nyata ada di Surabaya, menjelaskan alur perkaranya,
lalu menutup dengan lima pertanyaan yang sering masuk.</p>

<h2>Apa yang masuk perkara perdata</h2>
<p>Perkara perdata berisi sengketa antara orang atau badan hukum soal hak dan kewajiban. Dua dasarnya yang
paling sering dipakai adalah Pasal 1243 KUHPerdata untuk wanprestasi dan Pasal 1365 KUHPerdata untuk perbuatan
melawan hukum. Yang pertama menuntut pihak yang tidak memenuhi perjanjian untuk mengganti biaya, rugi, dan
bunga. Yang kedua mewajibkan pelaku menanggung kerugian yang ditimbulkannya, walau tidak ada perjanjian apa
pun.</p>
<p>Pengajuan gugatan mengikuti Pasal 118 HIR: gugatan diajukan ke pengadilan negeri yang wilayahnya meliputi
tempat tinggal tergugat, atau tempat tinggal penggugat kalau tergugat memilih ikut. Salah alamat pengadilan
membuat gugatan bisa dinyatakan tidak berwenang. Perbedaan jalur perdata dan pidana sudah pernah kami rangkum
di <a href="https://www.tslaw.id/3-perbedaan-gugatan-perdata-dan-pidana-yang-perlu-dipahami/">perbedaan
gugatan perdata dan pidana</a>.</p>

<h2>Delapan tempat dan peran untuk perkara perdata di Surabaya</h2>
<p>Sebagian entri di bawah ini kantor advokat, sebagian lembaga bantuan hukum, dan sebagian lagi peran khusus
untuk sengketa tertentu.</p>
<h3>1. {E0}</h3><p>{E0T}</p>
<h3>2. {E1}</h3><p>{E1T}</p>
<h3>3. {E2}</h3><p>{E2T}</p>
<h3>4. {E3}</h3><p>{E3T}</p>
<h3>5. {E4}</h3><p>{E4T}</p>
<h3>6. {E5}</h3><p>{E5T}</p>
<h3>7. {E6}</h3><p>{E6T}</p>
<h3>8. {E7}</h3><p>{E7T}</p>

<h2>Alur perkara perdata dari somasi sampai putusan</h2>
<p>Urutan surat dan sidang menentukan posisi Anda. Berikut alurnya di pengadilan negeri.</p>
<ol>
<li>Somasi tertulis ke pihak lawan dengan tenggat jelas. Surat ini jadi titik awal perhitungan lalai.</li>
<li>Pendaftaran gugatan di meja penerimaan, bisa lewat sistem elektronik sesuai Perma Nomor 7 Tahun 2022.</li>
<li>Penetapan majelis hakim, lalu sidang pertama dengan agenda mediasi wajib.</li>
<li>Mediasi paling lama 30 hari, dapat diperpanjang 30 hari, sesuai Perma Nomor 1 Tahun 2016.</li>
<li>Pemeriksaan pokok perkara: jawaban, replik, bukti surat, saksi, dan kesimpulan.</li>
<li>Putusan, lalu upaya hukum banding kalau salah satu pihak tidak menerima.</li>
</ol>
<p>Untuk nilai gugatan materiil paling banyak Rp500 juta, prosedurnya bisa disingkat lewat gugatan sederhana
sesuai Perma Nomor 4 Tahun 2019 dengan hakim tunggal. Kalau uang Anda terbatas, biaya konsultasi dan panjar
perkara sebaiknya dihitung sebelum mendaftar. Gambaran angkanya ada di
<a href="https://www.tslaw.id/biaya-jasa-law-firm-surabaya/">biaya jasa law firm Surabaya</a> dan
<a href="https://www.tslaw.id/7-hal-penting-tentang-biaya-konsultasi-hukum-yang-perlu-anda-tahu-sebelum-ke-pengacara/">hal
penting tentang biaya konsultasi hukum</a>. Kalau anggaran Anda menipis,
<a href="https://www.tslaw.id/6-cara-mendapatkan-bantuan-hukum-gratis-di-surabaya-untuk-masyarakat/">enam cara
mendapatkan bantuan hukum gratis di Surabaya</a> bisa jadi jalan masuk.</p>
<p>Banyak sengketa selesai sebelum putusan. Somasi yang rapi sering cukup membuat pihak lawan membayar,
terutama pada sengketa utang. Urutan langkahnya 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 secara profesional</a> dan
<a href="https://www.tslaw.id/7-hal-penting-tentang-somasi-yang-wajib-dipahami-sebelum-menggugat-ke-pengadilan/">hal
penting tentang somasi sebelum menggugat</a>. Untuk sengketa bisnis, jalur damai dibahas di
<a href="https://www.tslaw.id/6-cara-mediasi-sengketa-bisnis-oleh-kantor-pengacara-surabaya-terpercaya-2/">cara
mediasi sengketa bisnis</a>, sementara
<a href="https://www.tslaw.id/klausul-penyelesaian-sengketa-kontrak-umkm/">klausul penyelesaian sengketa dalam
kontrak</a> perlu dibaca sebelum menandatangani perjanjian baru.</p>

<h2>Yang perlu disiapkan sebelum menemui advokat</h2>
<p>Perkara perdata berdiri di atas dokumen, bukan cerita. Enam berkas berikut paling sering diminta di
pertemuan pertama.</p>
<ul>
<li>Perjanjian atau bukti hubungan hukum antara Anda dan pihak lawan, termasuk lampirannya.</li>
<li>Bukti pemenuhan kewajiban Anda: kuitansi, transfer bank, tanda terima, atau surat jalan.</li>
<li>Kronologi tertulis berisi tanggal setiap peristiwa penting, disusun urut.</li>
<li>Somasi yang pernah dikirim beserta bukti pengiriman dan jawabannya, kalau ada.</li>
<li>Perhitungan kerugian dengan angka dan dasar hitungannya, bukan perkiraan.</li>
<li>Data pihak lawan: nama lengkap, alamat, dan bentuk badannya kalau dia perusahaan.</li>
</ul>
<p>Dari perkara yang masuk ke kantor kami, yang paling sering memberatkan penggugat bukan isi sengketanya,
melainkan dokumen yang tidak lengkap. Kalau Anda mencari pengacara perdata Surabaya, rapikan dokumen dan surat
teguran lebih dulu.</p>

<h2>Baca juga</h2>
<p>Panduan sengketa yang sering berujung ke pengadilan ada di
<a href="https://www.tslaw.id/cara-mengurus-sengketa-tanah-secara-hukum">cara mengurus sengketa tanah secara
hukum</a> dan
<a href="https://www.tslaw.id/6-langkah-mengurus-sengketa-tanah-secara-hukum-di-indonesia/">enam langkah
mengurus sengketa tanah</a>. Untuk perkara berbasis perjanjian, baca
<a href="https://www.tslaw.id/perjanjian-sewa-menyewa-yang-aman-panduan-hukum/">perjanjian sewa menyewa yang
aman</a> dan
<a href="https://www.tslaw.id/hak-konsumen-di-indonesia-perlindungan-hukum/">hak konsumen di Indonesia</a>.
Gambaran kantor kami ada di <a href="https://www.tslaw.id/layanan/">halaman layanan</a> dan
<a href="https://www.tslaw.id/hubungi/">halaman kontak</a>.</p>

<h2>Pertanyaan yang sering muncul</h2>
"""

_e = ENTRI
for i in range(len(_e)):
    ISI = ISI.replace("{%s}" % f"E{i}", _e[i][0]).replace("{%s}" % f"E{i}T", _e[i][1])

ISI += "\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>"""

A17 = {"judul": "8 Pengacara Perkara Perdata dan Gugatan di Surabaya",
       "slug": "pengacara-perdata-surabaya",
       "fokus": "pengacara perdata surabaya",
       "seo": "Pengacara Perdata Surabaya: 8 Tempat dan Alur Gugatan",
       "meta": ("Pengacara perdata surabaya: 8 tempat meminta pendampingan gugatan, plus alur somasi, "
                "mediasi, sampai putusan."),
       "tag_nama": ["hukum acara perdata", "gugatan perdata", "advokat", "sengketa"],
       "isi": ISI}

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