import os
import sys

sys.path.insert(0, os.path.abspath("."))
if hasattr(sys.stdout, "reconfigure"):
    sys.stdout.reconfigure(encoding="utf-8")

from app.modules.partners.application.partner_service import PartnerService


def seed_partners():
    print("[*] Bắt đầu trích xuất và đồng bộ Khách Hàng & Đối Tác từ 100% hóa đơn...")
    svc = PartnerService()
    res = svc.extract_and_sync_all_partners_from_invoices()
    print(f"[+] Kết quả đồng bộ: {res}")

    # Lấy thông tin thống kê
    summary = svc.get_partners(limit=5)
    kpis = summary["kpis"]
    print("\n=== THỐNG KÊ TOÀN DIỆN ĐỐI TÁC & KHÁCH HÀNG ===")
    print(f"  • Tổng số đơn vị đối tác / khách hàng: {kpis['total_all']}")
    print(
        f"  • Tổng Khách hàng (có doanh thu): {kpis['total_customers']} (Tổng: {kpis['grand_total_output']:,.0f} ₫)"
    )
    print(f"  • Tổng Đối tác hợp tác / Liên danh: {kpis['total_partners']}")
    print(
        f"  • Tổng Nhà cung cấp (có chi phí): {kpis['total_vendors']} (Tổng: {kpis['grand_total_input']:,.0f} ₫)"
    )
    print(f"  • Số đơn vị có lịch sử đổi tên / địa chỉ: {kpis['total_with_history']}")


if __name__ == "__main__":
    seed_partners()
