#!/usr/bin/env python3
"""Import cqcs data into search DB"""
import json, sqlite3, os

jsonl_path = '/root/gov_crawler/output/cqcs_bmjz.jsonl'
with open(jsonl_path, 'r', encoding='utf-8') as f:
    results = [json.loads(line) for line in f if line.strip()]

print(f"Loaded {len(results)} records")

conn = sqlite3.connect('/mnt/data/search.db')
cursor = conn.cursor()

# Delete existing
cursor.execute("DELETE FROM gov_raw WHERE site_name=?", ("长寿区人民政府-部门街镇",))
deleted = cursor.rowcount
print(f"Deleted {deleted} existing records")

inserted = 0
for r in results:
    title = r['title']
    content = r.get('content', '')
    publish_date = r['date']
    site_name = r['site_name']
    attachments = json.dumps(r.get('attachments', []), ensure_ascii=False)
    page_url = r['link']
    source_url = f"https://www.cqcs.gov.cn/zwxx_164/bmjz/"
    summary = content[:800] if content else ''

    try:
        cursor.execute(
            "INSERT INTO gov_raw (title, content, publish_date, page_url, site_name, source_url, summary, attachments) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
            (title, content, publish_date, page_url, site_name, source_url, summary, attachments)
        )
        inserted += 1
    except sqlite3.IntegrityError:
        pass

conn.commit()
print(f"Inserted {inserted} records")

# FTS sync
cursor.execute("DELETE FROM gov_search WHERE rowid IN (SELECT id FROM gov_raw WHERE site_name=?)", ("长寿区人民政府-部门街镇",))
cursor.execute(
    "INSERT INTO gov_search (rowid, site_name, title, summary) SELECT id, site_name, title, summary FROM gov_raw WHERE site_name=?",
    ("长寿区人民政府-部门街镇",)
)
conn.commit()

cnt = cursor.execute("SELECT COUNT(*) FROM gov_raw WHERE site_name=?", ("长寿区人民政府-部门街镇",)).fetchone()[0]
fts_cnt = cursor.execute("SELECT COUNT(*) FROM gov_search WHERE rowid IN (SELECT id FROM gov_raw WHERE site_name=?)", ("长寿区人民政府-部门街镇",)).fetchone()[0]
print(f"gov_raw: {cnt}, gov_search: {fts_cnt}")
conn.close()
print("Done!")
