Files
shanxia2.0/backend/graphify-out/cache/ast/8c77757bcf0a2af728db774e8e90953f90fdb8e95efb939650f863630675a3c7.json
T
2026-06-21 09:19:07 +08:00

1 line
46 KiB
JSON

{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "label": "pl_plan_service.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L1"}, {"id": "services_pl_plan_service_determine_plan_type", "label": "determine_plan_type()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L23"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L23"}, {"id": "services_pl_plan_service_product_quantity", "label": "_product_quantity()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L31"}, {"id": "planproductcreate", "label": "PlanProductCreate", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L31"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L31"}, {"id": "services_pl_plan_service_sum_product_quantities", "label": "sum_product_quantities()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L41"}, {"id": "services_pl_plan_service_estimate_qty_fields", "label": "_estimate_qty_fields()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L45"}, {"id": "services_pl_plan_service_build_plan_product", "label": "build_plan_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L56"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L56"}, {"id": "plplanproduct", "label": "PlPlanProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L56"}, {"id": "services_pl_plan_service_resolve_driver", "label": "_resolve_driver()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L101"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L101"}, {"id": "services_pl_plan_service_calc_freight_amount", "label": "_calc_freight_amount()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L146"}, {"id": "services_pl_plan_service_validate_toxic_products", "label": "_validate_toxic_products()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L170"}, {"id": "services_pl_plan_service_resolve_hazard_flags_from_crm", "label": "resolve_hazard_flags_from_crm()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L181"}, {"id": "services_pl_plan_service_update_plan_product_certs", "label": "update_plan_product_certs()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L208"}, {"id": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "label": "apply_vehicle_prefill_to_plan()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L258"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L258"}, {"id": "plantransportcreateblock", "label": "PlanTransportCreateBlock", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L258"}, {"id": "services_pl_plan_service_create_transport_for_plan", "label": "create_transport_for_plan()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L298"}, {"id": "pltransport", "label": "PlTransport", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L298"}, {"id": "services_pl_plan_service_validate_create_full", "label": "validate_create_full()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L405"}, {"id": "plancreatefull", "label": "PlanCreateFull", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L405"}, {"id": "services_pl_plan_service_calc_plan_total_amount", "label": "calc_plan_total_amount()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L427"}, {"id": "services_pl_plan_service_rationale_266", "label": "\u9884\u9009\u8f66\u8f86\u4fe1\u606f\u5230\u8ba1\u5212\uff0c\u4e0d\u521b\u5efa\u8fd0\u8f93\u5355\uff08\u5b89\u6392\u8fd0\u8f93\u987b\u5355\u72ec\u64cd\u4f5c\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L266"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L2", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L7", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L9", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "app_models_pl_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L10", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "app_schemas_pl_plan", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L20", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_determine_plan_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L23", "weight": 1.0}, {"source": "services_pl_plan_service_determine_plan_type", "target": "str", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L23", "weight": 1.0}, {"source": "services_pl_plan_service_determine_plan_type", "target": "str", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L23", "weight": 1.0}, {"source": "services_pl_plan_service_determine_plan_type", "target": "str", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L23", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_product_quantity", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L31", "weight": 1.0}, {"source": "services_pl_plan_service_product_quantity", "target": "planproductcreate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L31", "weight": 1.0}, {"source": "services_pl_plan_service_product_quantity", "target": "decimal", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L31", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_sum_product_quantities", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L41", "weight": 1.0}, {"source": "services_pl_plan_service_sum_product_quantities", "target": "planproductcreate", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L41", "weight": 1.0}, {"source": "services_pl_plan_service_sum_product_quantities", "target": "decimal", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L41", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_estimate_qty_fields", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L45", "weight": 1.0}, {"source": "services_pl_plan_service_estimate_qty_fields", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L45", "weight": 1.0}, {"source": "services_pl_plan_service_estimate_qty_fields", "target": "decimal", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L45", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_build_plan_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L56", "weight": 1.0}, {"source": "services_pl_plan_service_build_plan_product", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L56", "weight": 1.0}, {"source": "services_pl_plan_service_build_plan_product", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L56", "weight": 1.0}, {"source": "services_pl_plan_service_build_plan_product", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L56", "weight": 1.0}, {"source": "services_pl_plan_service_build_plan_product", "target": "planproductcreate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L56", "weight": 1.0}, {"source": "services_pl_plan_service_build_plan_product", "target": "int", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L56", "weight": 1.0}, {"source": "services_pl_plan_service_build_plan_product", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L56", "weight": 1.0}, {"source": "services_pl_plan_service_build_plan_product", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L56", "weight": 1.0}, {"source": "services_pl_plan_service_build_plan_product", "target": "plplanproduct", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L56", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_resolve_driver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L101", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_driver", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L101", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_driver", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L101", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_driver", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L101", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_driver", "target": "str", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L101", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_driver", "target": "str", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L101", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_driver", "target": "str", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L101", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_driver", "target": "str", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L101", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_calc_freight_amount", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L146", "weight": 1.0}, {"source": "services_pl_plan_service_calc_freight_amount", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L146", "weight": 1.0}, {"source": "services_pl_plan_service_calc_freight_amount", "target": "plplanproduct", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L146", "weight": 1.0}, {"source": "services_pl_plan_service_calc_freight_amount", "target": "decimal", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L146", "weight": 1.0}, {"source": "services_pl_plan_service_calc_freight_amount", "target": "decimal", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L146", "weight": 1.0}, {"source": "services_pl_plan_service_calc_freight_amount", "target": "decimal", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L146", "weight": 1.0}, {"source": "services_pl_plan_service_calc_freight_amount", "target": "decimal", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L146", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_validate_toxic_products", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L170", "weight": 1.0}, {"source": "services_pl_plan_service_validate_toxic_products", "target": "plplanproduct", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L170", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_resolve_hazard_flags_from_crm", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L181", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_hazard_flags_from_crm", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L181", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_hazard_flags_from_crm", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L181", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_hazard_flags_from_crm", "target": "str", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L181", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_hazard_flags_from_crm", "target": "int", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L181", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_hazard_flags_from_crm", "target": "int", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L181", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_hazard_flags_from_crm", "target": "int", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L181", "weight": 1.0}, {"source": "services_pl_plan_service_resolve_hazard_flags_from_crm", "target": "int", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L181", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_update_plan_product_certs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L208", "weight": 1.0}, {"source": "services_pl_plan_service_update_plan_product_certs", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L208", "weight": 1.0}, {"source": "services_pl_plan_service_update_plan_product_certs", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L208", "weight": 1.0}, {"source": "services_pl_plan_service_update_plan_product_certs", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L208", "weight": 1.0}, {"source": "services_pl_plan_service_update_plan_product_certs", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L208", "weight": 1.0}, {"source": "services_pl_plan_service_update_plan_product_certs", "target": "plplanproduct", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L208", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L258", "weight": 1.0}, {"source": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L258", "weight": 1.0}, {"source": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L258", "weight": 1.0}, {"source": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "target": "plplan", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L258", "weight": 1.0}, {"source": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "target": "plantransportcreateblock", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L258", "weight": 1.0}, {"source": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "target": "plplanproduct", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L258", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_create_transport_for_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L298", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L298", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L298", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "plplan", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L298", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "plplanproduct", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L298", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "plantransportcreateblock", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L298", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L298", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L298", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "pltransport", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L298", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_validate_create_full", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L405", "weight": 1.0}, {"source": "services_pl_plan_service_validate_create_full", "target": "plancreatefull", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L405", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "target": "services_pl_plan_service_calc_plan_total_amount", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L427", "weight": 1.0}, {"source": "services_pl_plan_service_calc_plan_total_amount", "target": "planproductcreate", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L427", "weight": 1.0}, {"source": "services_pl_plan_service_calc_plan_total_amount", "target": "decimal", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L427", "weight": 1.0}, {"source": "services_pl_plan_service_product_quantity", "target": "decimal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L33", "weight": 1.0}, {"source": "services_pl_plan_service_sum_product_quantities", "target": "services_pl_plan_service_product_quantity", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L42", "weight": 1.0}, {"source": "services_pl_plan_service_build_plan_product", "target": "services_pl_plan_service_product_quantity", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L66", "weight": 1.0}, {"source": "services_pl_plan_service_build_plan_product", "target": "services_pl_plan_service_estimate_qty_fields", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L67", "weight": 1.0}, {"source": "services_pl_plan_service_build_plan_product", "target": "plplanproduct", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L69", "weight": 1.0}, {"source": "services_pl_plan_service_calc_freight_amount", "target": "decimal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L154", "weight": 1.0}, {"source": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "target": "services_pl_plan_service_resolve_driver", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L279", "weight": 1.0}, {"source": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "target": "services_pl_plan_service_calc_freight_amount", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L282", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "services_pl_plan_service_validate_toxic_products", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L321", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "services_pl_plan_service_resolve_driver", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L323", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "services_pl_plan_service_calc_freight_amount", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L338", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "decimal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L349", "weight": 1.0}, {"source": "services_pl_plan_service_create_transport_for_plan", "target": "pltransport", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L354", "weight": 1.0}, {"source": "services_pl_plan_service_validate_create_full", "target": "decimal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L417", "weight": 1.0}, {"source": "services_pl_plan_service_validate_create_full", "target": "services_pl_plan_service_sum_product_quantities", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L419", "weight": 1.0}, {"source": "services_pl_plan_service_calc_plan_total_amount", "target": "decimal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L428", "weight": 1.0}, {"source": "services_pl_plan_service_rationale_266", "target": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L266", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_pl_plan_service_build_plan_product", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L70"}, {"caller_nid": "services_pl_plan_service_resolve_driver", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L109"}, {"caller_nid": "services_pl_plan_service_resolve_driver", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L109"}, {"caller_nid": "services_pl_plan_service_resolve_driver", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L121"}, {"caller_nid": "services_pl_plan_service_resolve_driver", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L121"}, {"caller_nid": "services_pl_plan_service_resolve_driver", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L121"}, {"caller_nid": "services_pl_plan_service_resolve_driver", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L128"}, {"caller_nid": "services_pl_plan_service_resolve_driver", "callee": "asc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L128"}, {"caller_nid": "services_pl_plan_service_resolve_driver", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L133"}, {"caller_nid": "services_pl_plan_service_resolve_driver", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L133"}, {"caller_nid": "services_pl_plan_service_resolve_driver", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L143"}, {"caller_nid": "services_pl_plan_service_validate_toxic_products", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L175"}, {"caller_nid": "services_pl_plan_service_resolve_hazard_flags_from_crm", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L195"}, {"caller_nid": "services_pl_plan_service_resolve_hazard_flags_from_crm", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L195"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L217"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L217"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L226"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L228"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L233"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L233"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L243"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L245"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L246"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L247"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L249"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L252"}, {"caller_nid": "services_pl_plan_service_update_plan_product_certs", "callee": "refresh", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L254"}, {"caller_nid": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L268"}, {"caller_nid": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L268"}, {"caller_nid": "services_pl_plan_service_apply_vehicle_prefill_to_plan", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L277"}, {"caller_nid": "services_pl_plan_service_create_transport_for_plan", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L310"}, {"caller_nid": "services_pl_plan_service_create_transport_for_plan", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L310"}, {"caller_nid": "services_pl_plan_service_create_transport_for_plan", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L319"}, {"caller_nid": "services_pl_plan_service_create_transport_for_plan", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L331"}, {"caller_nid": "services_pl_plan_service_create_transport_for_plan", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L331"}, {"caller_nid": "services_pl_plan_service_create_transport_for_plan", "callee": "generate_transport_no", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L353"}, {"caller_nid": "services_pl_plan_service_create_transport_for_plan", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L355"}, {"caller_nid": "services_pl_plan_service_create_transport_for_plan", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L380"}, {"caller_nid": "services_pl_plan_service_create_transport_for_plan", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L382"}, {"caller_nid": "services_pl_plan_service_create_transport_for_plan", "callee": "PlPlanTransport", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L383"}, {"caller_nid": "services_pl_plan_service_create_transport_for_plan", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L384"}, {"caller_nid": "services_pl_plan_service_validate_create_full", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L407"}, {"caller_nid": "services_pl_plan_service_validate_create_full", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L409"}, {"caller_nid": "services_pl_plan_service_validate_create_full", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L418"}, {"caller_nid": "services_pl_plan_service_validate_create_full", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L421"}, {"caller_nid": "services_pl_plan_service_validate_create_full", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py", "source_location": "L424"}]}