def on_provision(ctx):
    """Automated provisioning: record in ext_data, notify HR."""
    data = ctx["stage_data"]
    name = data.get("full_name", "unknown")
    dept = data.get("department", "general")

    # Record provision in ext_data table
    db.insert("provisions", {
        "employee_name": name,
        "department": dept,
        "needs_vpn": str(data.get("needs_vpn", "false")),
        "needs_admin": str(data.get("needs_admin", "false")),
        "equipment": data.get("equipment", "standard laptop"),
        "status": "provisioned",
    })

    # Notify the HR user who started this workflow
    notifications.send(
        ctx["started_by"],
        "Accounts provisioned for " + name,
        "Department: " + dept + ". Ready for manager review.",
    )

    return {"advance": True, "data": {
        "provision_status": "complete",
        "provisioned_for": name,
    }}


def on_welcome(ctx):
    """Completion logging: record onboarding and send welcome."""
    data = ctx["stage_data"]
    name = data.get("full_name", "")
    dept = data.get("department", "")

    db.insert("onboarding_log", {
        "employee_name": name,
        "department": dept,
        "completed_by": ctx["started_by"],
        "status": "complete",
    })

    notifications.send(
        ctx["started_by"],
        "Onboarding complete: " + name,
        "All stages finished. Welcome aboard!",
    )

    return {"advance": True, "data": {"onboarding_complete": True}}
