from flask import Blueprint, request, jsonify
from ..supabase_client import get_client

api_bp = Blueprint("api", __name__)

@api_bp.get("/search")
def api_search():
    q = (request.args.get("q") or "").strip()
    org = (request.args.get("org") or "").upper()
    typ = (request.args.get("type") or "emp").lower()  # emp | exec
    supa = get_client()

    def like_any(table, fields):
        for f in fields:
            data = supa.table(table).select("*").ilike(f, f"%{q}%").limit(50).execute().data
            if data:
                return data
        return []

    if typ == "emp":
        if org == "MOTIE":
            rows = like_any("motie_org", ["name","department","position","task"])
        elif org == "MOEF":
            rows = like_any("moef_org", ["name","department","position","task"])
        elif org == "KEPCO":
            rows = like_any("kepco_org", ["name","department","position","task"])
        else:
            rows = like_any("motie_org", ["name","department"]) + like_any("moef_org", ["name","department"])
        return jsonify(rows)
    else:
        # exec: motie_vip, moef_vip, kepco_org(임원필터)
        rows = []
        if org in ("","MOTIE","ALL"):
            r = like_any("motie_vip", ["name","department","position","task"])
            rows += r
        if org in ("","MOEF","ALL"):
            r = like_any("moef_vip", ["name","department","position","task"])
            rows += r
        if org in ("","KEPCO","ALL"):
            r = like_any("kepco_org", ["name","position","department"])
            # 간단 임원 필터
            keywords = ["사장","부사장","사외이사","상임감사","전무","상무","본부장","처장","실장"]
            r = [x for x in r if any(k in (x.get("position") or "") for k in keywords)]
            rows += r
        return jsonify(rows)
