#!/usr/bin/env python3
import json, os, sys, urllib.request
from datetime import datetime, timezone, timedelta

sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from repliz_client import HEADERS, BASE

DMark_LI = '6a350ecbc5ff4ce3a32299ce'
LOG_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'dmark_linkedin_history.json')
WIB = timezone(timedelta(hours=7))

article = {
    'url': 'https://www.dmark.id/8-cara-personal-branding-dokter-kandungan-via-digital/',
    'title': '8 Cara Personal Branding Dokter Kandungan via Digital'
}

caption = (
    "Personal branding bukan lagi pilihan, tapi kebutuhan — termasuk untuk dokter kandungan. "
    "Di era digital, pasien makin cerdas memilih: mereka mencari dokter yang terlihat kredibel, "
    "dekat secara emosional, dan mudah dijangkau lewat platform online.\n\n"
    "Lewat artikel kali ini, kami merangkum 8 cara membangun personal branding dokter kandungan "
    "melalui media digital. Mulai dari konsistensi konten edukasi, membangun kepercayaan lewat "
    "testimoni, hingga memanfaatkan platform media sosial yang tepat sasaran. Semuanya dirancang "
    "agar positioning dokter makin kuat dan mudah dipercaya calon pasien.\n\n"
    "Buat kamu yang bergerak di bidang kesehatan atau sedang mendampingi klien dokter, artikel ini "
    "wajib dibaca. Simak selengkapnya di tautan berikut:"
)

def main():
    now = datetime.now(WIB)
    sched = now.replace(hour=11, minute=0, second=0, microsecond=0)
    if now > sched:
        sched += timedelta(days=1)
    iso = sched.strftime('%Y-%m-%dT%H:%M:%S.000Z')

    payload = {
        'title': '',
        'description': caption,
        'topic': 'Digital Marketing',
        'type': 'text',
        'medias': [],
        'meta': {
            'title': article['title'],
            'description': f'Baca artikel selengkapnya di DMark Creative — {article["title"]}',
            'url': article['url']
        },
        'additionalInfo': {'isAiGenerated': False, 'isDraft': False, 'collaborators': [], 'mentions': [],
            'music': {'id': '', 'artist': '', 'name': '', 'thumbnail': ''}, 'products': [], 'tags': []},
        'replies': [],
        'accountId': DMark_LI,
        'scheduleAt': iso,
    }

    body = json.dumps(payload).encode()
    req = urllib.request.Request(f'{BASE}/public/schedule', data=body, headers=HEADERS, method='POST')
    with urllib.request.urlopen(req) as resp:
        result = json.loads(resp.read())
        sid = result.get('scheduleId', '?')

        h = json.load(open(LOG_FILE))
        h['posts'].append({
            'date': sched.strftime('%Y-%m-%d'),
            'time': '11:00',
            'platform': 'linkedin',
            'article_url': article['url'],
            'article_title': article['title'],
            'schedule_id': sid,
        })
        json.dump(h, open(LOG_FILE, 'w'), indent=2)

        print(f'OK scheduleId={sid}')
        print(f'SCHED={sched.strftime("%d %b %Y %H:%M")} WIB')
        print(f'ARTICLE={article["url"]}')

if __name__ == '__main__':
    main()
