from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse
from app.web.deps import templates, sb, logger

router = APIRouter()

FIELDS = "id,parent_id,department,order_no,level,leader_id,leader_name,leader_position,leader_phone"

def _row(r):
    return {
        "id": r.get("id"),
        "parent": r.get("parent_id"),
        "department": r.get("department"),
        "order": r.get("order_no") or 0,
        "level": r.get("level") or 0,
        "leader_id": r.get("leader_id"),
        "name": (r.get("leader_name") or "").strip(),
        "position": (r.get("leader_position") or "").strip(),
        "phone": r.get("leader_phone") or "",
    }

@router.get("/org/motie/chart", response_class=HTMLResponse)
async def motie_chart(request: Request):
    try:
        res = sb.table("v_motie_org_chart").select(FIELDS).limit(5000).execute()
        rows = [_row(r) for r in (res.data or [])]
    except Exception as e:
        logger.error(f"motie_org_chart fetch failed: {e}")
        rows = []

    return templates.TemplateResponse(
        "org/motie_chart.html",
        {"request": request, "nodes": rows, "title": "산업통상자원부 조직도"}
    )
