f12705b5e9ac84e89c49ecdbae50ebfaa889ee0769b2cd3c28bfa02e12d9e582.json 58 KB

1
  1. {"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "label": "plans.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L1"}, {"id": "db_plans_base_query", "label": "_base_query()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L55"}, {"id": "db_plans_merge_query", "label": "_merge_query()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L62"}, {"id": "db_plans_param_get", "label": "_param_get()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L72"}, {"id": "db_plans_filters_from_params", "label": "_filters_from_params()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L79"}, {"id": "db_plans_body_to_params", "label": "_body_to_params()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L104"}, {"id": "db_plans_fetch_plans", "label": "_fetch_plans()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L115"}, {"id": "db_plans_list_plans", "label": "list_plans()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L209"}, {"id": "db_plans_planexportbody", "label": "PlanExportBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L271"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "db_plans_export_plans", "label": "export_plans()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L289"}, {"id": "db_plans_generate_plan_no", "label": "_generate_plan_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L329"}, {"id": "db_plans_create_plan", "label": "create_plan()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L336"}, {"id": "db_plans_autogeneratemonthlyresult", "label": "AutoGenerateMonthlyResult", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L379"}, {"id": "db_plans_run_auto_generate_monthly", "label": "run_auto_generate_monthly()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L386"}, {"id": "db_plans_get_plan", "label": "get_plan()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L400"}, {"id": "db_plans_update_plan", "label": "update_plan()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L411"}, {"id": "db_plans_delete_plan", "label": "delete_plan()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L429"}, {"id": "db_plans_get_plan_by_id_only", "label": "_get_plan_by_id_only()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L466"}, {"id": "db_plans_apply_plan_product_update", "label": "_apply_plan_product_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L480"}, {"id": "db_plans_apply_plan_update", "label": "_apply_plan_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L496"}, {"id": "db_plans_planrelateddata", "label": "PlanRelatedData", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L517"}, {"id": "db_plans_get_plan_related", "label": "get_plan_related()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L523"}, {"id": "db_plans_thirdpartyplanpagedata", "label": "ThirdPartyPlanPageData", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L568"}, {"id": "db_plans_get_third_party_plan_page", "label": "get_third_party_plan_page()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L575"}, {"id": "db_plans_rationale_294", "label": "\u5bfc\u51fa\u8ba1\u5212\u5217\u8868\uff08\u5f53\u524d\u7b5b\u9009\u5168\u91cf\uff0c\u6216 ids \u5df2\u9009\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L294"}, {"id": "db_plans_rationale_391", "label": "\u624b\u52a8\u89e6\u53d1\u8ba1\u5212\u6309\u6708\u81ea\u52a8\u751f\u6210\uff08\u5b9a\u65f6\u4efb\u52a1\u540c\u6b3e\u903b\u8f91\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L391"}, {"id": "db_plans_rationale_579", "label": "\u4e09\u65b9 H5 \u586b\u5199\u9875\u521d\u59cb\u5316\u6570\u636e\uff08\u65e0\u9700\u95e8\u6237\u767b\u5f55\uff0c\u4e0e\u539f\u7cfb\u7edf\u4e00\u81f4\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L579"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L1", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L7", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L8", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L10", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_core_db_auth", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L11", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_core_delete_guard", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L12", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_core_tenant_context", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L13", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L14", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_services_db_data_scope", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L15", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_models_db_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L16", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_schemas_db_inventory", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L17", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_schemas_db_plans", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L18", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_schemas_db_weighing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L24", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_services_db_mappers", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L25", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_services_db_plan_list_filters", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L34", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_services_db_product_helpers", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L35", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "app_utils_excel_export", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L39", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_base_query", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L55", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_merge_query", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L62", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_param_get", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L72", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_filters_from_params", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L79", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_body_to_params", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L104", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_fetch_plans", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L115", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_list_plans", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L209", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_planexportbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L271", "weight": 1.0}, {"source": "db_plans_planexportbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L271", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_export_plans", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L289", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_generate_plan_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L329", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_create_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L336", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_autogeneratemonthlyresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L379", "weight": 1.0}, {"source": "db_plans_autogeneratemonthlyresult", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L379", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_run_auto_generate_monthly", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L386", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_get_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L400", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_update_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L411", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_delete_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L429", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_get_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L449", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_get_plan_by_id_only", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L466", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_apply_plan_product_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L480", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_apply_plan_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L496", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_planrelateddata", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L517", "weight": 1.0}, {"source": "db_plans_planrelateddata", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L517", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_get_plan_related", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L523", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_thirdpartyplanpagedata", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L568", "weight": 1.0}, {"source": "db_plans_thirdpartyplanpagedata", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L568", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_db_plans_py", "target": "db_plans_get_third_party_plan_page", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L575", "weight": 1.0}, {"source": "db_plans_filters_from_params", "target": "db_plans_param_get", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L81", "weight": 1.0}, {"source": "db_plans_fetch_plans", "target": "db_plans_base_query", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L119", "weight": 1.0}, {"source": "db_plans_fetch_plans", "target": "db_plans_param_get", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L121", "weight": 1.0}, {"source": "db_plans_fetch_plans", "target": "db_plans_filters_from_params", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L132", "weight": 1.0}, {"source": "db_plans_list_plans", "target": "db_plans_merge_query", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L236", "weight": 1.0}, {"source": "db_plans_list_plans", "target": "db_plans_fetch_plans", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L249", "weight": 1.0}, {"source": "db_plans_export_plans", "target": "db_plans_fetch_plans", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L296", "weight": 1.0}, {"source": "db_plans_export_plans", "target": "db_plans_body_to_params", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L296", "weight": 1.0}, {"source": "db_plans_create_plan", "target": "db_plans_generate_plan_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L342", "weight": 1.0}, {"source": "db_plans_run_auto_generate_monthly", "target": "db_plans_autogeneratemonthlyresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L396", "weight": 1.0}, {"source": "db_plans_update_plan", "target": "db_plans_apply_plan_product_update", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L420", "weight": 1.0}, {"source": "db_plans_update_plan", "target": "db_plans_apply_plan_update", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L421", "weight": 1.0}, {"source": "db_plans_get_plan", "target": "db_plans_base_query", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L453", "weight": 1.0}, {"source": "db_plans_get_plan_related", "target": "db_plans_planrelateddata", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L562", "weight": 1.0}, {"source": "db_plans_get_third_party_plan_page", "target": "db_plans_get_plan_by_id_only", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L580", "weight": 1.0}, {"source": "db_plans_get_third_party_plan_page", "target": "db_plans_thirdpartyplanpagedata", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L632", "weight": 1.0}, {"source": "db_plans_rationale_294", "target": "db_plans_export_plans", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L294", "weight": 1.0}, {"source": "db_plans_rationale_391", "target": "db_plans_run_auto_generate_monthly", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L391", "weight": 1.0}, {"source": "db_plans_rationale_579", "target": "db_plans_get_third_party_plan_page", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L579", "weight": 1.0}], "raw_calls": [{"caller_nid": "db_plans_base_query", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L56"}, {"caller_nid": "db_plans_base_query", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L56"}, {"caller_nid": "db_plans_merge_query", "callee": "items", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L63"}, {"caller_nid": "db_plans_merge_query", "callee": "multi_items", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L64"}, {"caller_nid": "db_plans_filters_from_params", "callee": "build_plan_column_filters", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L80"}, {"caller_nid": "db_plans_body_to_params", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L105"}, {"caller_nid": "db_plans_body_to_params", "callee": "pop", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L106"}, {"caller_nid": "db_plans_body_to_params", "callee": "pop", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L107"}, {"caller_nid": "db_plans_body_to_params", "callee": "getattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L108"}, {"caller_nid": "db_plans_body_to_params", "callee": "items", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L109"}, {"caller_nid": "db_plans_fetch_plans", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L118"}, {"caller_nid": "db_plans_fetch_plans", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L118"}, {"caller_nid": "db_plans_fetch_plans", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L119"}, {"caller_nid": "db_plans_fetch_plans", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L119"}, {"caller_nid": "db_plans_fetch_plans", "callee": "lower", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L123"}, {"caller_nid": "db_plans_fetch_plans", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L123"}, {"caller_nid": "db_plans_fetch_plans", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L124"}, {"caller_nid": "db_plans_fetch_plans", "callee": "or_", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L125"}, {"caller_nid": "db_plans_fetch_plans", "callee": "contains", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L126"}, {"caller_nid": "db_plans_fetch_plans", "callee": "lower", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L126"}, {"caller_nid": "db_plans_fetch_plans", "callee": "contains", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L127"}, {"caller_nid": "db_plans_fetch_plans", "callee": "lower", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L127"}, {"caller_nid": "db_plans_fetch_plans", "callee": "contains", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L128"}, {"caller_nid": "db_plans_fetch_plans", "callee": "lower", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L128"}, {"caller_nid": "db_plans_fetch_plans", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L134"}, {"caller_nid": "db_plans_fetch_plans", "callee": "apply_db_scope", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L136"}, {"caller_nid": "db_plans_fetch_plans", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L137"}, {"caller_nid": "db_plans_fetch_plans", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L143"}, {"caller_nid": "db_plans_fetch_plans", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L143"}, {"caller_nid": "db_plans_fetch_plans", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L143"}, {"caller_nid": "db_plans_fetch_plans", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L147"}, {"caller_nid": "db_plans_fetch_plans", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L161"}, {"caller_nid": "db_plans_fetch_plans", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L164"}, {"caller_nid": "db_plans_fetch_plans", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L164"}, {"caller_nid": "db_plans_fetch_plans", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L166"}, {"caller_nid": "db_plans_fetch_plans", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L166"}, {"caller_nid": "db_plans_fetch_plans", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L167"}, {"caller_nid": "db_plans_fetch_plans", "callee": "or_", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L167"}, {"caller_nid": "db_plans_fetch_plans", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L170"}, {"caller_nid": "db_plans_fetch_plans", "callee": "group_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L170"}, {"caller_nid": "db_plans_fetch_plans", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L170"}, {"caller_nid": "db_plans_fetch_plans", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L170"}, {"caller_nid": "db_plans_fetch_plans", "callee": "label", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L173"}, {"caller_nid": "db_plans_fetch_plans", "callee": "sum", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L173"}, {"caller_nid": "db_plans_fetch_plans", "callee": "float", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L181"}, {"caller_nid": "db_plans_fetch_plans", "callee": "load_user_display_name_map", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L194"}, {"caller_nid": "db_plans_fetch_plans", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L197"}, {"caller_nid": "db_plans_fetch_plans", "callee": "plan_to_read_with_fill_link", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L198"}, {"caller_nid": "db_plans_fetch_plans", "callee": "calc_executed_for_plan", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L200"}, {"caller_nid": "db_plans_fetch_plans", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L201"}, {"caller_nid": "db_plans_export_plans", "callee": "set", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L298"}, {"caller_nid": "db_plans_export_plans", "callee": "len", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L300"}, {"caller_nid": "db_plans_export_plans", "callee": "ExportValidationError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L301"}, {"caller_nid": "db_plans_export_plans", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L304"}, {"caller_nid": "db_plans_export_plans", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L305"}, {"caller_nid": "db_plans_export_plans", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L306"}, {"caller_nid": "db_plans_export_plans", "callee": "round", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L308"}, {"caller_nid": "db_plans_export_plans", "callee": "float", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L308"}, {"caller_nid": "db_plans_export_plans", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L311"}, {"caller_nid": "db_plans_export_plans", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L312"}, {"caller_nid": "db_plans_export_plans", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L313"}, {"caller_nid": "db_plans_export_plans", "callee": "filter_export_columns", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L314"}, {"caller_nid": "db_plans_export_plans", "callee": "strftime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L315"}, {"caller_nid": "db_plans_export_plans", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L315"}, {"caller_nid": "db_plans_export_plans", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L316"}, {"caller_nid": "db_plans_export_plans", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L316"}, {"caller_nid": "db_plans_export_plans", "callee": "export_rows_to_xlsx_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L317"}, {"caller_nid": "db_plans_export_plans", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L326"}, {"caller_nid": "db_plans_export_plans", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L326"}, {"caller_nid": "db_plans_generate_plan_no", "callee": "generate_plan_no", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L332"}, {"caller_nid": "db_plans_create_plan", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L341"}, {"caller_nid": "db_plans_create_plan", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L341"}, {"caller_nid": "db_plans_create_plan", "callee": "resolve_crm_product", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L348"}, {"caller_nid": "db_plans_create_plan", "callee": "DbPurchasePlan", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L350"}, {"caller_nid": "db_plans_create_plan", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L351"}, {"caller_nid": "db_plans_create_plan", "callee": "parse_date_str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L354"}, {"caller_nid": "db_plans_create_plan", "callee": "today", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L354"}, {"caller_nid": "db_plans_create_plan", "callee": "parse_date_str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L355"}, {"caller_nid": "db_plans_create_plan", "callee": "parse_date_str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L356"}, {"caller_nid": "db_plans_create_plan", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L360"}, {"caller_nid": "db_plans_create_plan", "callee": "apply_product_snapshot_to_plan", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L372"}, {"caller_nid": "db_plans_create_plan", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L373"}, {"caller_nid": "db_plans_create_plan", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L374"}, {"caller_nid": "db_plans_create_plan", "callee": "refresh", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L375"}, {"caller_nid": "db_plans_create_plan", "callee": "plan_to_read", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L376"}, {"caller_nid": "db_plans_run_auto_generate_monthly", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L392"}, {"caller_nid": "db_plans_run_auto_generate_monthly", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L392"}, {"caller_nid": "db_plans_run_auto_generate_monthly", "callee": "run_auto_generate_monthly_plans", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L395"}, {"caller_nid": "db_plans_get_plan", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L405"}, {"caller_nid": "db_plans_get_plan", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L405"}, {"caller_nid": "db_plans_get_plan", "callee": "_get_plan", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L406"}, {"caller_nid": "db_plans_get_plan", "callee": "plan_to_read", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L407"}, {"caller_nid": "db_plans_update_plan", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L417"}, {"caller_nid": "db_plans_update_plan", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L417"}, {"caller_nid": "db_plans_update_plan", "callee": "_get_plan", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L418"}, {"caller_nid": "db_plans_update_plan", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L419"}, {"caller_nid": "db_plans_update_plan", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L423"}, {"caller_nid": "db_plans_update_plan", "callee": "refresh", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L424"}, {"caller_nid": "db_plans_update_plan", "callee": "plan_to_read", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L425"}, {"caller_nid": "db_plans_delete_plan", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L434"}, {"caller_nid": "db_plans_delete_plan", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L434"}, {"caller_nid": "db_plans_delete_plan", "callee": "_get_plan", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L435"}, {"caller_nid": "db_plans_delete_plan", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L438"}, {"caller_nid": "db_plans_delete_plan", "callee": "assert_row_deletable_by_creator", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L443"}, {"caller_nid": "db_plans_delete_plan", "callee": "user_info_from_context", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L443"}, {"caller_nid": "db_plans_delete_plan", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L446"}, {"caller_nid": "db_plans_get_plan", "callee": "one_or_none", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L453"}, {"caller_nid": "db_plans_get_plan", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L453"}, {"caller_nid": "db_plans_get_plan", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L458"}, {"caller_nid": "db_plans_get_plan", "callee": "assert_db_row_in_scope", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L462"}, {"caller_nid": "db_plans_get_plan_by_id_only", "callee": "one_or_none", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L468"}, {"caller_nid": "db_plans_get_plan_by_id_only", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L468"}, {"caller_nid": "db_plans_get_plan_by_id_only", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L468"}, {"caller_nid": "db_plans_get_plan_by_id_only", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L473"}, {"caller_nid": "db_plans_apply_plan_product_update", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L484"}, {"caller_nid": "db_plans_apply_plan_product_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L488"}, {"caller_nid": "db_plans_apply_plan_product_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L489"}, {"caller_nid": "db_plans_apply_plan_product_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L490"}, {"caller_nid": "db_plans_apply_plan_product_update", "callee": "resolve_crm_product", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L492"}, {"caller_nid": "db_plans_apply_plan_product_update", "callee": "apply_product_snapshot_to_plan", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L493"}, {"caller_nid": "db_plans_apply_plan_update", "callee": "items", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L497"}, {"caller_nid": "db_plans_apply_plan_update", "callee": "isinstance", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L499"}, {"caller_nid": "db_plans_apply_plan_update", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L500"}, {"caller_nid": "db_plans_apply_plan_update", "callee": "setattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L505"}, {"caller_nid": "db_plans_apply_plan_update", "callee": "setattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L507"}, {"caller_nid": "db_plans_apply_plan_update", "callee": "parse_date_str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L507"}, {"caller_nid": "db_plans_apply_plan_update", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L507"}, {"caller_nid": "db_plans_apply_plan_update", "callee": "parse_datetime_str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L510"}, {"caller_nid": "db_plans_apply_plan_update", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L510"}, {"caller_nid": "db_plans_apply_plan_update", "callee": "isinstance", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L512"}, {"caller_nid": "db_plans_apply_plan_update", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L513"}, {"caller_nid": "db_plans_apply_plan_update", "callee": "setattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L514"}, {"caller_nid": "db_plans_get_plan_related", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L528"}, {"caller_nid": "db_plans_get_plan_related", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L528"}, {"caller_nid": "db_plans_get_plan_related", "callee": "_get_plan", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L529"}, {"caller_nid": "db_plans_get_plan_related", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L532"}, {"caller_nid": "db_plans_get_plan_related", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L532"}, {"caller_nid": "db_plans_get_plan_related", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L532"}, {"caller_nid": "db_plans_get_plan_related", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L532"}, {"caller_nid": "db_plans_get_plan_related", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L538"}, {"caller_nid": "db_plans_get_plan_related", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L538"}, {"caller_nid": "db_plans_get_plan_related", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L542"}, {"caller_nid": "db_plans_get_plan_related", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L542"}, {"caller_nid": "db_plans_get_plan_related", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L548"}, {"caller_nid": "db_plans_get_plan_related", "callee": "or_", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L549"}, {"caller_nid": "db_plans_get_plan_related", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L555"}, {"caller_nid": "db_plans_get_plan_related", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L556"}, {"caller_nid": "db_plans_get_plan_related", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L556"}, {"caller_nid": "db_plans_get_plan_related", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L556"}, {"caller_nid": "db_plans_get_plan_related", "callee": "load_user_display_name_map", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L558"}, {"caller_nid": "db_plans_get_plan_related", "callee": "inventory_to_read", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L563"}, {"caller_nid": "db_plans_get_plan_related", "callee": "weighing_to_read", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L564"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "today", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L583"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L588"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L593"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "strftime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L598"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "parse_date_str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L599"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L601"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L601"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L601"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L601"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L608"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L608"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "replace", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L612"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L614"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L614"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L614"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L614"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L622"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L622"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "load_user_display_name_map", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L626"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "plan_to_read", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L633"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "inventory_to_read", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L635"}, {"caller_nid": "db_plans_get_third_party_plan_page", "callee": "inventory_to_read", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py", "source_location": "L638"}]}