#!/usr/bin/env python3
"""Post nested Threads DAS Bengkel Indonesia via Repliz"""
import base64, json, urllib.request, sys
from datetime import datetime, timezone, timedelta

from repliz_client import HEADERS, BASE, ACCOUNTS
ACCOUNT_ID = ACCOUNTS['das_ig']  # DAS Threads


def schedule(text, scheduleAt_iso, parentId=None):
    payload = {
        "title": "",
        "description": text,
        "topic": "Otomotif",
        "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"  ✅ OK → scheduleId: {sid}")
            return sid
    except urllib.error.HTTPError as e:
        err = e.read().decode()
        print(f"  ❌ ERROR {e.code}: {err}")
        return None

# ===== TIME HELPERS =====
WIB = timezone(timedelta(hours=7))

# Slot hari ini: 17:00, 20:00, 23:00 WIB
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",
]

POST1 = (
    "AC mobil mulai kurang dingin? Jangan buru-buru ganti kompresor dulu. 😅\n"
    "\n"
    "Banyak kasus, AC mobil terasa panas cuma karena:\n"
    "\n"
    "🔹 Filter kabin kotor — ini yang paling sering, perawatannya gampang banget\n"
    "🔹 Freon bocor — ada celah di selang, ditambal bukan diganti\n"
    "🔹 Kondensor kotor — kena debu dan kotoran jalanan\n"
    "\n"
    "Saran dari mekanik DAS:\n"
    "\"Coba cek filter kabin dulu, 7 dari 10 kasus AC kurang dingin selesai cuma\n"
    "dengan bersihin atau ganti filter. Biayanya jauh lebih miring dari ganti\"\n"
    "kompresor.\"\n"
    "\n"
    "Pernah ngalamin AC mobil tiba-tiba panas? Share ceritanya dong 👇\n"
    "\n"
    "#DASBengkelIndonesia #ACmobil #TipsBengkel"
)

POST2 = (
    "Satu lagi soal AC mobil — ini yang suka bikin orang terkecoh.\n"
    "\n"
    "Kebanyakan orang langsung panik kalo AC bunyi mendesis. Padahal bisa jadi\n"
    "itu cuma suara freon yang bersirkulasi — wajar kok.\n"
    "\n"
    "Tapi kalo udah bunyi kayak knalpot bocor atau muncul bau apek, baru waspada:\n"
    "\n"
    "🔸 Bau apek — evaporator lembab, biasanya karena jarang pake fresh air mode\n"
    "🔸 Bunyi kasar — kompresor mulai bermasalah, jangan ditunda\n"
    "🔸 AC mati total — bisa karena overload relay atau kompresor udah ngadat\n"
    "\n"
    "Mau servis AC mobil tanpa khawatir ditipu? Langsung aja ke DAS Bengkel Indonesia.\n"
    "Semua dikerjain mekanik profesional, dan biaya dijelasin detail sebelum kerja! 🚗💨\n"
    "\n"
    "Booking sekarang — tinggal chat aja!\n"
    "\n"
    "#DASBengkelIndonesia #ACmobil #ServisMobil"
)

POST3 = (
    "Oke kita udah bahas AC mobil. Sekarang ganti ke topik yang gak kalah penting:\n"
    "ban. 🛞\n"
    "\n"
    "Ban itu satu-satunya bagian mobil yang langsung nyentuh aspal. Kalo kondisinya\n"
    "jelek, secanggih apapun mobilnya — tetap berbahaya.\n"
    "\n"
    "Cek 3 hal ini sebelum jalan jauh:\n"
    "\n"
    "✅ Kedalaman alur ban — kalo udah di bawah 1.6 mm, ganti sekarang juga\n"
    "✅ Tekanan angin — jangan ngandelin mata. Pake tire gauge, patuhi rekomendasi pabrik\n"
    "✅ Umur ban — walau masih tebal, ban di atas 4 tahun udah getas karetnya\n"
    "\n"
    "Tip tambahan: rotasi ban tiap 10.000 km biar keausannya merata. DAS siap\n"
    "bantu cek kondisi ban kamu lengkap — tinggal mampir! 🔧😊\n"
    "\n"
    "#DASBengkelIndonesia #TipsBan #SafetyDriving"
)

print("🚗 DAS Bengkel Indonesia — Nested Threads Schedule")
print("=" * 50)

# Step 1: Post 1 di slot 17:00 WIB
print(f"\n📌 POST 1 (17:00 WIB):")
print(f"    \"{POST1[:60]}...\"")
sid1 = schedule(POST1, slots[0])

if sid1:
    # Step 2: Post 2 reply ke Post 1, di slot 20:00 WIB
    print(f"\n📌 POST 2 → reply ke {sid1} (20:00 WIB):")
    print(f"    \"{POST2[:60]}...\"")
    sid2 = schedule(POST2, slots[1], parentId=sid1)

    if sid2:
        # Step 3: Post 3 reply ke Post 2, di slot 23:00 WIB
        print(f"\n📌 POST 3 → reply ke {sid2} (23:00 WIB):")
        print(f"    \"{POST3[:60]}...\"")
        sid3 = schedule(POST3, slots[2], parentId=sid2)
        
        if sid3:
            print(f"\n{'='*50}")
            print("✅ SEMUA TERJADWAL!")
            print(f"   17:00 WIB → Post 1 (Tips Merawat Mobil)        — ID: {sid1}")
            print(f"   20:00 WIB → → Reply Post 2 (Tips Cari Bengkel)  — ID: {sid2}")
            print(f"   23:00 WIB → → → Reply Post 3 (Penghobi Mobil)  — ID: {sid3}")
            print(f"{'='*50}")
        else:
            print("\n⚠️ Post 3 gagal, Post 1 & 2 berhasil.")
    else:
        print("\n⚠️ Post 2 gagal, Post 1 berhasil.")
else:
    print("\n❌ Gagal total.")
    sys.exit(1)

