import logging, os, sys

backend_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))
if backend_dir not in sys.path:
    sys.path.insert(0, backend_dir)

TABLE = "dashboard_canifa.chatbot_fashion_rules"

RULES = [
    # Bộ mặc nhà (nguyên set) -> Phối với phụ kiện hoặc outerwear
    ("all", "Bộ mặc nhà", "mac_nha", "accessory", "Tất", "Bộ mặc nhà + Tất: Giữ ấm bàn chân khi ngủ"),
    ("all", "Bộ mặc nhà", "mac_nha", "outerwear", "Áo khoác gió", "Bộ mặc nhà + Áo khoác gió: Mặc ngoài khi ra khỏi phòng"),

    # Quần mặc nhà -> Phối với Áo mặc nhà hoặc Áo phông
    ("all", "Quần mặc nhà", "mac_nha", "top", "Áo mặc nhà", "Quần mặc nhà + Áo mặc nhà: Nguyên set thoải mái"),
    ("all", "Quần mặc nhà", "mac_nha", "top", "Áo phông", "Quần mặc nhà + Áo phông: Đơn giản, thoải mái"),

    # Áo mặc nhà Bé Trai / Bé Gái / Nữ (Bổ sung thêm giới tính)
    ("be_trai", "Áo mặc nhà", "mac_nha", "bottom", "Quần mặc nhà", "Áo mặc nhà + Quần mặc nhà bé trai"),
    ("be_gai", "Áo mặc nhà", "mac_nha", "bottom", "Quần mặc nhà", "Áo mặc nhà + Quần mặc nhà bé gái"),
    ("nu", "Áo mặc nhà", "mac_nha", "bottom", "Quần mặc nhà", "Áo mặc nhà + Quần lụa/cotton lửng cho nữ"),

    # Áo khoác chống nắng -> Phối chống nắng cơ bản lớp ngoài
    ("all", "Áo khoác chống nắng", "di_choi", "top", "Áo phông", "Khoác chống nắng ngoài Áo phông"),
    ("all", "Áo khoác chống nắng", "di_choi", "bottom", "Quần jean", "Khoác chống nắng + Quần jean năng động"),
    
    # Tất -> Phụ kiện (nếu Tất làm món chính)
    ("all", "Tất", "hang_ngay", "bottom", "Quần soóc", "Tất + Quần soóc thao năng động"),
    ("all", "Tất", "the_thao", "bottom", "Quần thể thao", "Tất + Quần thể thao chuyên dụng"),
]

def run():

    import os, sys
    backend_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))
    sys.path.insert(0, backend_dir)
    from common.pool_wrapper import get_pooled_connection_compat
    conn = None
    try:
        conn = get_pooled_connection_compat()
        cur = conn.cursor()
        inserted = 0
        for gender, anchor, occ, role, target, reason in RULES:
            cur.execute(f"""
                INSERT INTO {TABLE} (gender_target, anchor_category, occasion_tag, match_role, target_category, ai_reason)
                VALUES (%s, %s, %s, %s, %s, %s) ON CONFLICT DO NOTHING
            """, (gender, anchor, occ, role, target, reason))
            if cur.rowcount > 0:
                inserted += 1
        conn.commit()
        cur.close()
        print(f"[OK] migrate_005 done: +{inserted} rules seeded ({len(RULES)} total in batch)")
    except Exception as e:
        if conn: conn.rollback()
        print(f"[ERROR] {e}")
    finally:
        if conn: conn.close()

if __name__ == "__main__":
    run()
