"""migrate_005_final.py — seed 11 anchor categories còn lại"""
import logging
import os
import sys

logging.basicConfig(level=logging.INFO)
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 = [
    # Tất (socks) — minimal, recommend outfit underneath
    ("nam",   "Tất", "the_thao","top",   "Áo phông",   "Tất + Áo phông: sport set hoàn chỉnh"),
    ("nam",   "Tất", "di_lam",  "top",   "Áo Sơ mi",   "Tất + Sơ mi: office accessory"),
    ("nu",    "Tất", "the_thao","top",   "Áo phông",   "Tất thể thao + Áo phông nữ"),
    ("nu",    "Tất", "di_lam",  "top",   "Blouse",     "Tất + Blouse office nữ"),
    ("unisex","Tất", "the_thao","top",   "Áo phông",   "Tất + Áo phông: universal sport"),
    ("be_trai","Tất","the_thao","top",   "Áo phông",   "Tất bé trai + Áo phông thể thao"),

    # Áo khoác (generic)
    ("nu",    "Áo khoác","di_choi","bottom","Quần jean","Áo khoác nữ + Quần jean"),
    ("nu",    "Áo khoác","du_lich","bottom","Quần jean","Áo khoác nữ + Quần jean du lịch"),

    # Áo khoác gilet chần bông BE TRAI
    ("be_trai","Áo khoác gilet chần bông","hang_ngay","top","Áo phông","Gilet bé trai + Áo phông bên trong"),
    ("be_trai","Áo khoác gilet chần bông","hang_ngay","bottom","Quần nỉ","Gilet bé trai + Quần nỉ đông"),

    # Khẩu trang (mask — non-fashion, add minimal)
    ("unisex","Khẩu trang","hang_ngay","top","Áo phông",  "Khẩu trang + Áo phông: daily protection"),

    # Quần lót đùi NAM
    ("nam",   "Quần lót đùi","mac_nha","top","Áo phông",  "Quần lót đùi + Áo phông: home basic nam"),

    # Túi xách (bag — accessory, no forced bottom/top)
    ("unisex","Túi xách","di_choi","top",   "Áo phông",   "Túi xách + Áo phông: streetwear complete"),
    ("nu",    "Túi xách","di_choi","top",   "Áo kiểu",    "Túi xách + Áo kiểu nữ: styled"),

    # Áo nỉ có mũ BE GAI
    ("be_gai","Áo nỉ có mũ","hang_ngay","bottom","Quần leggings","Hoodie bé gái + Leggings"),
    ("be_gai","Áo nỉ có mũ","hang_ngay","bottom","Quần nỉ",      "Hoodie bé gái + Quần nỉ ấm"),
    ("be_gai","Áo nỉ có mũ","di_choi",  "bottom","Quần jean",    "Hoodie bé gái + Quần jean đi chơi"),

    # Áo mặc nhà BE TRAI
    ("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_trai","Áo mặc nhà","mac_nha","bottom","Quần nỉ",     "Áo mặc nhà bé trai + Quần nỉ"),
]


def run():
    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}/{len(RULES)} rules seeded")
    except Exception as e:
        if conn: conn.rollback()
        print(f"[ERROR] {e}")
    finally:
        if conn: conn.close()

if __name__ == "__main__":
    run()
