# -*- coding: utf-8 -*-
"""
STEP102-04
tools/test_draft_display_address.py

blog_realtor_articles.raw_json 기준으로
초안 생성 시 표시될 소재지를 미리 확인한다.
"""

import argparse
import logging
import sys
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))

from db import get_conn
from services.complex_address_display_helper import resolve_display_address_for_draft


def fetch_recent_articles(conn, limit: int):
    sql = """
        SELECT
            article_no,
            article_name,
            building_name,
            raw_json
        FROM blog_realtor_articles
        WHERE raw_json IS NOT NULL
          AND raw_json <> ''
        ORDER BY detail_collected_at DESC, updated_at DESC, id DESC
        LIMIT %s
    """
    with conn.cursor() as cur:
        cur.execute(sql, (limit,))
        return cur.fetchall()


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--limit", type=int, default=20)
    args = parser.parse_args()

    logging.basicConfig(level=logging.INFO, format="%(message)s")

    conn = get_conn()
    try:
        rows = fetch_recent_articles(conn, args.limit)
        print(f"[DRAFT ADDRESS TEST] rows={len(rows)}")

        for row in rows:
            address, meta = resolve_display_address_for_draft(conn, row.get("raw_json"))
            print(
                f"{row.get('article_no')} | "
                f"{row.get('article_name') or row.get('building_name') or ''} | "
                f"{address} | "
                f"{meta.get('source')}"
            )

    finally:
        conn.close()


if __name__ == "__main__":
    main()
