75251d31fd3efcddffcde988aafbfc8ec49eb0621ca30b2cfad3c6ac0fda33e6.json 85 KB

1
  1. {"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "label": "customer.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_ensure_customer_in_scope", "label": "_ensure_customer_in_scope()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L25"}, {"id": "crm_customer_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L29"}, {"id": "crm_customer_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L39"}, {"id": "crm_customer_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L57"}, {"id": "crm_customer_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L73"}, {"id": "crm_customer_enrich_user_names", "label": "_enrich_user_names()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L83"}, {"id": "crm_customer_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L110"}, {"id": "crm_customer_list_customer_options", "label": "list_customer_options()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L165"}, {"id": "crm_customer_list_customers", "label": "list_customers()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L216"}, {"id": "crm_customer_list_pool_customers", "label": "list_pool_customers()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L321"}, {"id": "crm_customer_list_customer_column_facet_values", "label": "list_customer_column_facet_values()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L354"}, {"id": "crm_customer_get_customer", "label": "get_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L400"}, {"id": "crm_customer_get_customer_by_no", "label": "get_customer_by_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L411"}, {"id": "crm_customer_generate_customer_no", "label": "generate_customer_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L423"}, {"id": "crm_customer_customer_name_exists", "label": "customer_name_exists()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L449"}, {"id": "crm_customer_check_duplicate_customer", "label": "check_duplicate_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L465"}, {"id": "crm_customer_create_customer", "label": "create_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L488"}, {"id": "crm_customer_update_customer", "label": "update_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L569"}, {"id": "crm_customer_soft_delete_customer", "label": "soft_delete_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L643"}, {"id": "crm_customer_transfer_customer", "label": "transfer_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L660"}, {"id": "crm_customer_deal_customer", "label": "deal_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L702"}, {"id": "crm_customer_into_pool", "label": "into_pool()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L730"}, {"id": "crm_customer_claim_customer", "label": "claim_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L773"}, {"id": "crm_customer_batch_claim_customers", "label": "batch_claim_customers()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L811"}, {"id": "crm_customer_assign_customer", "label": "assign_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L824"}, {"id": "crm_customer_update_follow_stats", "label": "update_follow_stats()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L875"}, {"id": "crm_customer_update_contact_count", "label": "update_contact_count()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L892"}, {"id": "crm_customer_get_park_area_list", "label": "get_park_area_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L908"}, {"id": "crm_customer_rationale_1", "label": "CRM \u5ba2\u6237 CRUD\uff08\u5ba2\u6237\u4e3b\u8868 + \u8f6c\u79fb/\u6210\u4ea4/\u516c\u6d77\u6c60\u64cd\u4f5c\uff09", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_rationale_173", "label": "\u5ba2\u6237\u4e0b\u62c9\u9009\u9879\uff1a\u79df\u6237\u5185\u53ea\u8bfb\u641c\u7d22\uff0c\u4e0d\u505a owner \u6570\u636e\u6743\u9650\uff08\u4f9b\u5730\u78c5/\u5408\u540c\u7b49\u4e3b\u6570\u636e\u9009\u7528\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L173"}, {"id": "crm_customer_rationale_366", "label": "\u5ba2\u6237\u5217\u8868\u5217\u5934\u53ef\u9009\u503c\uff1acustomerNo / customerName / shortName\uff08\u53ef\u5e26\u5217\u8868\u4e0a\u4e0b\u6587\u5217\u7b5b\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L366"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L8", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L9", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "app_core_delete_guard", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L11", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L12", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "app_models_crm_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L13", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "app_models_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L14", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "app_crud_crm_data_scope_helpers", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L15", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "app_services_crm_customer_list_filters", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L20", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "app_services_crm_list_sort", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L21", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "app_utils_pinyin_abbr", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L22", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_ensure_customer_in_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L25", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_total_pages", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L29", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_parse_optional_date", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L39", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_parse_optional_datetime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L57", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_resolve_user_display_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L73", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_enrich_user_names", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L83", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L110", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_list_customer_options", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L165", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_list_customers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L216", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_list_pool_customers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L321", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_list_customer_column_facet_values", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L354", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_get_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L400", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_get_customer_by_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L411", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_generate_customer_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L423", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_customer_name_exists", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L449", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_check_duplicate_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L465", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_create_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L488", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_update_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L569", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_soft_delete_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L643", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_transfer_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L660", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_deal_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L702", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_into_pool", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L730", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_claim_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L773", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_batch_claim_customers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L811", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_assign_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L824", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_update_follow_stats", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L875", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_update_contact_count", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L892", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "target": "crm_customer_get_park_area_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L908", "weight": 1.0}, {"source": "crm_customer_list_customers", "target": "crm_customer_row_to_dict", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L316", "weight": 1.0}, {"source": "crm_customer_list_customers", "target": "crm_customer_enrich_user_names", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L317", "weight": 1.0}, {"source": "crm_customer_list_pool_customers", "target": "crm_customer_list_customers", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L334", "weight": 1.0}, {"source": "crm_customer_check_duplicate_customer", "target": "crm_customer_row_to_dict", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L485", "weight": 1.0}, {"source": "crm_customer_create_customer", "target": "crm_customer_customer_name_exists", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L500", "weight": 1.0}, {"source": "crm_customer_create_customer", "target": "crm_customer_generate_customer_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L506", "weight": 1.0}, {"source": "crm_customer_create_customer", "target": "crm_customer_resolve_user_display_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L509", "weight": 1.0}, {"source": "crm_customer_create_customer", "target": "crm_customer_parse_optional_datetime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L555", "weight": 1.0}, {"source": "crm_customer_update_customer", "target": "crm_customer_get_customer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L578", "weight": 1.0}, {"source": "crm_customer_update_customer", "target": "crm_customer_ensure_customer_in_scope", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L583", "weight": 1.0}, {"source": "crm_customer_update_customer", "target": "crm_customer_customer_name_exists", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L590", "weight": 1.0}, {"source": "crm_customer_update_customer", "target": "crm_customer_parse_optional_datetime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L610", "weight": 1.0}, {"source": "crm_customer_update_customer", "target": "crm_customer_resolve_user_display_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L634", "weight": 1.0}, {"source": "crm_customer_soft_delete_customer", "target": "crm_customer_get_customer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L646", "weight": 1.0}, {"source": "crm_customer_soft_delete_customer", "target": "crm_customer_ensure_customer_in_scope", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L651", "weight": 1.0}, {"source": "crm_customer_transfer_customer", "target": "crm_customer_get_customer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L669", "weight": 1.0}, {"source": "crm_customer_transfer_customer", "target": "crm_customer_ensure_customer_in_scope", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L674", "weight": 1.0}, {"source": "crm_customer_deal_customer", "target": "crm_customer_get_customer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L711", "weight": 1.0}, {"source": "crm_customer_deal_customer", "target": "crm_customer_ensure_customer_in_scope", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L716", "weight": 1.0}, {"source": "crm_customer_deal_customer", "target": "crm_customer_parse_optional_datetime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L721", "weight": 1.0}, {"source": "crm_customer_into_pool", "target": "crm_customer_get_customer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L738", "weight": 1.0}, {"source": "crm_customer_into_pool", "target": "crm_customer_ensure_customer_in_scope", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L743", "weight": 1.0}, {"source": "crm_customer_claim_customer", "target": "crm_customer_get_customer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L779", "weight": 1.0}, {"source": "crm_customer_batch_claim_customers", "target": "crm_customer_claim_customer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L819", "weight": 1.0}, {"source": "crm_customer_assign_customer", "target": "crm_customer_get_customer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L835", "weight": 1.0}, {"source": "crm_customer_assign_customer", "target": "crm_customer_ensure_customer_in_scope", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L840", "weight": 1.0}, {"source": "crm_customer_update_follow_stats", "target": "crm_customer_get_customer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L881", "weight": 1.0}, {"source": "crm_customer_update_contact_count", "target": "crm_customer_get_customer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L902", "weight": 1.0}, {"source": "crm_customer_rationale_1", "target": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L1", "weight": 1.0}, {"source": "crm_customer_rationale_173", "target": "crm_customer_list_customer_options", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L173", "weight": 1.0}, {"source": "crm_customer_rationale_366", "target": "crm_customer_list_customer_column_facet_values", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L366", "weight": 1.0}], "raw_calls": [{"caller_nid": "crm_customer_ensure_customer_in_scope", "callee": "ensure_crm_owner_row_in_scope", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L26"}, {"caller_nid": "crm_customer_total_pages", "callee": "ceil", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L32"}, {"caller_nid": "crm_customer_parse_optional_date", "callee": "isinstance", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L42"}, {"caller_nid": "crm_customer_parse_optional_date", "callee": "isinstance", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L42"}, {"caller_nid": "crm_customer_parse_optional_date", "callee": "isinstance", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L44"}, {"caller_nid": "crm_customer_parse_optional_date", "callee": "date", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L45"}, {"caller_nid": "crm_customer_parse_optional_date", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L46"}, {"caller_nid": "crm_customer_parse_optional_date", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L46"}, {"caller_nid": "crm_customer_parse_optional_date", "callee": "date", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L51"}, {"caller_nid": "crm_customer_parse_optional_date", "callee": "strptime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L51"}, {"caller_nid": "crm_customer_parse_optional_date", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L54"}, {"caller_nid": "crm_customer_parse_optional_datetime", "callee": "isinstance", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L60"}, {"caller_nid": "crm_customer_parse_optional_datetime", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L62"}, {"caller_nid": "crm_customer_parse_optional_datetime", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L62"}, {"caller_nid": "crm_customer_parse_optional_datetime", "callee": "strptime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L67"}, {"caller_nid": "crm_customer_parse_optional_datetime", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L70"}, {"caller_nid": "crm_customer_resolve_user_display_name", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L74"}, {"caller_nid": "crm_customer_resolve_user_display_name", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L77"}, {"caller_nid": "crm_customer_resolve_user_display_name", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L77"}, {"caller_nid": "crm_customer_resolve_user_display_name", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L77"}, {"caller_nid": "crm_customer_resolve_user_display_name", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L80"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "set", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L89"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L92"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L92"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L92"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L93"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L93"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L94"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L98"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L98"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L98"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L99"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L102"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L105"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L105"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L105"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L106"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L106"}, {"caller_nid": "crm_customer_enrich_user_names", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L107"}, {"caller_nid": "crm_customer_row_to_dict", "callee": "getattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L115"}, {"caller_nid": "crm_customer_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L136"}, {"caller_nid": "crm_customer_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L137"}, {"caller_nid": "crm_customer_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L139"}, {"caller_nid": "crm_customer_row_to_dict", "callee": "float", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L140"}, {"caller_nid": "crm_customer_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L144"}, {"caller_nid": "crm_customer_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L147"}, {"caller_nid": "crm_customer_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L148"}, {"caller_nid": "crm_customer_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L150"}, {"caller_nid": "crm_customer_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L159"}, {"caller_nid": "crm_customer_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L161"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L174"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L174"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L178"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L181"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "or_", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L182"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "like", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L183"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "like", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L184"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "like", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L185"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "like", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L186"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "lower", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L186"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "coalesce", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L186"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "lower", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L187"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L191"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L193"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "or_", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L194"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "like", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L195"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "like", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L196"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "lower", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L196"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "coalesce", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L196"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "lower", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L197"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "min", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L202"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "max", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L202"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "int", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L202"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L203"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "limit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L203"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L203"}, {"caller_nid": "crm_customer_list_customer_options", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L203"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L230"}, {"caller_nid": "crm_customer_list_customers", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L230"}, {"caller_nid": "crm_customer_list_customers", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L235"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L238"}, {"caller_nid": "crm_customer_list_customers", "callee": "or_", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L239"}, {"caller_nid": "crm_customer_list_customers", "callee": "like", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L240"}, {"caller_nid": "crm_customer_list_customers", "callee": "like", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L241"}, {"caller_nid": "crm_customer_list_customers", "callee": "like", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L242"}, {"caller_nid": "crm_customer_list_customers", "callee": "like", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L243"}, {"caller_nid": "crm_customer_list_customers", "callee": "like", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L244"}, {"caller_nid": "crm_customer_list_customers", "callee": "lower", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L244"}, {"caller_nid": "crm_customer_list_customers", "callee": "coalesce", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L244"}, {"caller_nid": "crm_customer_list_customers", "callee": "lower", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L245"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L251"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L252"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L254"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L255"}, {"caller_nid": "crm_customer_list_customers", "callee": "isnot", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L255"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L256"}, {"caller_nid": "crm_customer_list_customers", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L256"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L258"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L260"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L262"}, {"caller_nid": "crm_customer_list_customers", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L264"}, {"caller_nid": "crm_customer_list_customers", "callee": "timedelta", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L264"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L265"}, {"caller_nid": "crm_customer_list_customers", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L267"}, {"caller_nid": "crm_customer_list_customers", "callee": "timedelta", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L267"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L268"}, {"caller_nid": "crm_customer_list_customers", "callee": "or_", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L269"}, {"caller_nid": "crm_customer_list_customers", "callee": "is_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L270"}, {"caller_nid": "crm_customer_list_customers", "callee": "build_customer_column_filters", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L276"}, {"caller_nid": "crm_customer_list_customers", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L277"}, {"caller_nid": "crm_customer_list_customers", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L279"}, {"caller_nid": "crm_customer_list_customers", "callee": "apply_crm_owner_scope", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L282"}, {"caller_nid": "crm_customer_list_customers", "callee": "scalar", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L284"}, {"caller_nid": "crm_customer_list_customers", "callee": "with_entities", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L284"}, {"caller_nid": "crm_customer_list_customers", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L284"}, {"caller_nid": "crm_customer_list_customers", "callee": "count", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L284"}, {"caller_nid": "crm_customer_list_customers", "callee": "max", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L285"}, {"caller_nid": "crm_customer_list_customers", "callee": "min", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L287"}, {"caller_nid": "crm_customer_list_customers", "callee": "max", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L287"}, {"caller_nid": "crm_customer_list_customers", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L289"}, {"caller_nid": "crm_customer_list_customers", "callee": "asc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L291"}, {"caller_nid": "crm_customer_list_customers", "callee": "resolve_datetime_order_by", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L303"}, {"caller_nid": "crm_customer_list_customers", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L304"}, {"caller_nid": "crm_customer_list_customers", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L304"}, {"caller_nid": "crm_customer_list_customers", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L305"}, {"caller_nid": "crm_customer_list_customers", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L305"}, {"caller_nid": "crm_customer_list_customers", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L311"}, {"caller_nid": "crm_customer_list_customers", "callee": "limit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L311"}, {"caller_nid": "crm_customer_list_customers", "callee": "offset", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L311"}, {"caller_nid": "crm_customer_list_customers", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L311"}, {"caller_nid": "crm_customer_list_customers", "callee": "int", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L318"}, {"caller_nid": "crm_customer_list_pool_customers", "callee": "dict", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L332"}, {"caller_nid": "crm_customer_list_customer_column_facet_values", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L370"}, {"caller_nid": "crm_customer_list_customer_column_facet_values", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L370"}, {"caller_nid": "crm_customer_list_customer_column_facet_values", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L370"}, {"caller_nid": "crm_customer_list_customer_column_facet_values", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L372"}, {"caller_nid": "crm_customer_list_customer_column_facet_values", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L374"}, {"caller_nid": "crm_customer_list_customer_column_facet_values", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L375"}, {"caller_nid": "crm_customer_list_customer_column_facet_values", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L379"}, {"caller_nid": "crm_customer_list_customer_column_facet_values", "callee": "extend", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L381"}, {"caller_nid": "crm_customer_list_customer_column_facet_values", "callee": "build_customer_column_filters", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L381"}, {"caller_nid": "crm_customer_list_customer_column_facet_values", "callee": "list_column_facet_values", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L388"}, {"caller_nid": "crm_customer_get_customer", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L402"}, {"caller_nid": "crm_customer_get_customer", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L402"}, {"caller_nid": "crm_customer_get_customer", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L402"}, {"caller_nid": "crm_customer_get_customer_by_no", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L413"}, {"caller_nid": "crm_customer_get_customer_by_no", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L413"}, {"caller_nid": "crm_customer_get_customer_by_no", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L413"}, {"caller_nid": "crm_customer_generate_customer_no", "callee": "strftime", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L424"}, {"caller_nid": "crm_customer_generate_customer_no", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L424"}, {"caller_nid": "crm_customer_generate_customer_no", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L428"}, {"caller_nid": "crm_customer_generate_customer_no", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L428"}, {"caller_nid": "crm_customer_generate_customer_no", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L428"}, {"caller_nid": "crm_customer_generate_customer_no", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L428"}, {"caller_nid": "crm_customer_generate_customer_no", "callee": "like", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L430"}, {"caller_nid": "crm_customer_generate_customer_no", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L433"}, {"caller_nid": "crm_customer_generate_customer_no", "callee": "len", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L438"}, {"caller_nid": "crm_customer_generate_customer_no", "callee": "int", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L440"}, {"caller_nid": "crm_customer_customer_name_exists", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L452"}, {"caller_nid": "crm_customer_customer_name_exists", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L455"}, {"caller_nid": "crm_customer_customer_name_exists", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L455"}, {"caller_nid": "crm_customer_customer_name_exists", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L461"}, {"caller_nid": "crm_customer_customer_name_exists", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L462"}, {"caller_nid": "crm_customer_check_duplicate_customer", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L474"}, {"caller_nid": "crm_customer_check_duplicate_customer", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L477"}, {"caller_nid": "crm_customer_check_duplicate_customer", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L479"}, {"caller_nid": "crm_customer_check_duplicate_customer", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L481"}, {"caller_nid": "crm_customer_check_duplicate_customer", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L484"}, {"caller_nid": "crm_customer_check_duplicate_customer", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L484"}, {"caller_nid": "crm_customer_check_duplicate_customer", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L484"}, {"caller_nid": "crm_customer_check_duplicate_customer", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L484"}, {"caller_nid": "crm_customer_check_duplicate_customer", "callee": "or_", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L484"}, {"caller_nid": "crm_customer_create_customer", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L497"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L497"}, {"caller_nid": "crm_customer_create_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L499"}, {"caller_nid": "crm_customer_create_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L501"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L504"}, {"caller_nid": "crm_customer_create_customer", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L508"}, {"caller_nid": "crm_customer_create_customer", "callee": "pop", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L508"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L512"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L514"}, {"caller_nid": "crm_customer_create_customer", "callee": "resolve_name_pinyin_abbr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L515"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L516"}, {"caller_nid": "crm_customer_create_customer", "callee": "CrmCustomer", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L521"}, {"caller_nid": "crm_customer_create_customer", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L522"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L524"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L526"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L527"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L528"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L529"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L530"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L531"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L532"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L533"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L534"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L535"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L536"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L537"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L538"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L539"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L540"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L541"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L551"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L552"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L553"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L554"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L555"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L557"}, {"caller_nid": "crm_customer_create_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L558"}, {"caller_nid": "crm_customer_create_customer", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L563"}, {"caller_nid": "crm_customer_create_customer", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L564"}, {"caller_nid": "crm_customer_create_customer", "callee": "refresh", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L565"}, {"caller_nid": "crm_customer_update_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L580"}, {"caller_nid": "crm_customer_update_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L582"}, {"caller_nid": "crm_customer_update_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L585"}, {"caller_nid": "crm_customer_update_customer", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L586"}, {"caller_nid": "crm_customer_update_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L586"}, {"caller_nid": "crm_customer_update_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L588"}, {"caller_nid": "crm_customer_update_customer", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L589"}, {"caller_nid": "crm_customer_update_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L591"}, {"caller_nid": "crm_customer_update_customer", "callee": "setattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L610"}, {"caller_nid": "crm_customer_update_customer", "callee": "setattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L612"}, {"caller_nid": "crm_customer_update_customer", "callee": "any", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L616"}, {"caller_nid": "crm_customer_update_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L617"}, {"caller_nid": "crm_customer_update_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L619"}, {"caller_nid": "crm_customer_update_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L620"}, {"caller_nid": "crm_customer_update_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L621"}, {"caller_nid": "crm_customer_update_customer", "callee": "resolve_name_pinyin_abbr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L624"}, {"caller_nid": "crm_customer_update_customer", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L632"}, {"caller_nid": "crm_customer_update_customer", "callee": "pop", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L632"}, {"caller_nid": "crm_customer_update_customer", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L637"}, {"caller_nid": "crm_customer_update_customer", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L638"}, {"caller_nid": "crm_customer_update_customer", "callee": "refresh", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L639"}, {"caller_nid": "crm_customer_soft_delete_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L648"}, {"caller_nid": "crm_customer_soft_delete_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L650"}, {"caller_nid": "crm_customer_soft_delete_customer", "callee": "assert_row_deletable_by_creator", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L652"}, {"caller_nid": "crm_customer_soft_delete_customer", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L655"}, {"caller_nid": "crm_customer_soft_delete_customer", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L656"}, {"caller_nid": "crm_customer_transfer_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L671"}, {"caller_nid": "crm_customer_transfer_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L673"}, {"caller_nid": "crm_customer_transfer_customer", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L682"}, {"caller_nid": "crm_customer_transfer_customer", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L683"}, {"caller_nid": "crm_customer_transfer_customer", "callee": "refresh", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L684"}, {"caller_nid": "crm_customer_transfer_customer", "callee": "create_pool_record", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L687"}, {"caller_nid": "crm_customer_deal_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L713"}, {"caller_nid": "crm_customer_deal_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L715"}, {"caller_nid": "crm_customer_deal_customer", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L722"}, {"caller_nid": "crm_customer_deal_customer", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L724"}, {"caller_nid": "crm_customer_deal_customer", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L725"}, {"caller_nid": "crm_customer_deal_customer", "callee": "refresh", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L726"}, {"caller_nid": "crm_customer_into_pool", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L740"}, {"caller_nid": "crm_customer_into_pool", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L742"}, {"caller_nid": "crm_customer_into_pool", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L749"}, {"caller_nid": "crm_customer_into_pool", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L754"}, {"caller_nid": "crm_customer_into_pool", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L755"}, {"caller_nid": "crm_customer_into_pool", "callee": "refresh", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L756"}, {"caller_nid": "crm_customer_into_pool", "callee": "create_pool_record", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L759"}, {"caller_nid": "crm_customer_claim_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L781"}, {"caller_nid": "crm_customer_claim_customer", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L783"}, {"caller_nid": "crm_customer_claim_customer", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L788"}, {"caller_nid": "crm_customer_claim_customer", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L793"}, {"caller_nid": "crm_customer_claim_customer", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L794"}, {"caller_nid": "crm_customer_claim_customer", "callee": "refresh", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L795"}, {"caller_nid": "crm_customer_claim_customer", "callee": "create_pool_record", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L798"}, {"caller_nid": "crm_customer_batch_claim_customers", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L820"}, {"caller_nid": "crm_customer_assign_customer", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L848"}, {"caller_nid": "crm_customer_assign_customer", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L854"}, {"caller_nid": "crm_customer_assign_customer", "callee": "create_pool_record", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L857"}, {"caller_nid": "crm_customer_assign_customer", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L869"}, {"caller_nid": "crm_customer_assign_customer", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L871"}, {"caller_nid": "crm_customer_update_follow_stats", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L889"}, {"caller_nid": "crm_customer_update_contact_count", "callee": "scalar", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L895"}, {"caller_nid": "crm_customer_update_contact_count", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L895"}, {"caller_nid": "crm_customer_update_contact_count", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L895"}, {"caller_nid": "crm_customer_update_contact_count", "callee": "count", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L895"}, {"caller_nid": "crm_customer_update_contact_count", "callee": "commit", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L905"}, {"caller_nid": "crm_customer_get_park_area_list", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L911"}, {"caller_nid": "crm_customer_get_park_area_list", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L911"}, {"caller_nid": "crm_customer_get_park_area_list", "callee": "distinct", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L911"}, {"caller_nid": "crm_customer_get_park_area_list", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L911"}, {"caller_nid": "crm_customer_get_park_area_list", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L911"}, {"caller_nid": "crm_customer_get_park_area_list", "callee": "isnot", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L915"}]}