diff --git a/backend/app.pid b/backend/app.pid index 3bf849a83..606887f2f 100644 --- a/backend/app.pid +++ b/backend/app.pid @@ -1 +1 @@ -87141 +25924 diff --git a/backend/app/api/admin.py b/backend/app/api/admin.py index fad06290d..3496abe8e 100644 --- a/backend/app/api/admin.py +++ b/backend/app/api/admin.py @@ -18,6 +18,7 @@ from app.core.storage import storage from app.crud import tenant as tenant_svc from app.crud import dict_type as dict_type_svc from app.crud import dict_data as dict_data_svc +from app.services import dict_ensure as dict_ensure_svc from app.crud import dept as dept_svc from app.crud import site as site_svc from app.crud import post as post_svc @@ -148,7 +149,7 @@ class TenantUpdateBody(BaseModel): @router.get("/tenants") def list_tenants( page: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100, alias="pageSize"), + pageSize: int = Query(10, ge=1, le=500, alias="pageSize"), keyword: Optional[str] = None, _user: dict = Depends(require_admin_or_super_admin), db: Session = Depends(get_db), @@ -279,7 +280,7 @@ class UserUpdateBody(BaseModel): @router.get("/users") def list_users( page: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100, alias="pageSize"), + pageSize: int = Query(10, ge=1, le=500, alias="pageSize"), keyword: Optional[str] = None, deptId: Optional[str] = Query(None, alias="deptId"), status: Optional[str] = None, @@ -469,7 +470,7 @@ class DictTypeUpdateBody(BaseModel): @router.get("/dict-types") def list_dict_types( page: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100, alias="pageSize"), + pageSize: int = Query(10, ge=1, le=500, alias="pageSize"), keyword: Optional[str] = None, user: dict = Depends(require_menu_code("system:dict:list")), db: Session = Depends(get_db), @@ -571,7 +572,7 @@ class DictDataUpdateBody(BaseModel): @router.get("/dict-data") def list_dict_data( page: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100, alias="pageSize"), + pageSize: int = Query(10, ge=1, le=500, alias="pageSize"), dictType: Optional[str] = None, keyword: Optional[str] = None, user: dict = Depends(require_menu_code("system:dict:list")), @@ -683,6 +684,66 @@ def dict_data_all( return success_response(grouped) +class DictEnsureBody(BaseModel): + model_config = ConfigDict(populate_by_name=True) + + dict_type: str = Field(..., alias="dictType") + label: str + preferred_value: Optional[str] = Field(None, alias="preferredValue") + + +class DictEnsureRemoveBody(BaseModel): + model_config = ConfigDict(populate_by_name=True) + + dict_type: str = Field(..., alias="dictType") + value: str + + +@router.post("/dict-data/ensure") +def ensure_dict_data_api( + body: DictEnsureBody, + user: dict = Depends(require_admin_or_super_admin), + db: Session = Depends(get_db), +): + try: + tenant_no = _get_tenant_no(db, user) + data = dict_ensure_svc.ensure_dict_data( + db, + tenant_no=tenant_no, + dict_type=body.dict_type, + label=body.label, + user_id=user.get("user_id") or user.get("id") or "", + preferred_value=body.preferred_value, + ) + db.commit() + return success_response(data, message="已保存") + except dict_ensure_svc.DictEnsureError as e: + db.rollback() + return error_response(400, str(e)) + + +@router.post("/dict-data/ensure-remove") +def ensure_remove_dict_data_api( + body: DictEnsureRemoveBody, + user: dict = Depends(require_admin_or_super_admin), + db: Session = Depends(get_db), +): + try: + tenant_no = _get_tenant_no(db, user) + dict_ensure_svc.ensure_remove_dict_data( + db, + tenant_no=tenant_no, + dict_type=body.dict_type, + value=body.value, + user_id=user.get("user_id") or user.get("id") or "", + ) + db.commit() + return success_response(None, message="已删除") + except dict_ensure_svc.DictEnsureError as e: + db.rollback() + return error_response(400, str(e)) + + # --------------------------------------------------------------------------- # 组织管理 # --------------------------------------------------------------------------- @@ -827,7 +888,7 @@ class SiteUpdateBody(BaseModel): @router.get("/sites") def list_sites( page: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100, alias="pageSize"), + pageSize: int = Query(10, ge=1, le=500, alias="pageSize"), keyword: Optional[str] = None, user: dict = Depends(require_menu_code("system:site:list")), db: Session = Depends(get_db), @@ -936,7 +997,7 @@ class PostUpdateBody(BaseModel): @router.get("/posts") def list_posts( page: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100, alias="pageSize"), + pageSize: int = Query(10, ge=1, le=500, alias="pageSize"), keyword: Optional[str] = None, user: dict = Depends(require_menu_code("system:post:list")), db: Session = Depends(get_db), @@ -1206,7 +1267,7 @@ class RoleDataScopeBody(BaseModel): @router.get("/role-management") def list_role_management( page: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100, alias="pageSize"), + pageSize: int = Query(10, ge=1, le=500, alias="pageSize"), keyword: Optional[str] = None, user: dict = Depends(require_menu_code("system:role:list")), db: Session = Depends(get_db), diff --git a/backend/app/api/bx/advance.py b/backend/app/api/bx/advance.py index 0cc4a3d76..76c84722c 100644 --- a/backend/app/api/bx/advance.py +++ b/backend/app/api/bx/advance.py @@ -1,6 +1,6 @@ from typing import List, Optional -from fastapi import APIRouter, Depends, HTTPException, status +from fastapi import APIRouter, Depends, HTTPException, status, Query from sqlalchemy import or_ from sqlalchemy.orm import Session @@ -41,7 +41,7 @@ def _fill_offset_amounts(db: Session, tenant_no: str, rows, out_rows: List[Advan @router.get("/", response_model=ApiResponse[PagedData[AdvanceApplyOut]]) def list_advances( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), status: Optional[str] = None, keyword: str = "", applicantId: Optional[str] = None, @@ -80,7 +80,7 @@ def list_advances( @router.get("/my", response_model=ApiResponse[PagedData[AdvanceApplyOut]]) def my_advances( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), status: Optional[str] = None, keyword: str = "", applyDate: Optional[str] = None, @@ -140,7 +140,7 @@ def advance_status_counts( @router.get("/pending-approval", response_model=ApiResponse[PagedData[AdvanceApplyOut]]) def pending_approval( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), keyword: str = "", applicantId: Optional[str] = None, applyDate: Optional[str] = None, @@ -180,7 +180,7 @@ def advance_pending_approval_stats( @router.get("/approved-by-me", response_model=ApiResponse[PagedData[AdvanceApplyOut]]) def approved_by_me( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), keyword: str = "", applicantId: Optional[str] = None, applyDate: Optional[str] = None, diff --git a/backend/app/api/bx/invoice.py b/backend/app/api/bx/invoice.py index 40d024ce2..47895cd20 100644 --- a/backend/app/api/bx/invoice.py +++ b/backend/app/api/bx/invoice.py @@ -1,7 +1,7 @@ import mimetypes from typing import List, Optional, Set -from fastapi import APIRouter, Depends, HTTPException, Request, status +from fastapi import APIRouter, Depends, HTTPException, Request, status, Query from sqlalchemy.orm import Session from starlette.datastructures import UploadFile as StarletteUploadFile @@ -27,7 +27,7 @@ def get_mine_wallet_summary( @router.get("/invoice-wallets", response_model=ApiResponse[PagedData[WalletSummaryOut]]) def list_invoice_wallets( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), keyword: str = "", db: Session = Depends(get_db), user: BxUserContext = Depends(get_bx_current_user), @@ -42,7 +42,7 @@ def list_invoice_wallets( @router.get("/invoices", response_model=ApiResponse[PagedData[InvoiceOut]]) def list_invoices( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), userId: Optional[str] = None, db: Session = Depends(get_db), user: BxUserContext = Depends(get_bx_current_user), diff --git a/backend/app/api/bx/payment.py b/backend/app/api/bx/payment.py index b57a81a54..eabb24eed 100644 --- a/backend/app/api/bx/payment.py +++ b/backend/app/api/bx/payment.py @@ -4,7 +4,7 @@ from datetime import datetime from typing import Any, List, Optional from urllib.parse import quote -from fastapi import APIRouter, Depends, HTTPException, status +from fastapi import APIRouter, Depends, HTTPException, status, Query from fastapi.responses import StreamingResponse from sqlalchemy import or_ from sqlalchemy.orm import Session @@ -47,7 +47,7 @@ def _wrap_reimburse_rows(outs: List[ReimburseApplyOut]) -> List[dict]: @router.get("/pending", response_model=ApiResponse[PagedData[Any]]) def list_pending_payments( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), keyword: str = "", applicantId: Optional[str] = None, applyDate: Optional[str] = None, @@ -94,7 +94,7 @@ def payment_finance_stats( @router.get("/processed", response_model=ApiResponse[PagedData[Any]]) def list_processed_payments( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), keyword: str = "", applicantId: Optional[str] = None, applyDate: Optional[str] = None, @@ -197,7 +197,7 @@ def batch_offset( @router.get("/advance-issues", response_model=ApiResponse[PagedData[AdvanceIssueOut]]) def list_advance_issues( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), issue_status: Optional[str] = None, keyword: str = "", applicantId: Optional[str] = None, diff --git a/backend/app/api/bx/reimburse.py b/backend/app/api/bx/reimburse.py index 1c6d4c09b..1e6af9595 100644 --- a/backend/app/api/bx/reimburse.py +++ b/backend/app/api/bx/reimburse.py @@ -146,7 +146,7 @@ def import_reimburses( @router.get("/", response_model=ApiResponse[PagedData[ReimburseApplyOut]]) def list_reimburses( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), status: Optional[str] = None, keyword: str = "", expense_id: Optional[str] = None, @@ -256,7 +256,7 @@ def reimburse_status_counts( @router.get("/pending-approval", response_model=ApiResponse[PagedData[ReimburseApplyOut]]) def pending_approval( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), keyword: str = "", applicantId: Optional[str] = None, expenseName: Optional[str] = None, @@ -298,7 +298,7 @@ def pending_approval_stats( @router.get("/approved-by-me", response_model=ApiResponse[PagedData[ReimburseApplyOut]]) def approved_by_me( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), keyword: str = "", applicantId: Optional[str] = None, expenseName: Optional[str] = None, diff --git a/backend/app/api/bx/workflow.py b/backend/app/api/bx/workflow.py index 562656bbb..86962ed89 100644 --- a/backend/app/api/bx/workflow.py +++ b/backend/app/api/bx/workflow.py @@ -1,6 +1,6 @@ from typing import List -from fastapi import APIRouter, Depends, HTTPException, status +from fastapi import APIRouter, Depends, HTTPException, status, Query from sqlalchemy.orm import Session from app.core.bx_auth import BxUserContext, get_bx_current_user @@ -21,7 +21,7 @@ router = APIRouter(prefix="/workflows", tags=["工作流配置"]) @router.get("/", response_model=ApiResponse[PagedData[WorkflowDefOut]]) def list_workflows( page: int = 1, - pageSize: int = 10, + pageSize: int = Query(10, ge=1, le=500), db: Session = Depends(get_db), user: BxUserContext = Depends(get_bx_current_user), ): diff --git a/backend/app/api/crm.py b/backend/app/api/crm.py index 063bd1edd..cd54ab29b 100644 --- a/backend/app/api/crm.py +++ b/backend/app/api/crm.py @@ -618,6 +618,8 @@ def product_list( status=body.status, supplier_id=body.supplier_id, user_info=user_info, + match_product_no=True if body.match_product_no is None else bool(body.match_product_no), + match_model=bool(body.match_model) if body.match_model is not None else False, ) tp = total_pages(total, body.pageSize) return success_response( @@ -888,6 +890,8 @@ def product_export( category_id=body.category_id, status=body.status, supplier_id=body.supplier_id, + match_product_no=True if body.match_product_no is None else bool(body.match_product_no), + match_model=bool(body.match_model) if body.match_model is not None else False, ) date_str = datetime.now().strftime("%Y%m%d") return export_rows_to_xlsx_response( diff --git a/backend/app/api/crm_contract_routes.py b/backend/app/api/crm_contract_routes.py index 616068093..0a6e142e9 100644 --- a/backend/app/api/crm_contract_routes.py +++ b/backend/app/api/crm_contract_routes.py @@ -79,7 +79,7 @@ def register_contract_routes(router): @router.get("/contract/list") async def contract_list( pageNum: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100), + pageSize: int = Query(10, ge=1, le=500), keyword: Optional[str] = Query( None, description="即时检索:合同编号/合同产品名称/产品拼音首字母" ), diff --git a/backend/app/api/crm_contract_sub_routes.py b/backend/app/api/crm_contract_sub_routes.py index 3338eab16..5d212ec60 100644 --- a/backend/app/api/crm_contract_sub_routes.py +++ b/backend/app/api/crm_contract_sub_routes.py @@ -70,7 +70,7 @@ def register_contract_sub_routes(router): @router.get("/contract/change/list") async def contract_change_list( pageNum: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100), + pageSize: int = Query(10, ge=1, le=500), contractId: Optional[str] = None, contractNo: Optional[str] = None, contractName: Optional[str] = None, @@ -293,7 +293,7 @@ def register_contract_sub_routes(router): @router.get("/contract/template/list") async def contract_template_list( pageNum: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100), + pageSize: int = Query(10, ge=1, le=500), templateNo: Optional[str] = None, templateName: Optional[str] = None, templateType: Optional[str] = None, @@ -494,7 +494,7 @@ def register_contract_sub_routes(router): @router.get("/contract/approval/list") async def contract_approval_list( pageNum: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100), + pageSize: int = Query(10, ge=1, le=500), contractId: Optional[str] = None, contractNo: Optional[str] = None, contractName: Optional[str] = None, diff --git a/backend/app/api/leave.py b/backend/app/api/leave.py index d584cdb6c..2ff8f187d 100644 --- a/backend/app/api/leave.py +++ b/backend/app/api/leave.py @@ -38,7 +38,7 @@ register_local_callback("/api/admin/leave/callback", _leave_local_callback) @router.get("") def list_leaves( page: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100), + pageSize: int = Query(10, ge=1, le=500), keyword: Optional[str] = Query(None), status: Optional[str] = Query(None), _user: dict = Depends(require_admin_or_super_admin), diff --git a/backend/app/api/pl/base_data.py b/backend/app/api/pl/base_data.py index f6832ed1f..74b9e6bc5 100644 --- a/backend/app/api/pl/base_data.py +++ b/backend/app/api/pl/base_data.py @@ -76,7 +76,7 @@ def list_carriers( status: Optional[str] = Query(default=None, description="状态"), audit_status: Optional[str] = Query(default=None, alias="auditStatus", description="审核状态"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> CarrierListResponse: @@ -283,7 +283,7 @@ def list_vehicles( description="排除资质不全或协议过期的承运商车辆", ), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleListResponse: @@ -611,7 +611,7 @@ def list_personnel( default=None, alias="personnelType", description="人员类型 driver/escort" ), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> PersonnelListResponse: @@ -837,7 +837,7 @@ def _personnel_to_driver_read(personnel: PlPersonnel) -> DriverRead: def list_drivers( q: Optional[str] = Query(default=None, description="模糊搜索姓名/手机号"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> DriverListResponse: diff --git a/backend/app/api/pl/freight.py b/backend/app/api/pl/freight.py index d9be0fefd..a8d800a72 100644 --- a/backend/app/api/pl/freight.py +++ b/backend/app/api/pl/freight.py @@ -52,7 +52,7 @@ def list_unsettled_plans( plan_type: Optional[str] = Query(default=None, alias="planType"), license_plate: Optional[str] = Query(default=None, alias="licensePlate"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> UnsettledPlanListResponse: @@ -81,7 +81,7 @@ def list_settlements( description="bills|approval_pending|approval_done|disburse|settled", ), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> FreightSettlementListResponse: diff --git a/backend/app/api/pl/inventory.py b/backend/app/api/pl/inventory.py index ea7accec0..930e3fd6b 100644 --- a/backend/app/api/pl/inventory.py +++ b/backend/app/api/pl/inventory.py @@ -50,7 +50,7 @@ router = APIRouter(prefix="/inventory", tags=["运输计划-盘存统计"]) def get_inventory_ledger( product_name: Optional[str] = Query(default=None, alias="productName", description="产品名称"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> InventoryLedgerResponse: @@ -198,7 +198,7 @@ def list_transactions( date_from: Optional[date] = Query(default=None, alias="dateFrom", description="开始日期"), date_to: Optional[date] = Query(default=None, alias="dateTo", description="结束日期"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> InventoryTransactionResponse: diff --git a/backend/app/api/pl/io_order.py b/backend/app/api/pl/io_order.py index 207943343..c6c87f7d2 100644 --- a/backend/app/api/pl/io_order.py +++ b/backend/app/api/pl/io_order.py @@ -227,7 +227,7 @@ def list_inbound( plan_date_from: Optional[str] = Query(default=None, alias="planDateFrom"), plan_date_to: Optional[str] = Query(default=None, alias="planDateTo"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> IoOrderListResponse: @@ -305,7 +305,7 @@ def list_outbound( plan_date_from: Optional[str] = Query(default=None, alias="planDateFrom"), plan_date_to: Optional[str] = Query(default=None, alias="planDateTo"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> IoOrderListResponse: diff --git a/backend/app/api/pl/plan.py b/backend/app/api/pl/plan.py index bdcf9b0c6..6d6063db1 100644 --- a/backend/app/api/pl/plan.py +++ b/backend/app/api/pl/plan.py @@ -310,7 +310,7 @@ def list_plans( description="incomplete=至少一张必需危化证书未上传", ), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> PlanListResponse: @@ -517,7 +517,7 @@ def count_plans_by_contract( @router.get("/contract-gaps", response_model=PlanContractGapListResponse) def list_contract_gaps( page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), plan_no: Optional[str] = Query(default=None, alias="planNo", description="计划编号"), gap_type: Optional[str] = Query( default=None, diff --git a/backend/app/api/pl/public_io_order.py b/backend/app/api/pl/public_io_order.py index 3ec9741f5..ce4270e79 100644 --- a/backend/app/api/pl/public_io_order.py +++ b/backend/app/api/pl/public_io_order.py @@ -175,7 +175,7 @@ def _build_history_page( merged.sort(key=lambda x: x[0] or datetime.min, reverse=True) total = len(merged) page = max(1, int(page or 1)) - page_size = min(max(1, int(page_size or 20)), 100) + page_size = min(max(1, int(page_size or 20)), 500) start = (page - 1) * page_size page_rows = merged[start : start + page_size] return PublicIoOrderHistoryPageRead( @@ -218,7 +218,7 @@ def _make_handlers(kind: str): date: str = Query(..., description="筛选日 YYYY-MM-DD"), q: Optional[str] = Query(None, description="供方/需方名称模糊"), page: int = Query(1, ge=1, description="页码,从 1 开始"), - page_size: int = Query(20, ge=1, le=100, alias="pageSize", description="每页条数"), + page_size: int = Query(20, ge=1, le=500, alias="pageSize", description="每页条数"), db: Session = Depends(get_db), ): try: diff --git a/backend/app/api/pl/transport.py b/backend/app/api/pl/transport.py index 1ef6134a2..7cd8d9eba 100644 --- a/backend/app/api/pl/transport.py +++ b/backend/app/api/pl/transport.py @@ -384,7 +384,7 @@ def list_transports( vehicle_id: Optional[str] = Query(default=None, alias="vehicleId", description="车辆ID"), driver_id: Optional[str] = Query(default=None, alias="driverId", description="司机ID"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> TransportListResponse: diff --git a/backend/app/api/pl/transport_address.py b/backend/app/api/pl/transport_address.py index 4bebbff33..5f79f286a 100644 --- a/backend/app/api/pl/transport_address.py +++ b/backend/app/api/pl/transport_address.py @@ -57,7 +57,7 @@ def list_transport_addresses( q: Optional[str] = Query(default=None, description="搜索名称或地址"), status: Optional[str] = Query(default=None, description="状态 1-启用 0-停用"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> TransportAddressListResponse: diff --git a/backend/app/api/pl/vehicle_maintenance.py b/backend/app/api/pl/vehicle_maintenance.py index f2bee21c5..52f25723a 100644 --- a/backend/app/api/pl/vehicle_maintenance.py +++ b/backend/app/api/pl/vehicle_maintenance.py @@ -34,7 +34,7 @@ def list_applies( apply_date_to: Optional[date] = Query(default=None, alias="applyDateTo"), applicant_id: Optional[str] = Query(default=None, alias="applicantId"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleMaintenanceApplyListResponse: @@ -136,7 +136,7 @@ def list_process_board( process_date_from: Optional[date] = Query(default=None, alias="processDateFrom"), process_date_to: Optional[date] = Query(default=None, alias="processDateTo"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleMaintenanceProcessBoardListResponse: diff --git a/backend/app/api/pl/vehicle_recharge.py b/backend/app/api/pl/vehicle_recharge.py index 8d11620eb..814a36c66 100644 --- a/backend/app/api/pl/vehicle_recharge.py +++ b/backend/app/api/pl/vehicle_recharge.py @@ -35,7 +35,7 @@ def list_applies( apply_date_to: Optional[date] = Query(default=None, alias="applyDateTo"), applicant_id: Optional[str] = Query(default=None, alias="applicantId"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleRechargeApplyListResponse: @@ -129,7 +129,7 @@ def list_records( gas_station: Optional[str] = Query(default=None, alias="gasStation"), apply_no: Optional[str] = Query(default=None, alias="applyNo"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleRechargeRecordListResponse: @@ -162,7 +162,7 @@ def list_disburse_board( recharge_date_from: Optional[date] = Query(default=None, alias="rechargeDateFrom"), recharge_date_to: Optional[date] = Query(default=None, alias="rechargeDateTo"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleRechargeDisburseBoardListResponse: diff --git a/backend/app/api/pl/vehicle_urea.py b/backend/app/api/pl/vehicle_urea.py index 1c73ebdef..d412ff3d6 100644 --- a/backend/app/api/pl/vehicle_urea.py +++ b/backend/app/api/pl/vehicle_urea.py @@ -32,7 +32,7 @@ def list_applies( apply_date_to: Optional[date] = Query(default=None, alias="applyDateTo"), applicant_id: Optional[str] = Query(default=None, alias="applicantId"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleUreaApplyListResponse: @@ -115,7 +115,7 @@ def list_disburse_board( disburse_date_from: Optional[date] = Query(default=None, alias="disburseDateFrom"), disburse_date_to: Optional[date] = Query(default=None, alias="disburseDateTo"), page: int = Query(default=1, ge=1), - page_size: int = Query(default=20, ge=1, le=100, alias="pageSize"), + page_size: int = Query(default=20, ge=1, le=500, alias="pageSize"), db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user), ) -> VehicleUreaDisburseBoardListResponse: diff --git a/backend/app/api/workflow.py b/backend/app/api/workflow.py index f0eac4243..155c72252 100644 --- a/backend/app/api/workflow.py +++ b/backend/app/api/workflow.py @@ -175,7 +175,7 @@ class TaskActionBody(BaseModel): @router.get("/defs") def list_process_defs( page: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100, alias="pageSize"), + pageSize: int = Query(10, ge=1, le=500, alias="pageSize"), keyword: Optional[str] = None, status: Optional[str] = None, _user: dict = Depends(require_admin_or_super_admin), @@ -362,7 +362,7 @@ def start_instance( @router.get("/instances/my") def list_my_instances( page: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100, alias="pageSize"), + pageSize: int = Query(10, ge=1, le=500, alias="pageSize"), keyword: Optional[str] = None, status: Optional[str] = None, user: dict = Depends(require_admin_or_super_admin), @@ -446,7 +446,7 @@ def get_instance_detail( @router.get("/tasks/pending") def list_pending_tasks( page: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100, alias="pageSize"), + pageSize: int = Query(10, ge=1, le=500, alias="pageSize"), keyword: Optional[str] = None, user: dict = Depends(require_admin_or_super_admin), db: Session = Depends(get_db), @@ -464,7 +464,7 @@ def list_pending_tasks( @router.get("/tasks/completed") def list_completed_tasks( page: int = Query(1, ge=1), - pageSize: int = Query(10, ge=1, le=100, alias="pageSize"), + pageSize: int = Query(10, ge=1, le=500, alias="pageSize"), keyword: Optional[str] = None, user: dict = Depends(require_admin_or_super_admin), db: Session = Depends(get_db), diff --git a/backend/app/crud/crm/clue.py b/backend/app/crud/crm/clue.py index 5480ecdce..e5ac78c24 100644 --- a/backend/app/crud/crm/clue.py +++ b/backend/app/crud/crm/clue.py @@ -228,7 +228,7 @@ def list_clues( total = q.order_by(None).with_entities(func.count(CrmClue.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) order_by = CrmClue.create_time.desc() if effective_view == "toFollow": diff --git a/backend/app/crud/crm/contact.py b/backend/app/crud/crm/contact.py index ed68af511..b4c015bd7 100644 --- a/backend/app/crud/crm/contact.py +++ b/backend/app/crud/crm/contact.py @@ -140,7 +140,7 @@ def list_contacts( total = q.order_by(None).with_entities(func.count(CrmContact.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( q.order_by(CrmContact.create_time.desc()) diff --git a/backend/app/crud/crm/contract.py b/backend/app/crud/crm/contract.py index 478e0be00..5e0940397 100644 --- a/backend/app/crud/crm/contract.py +++ b/backend/app/crud/crm/contract.py @@ -449,7 +449,7 @@ def list_contracts( q = apply_crm_owner_scope(q, CrmContract, user_info, db, tenant_no) total = q.order_by(None).with_entities(func.count(CrmContract.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = q.offset((page - 1) * page_size).limit(page_size).all() result = [_row_to_dict(r) for r in rows] @@ -2195,7 +2195,7 @@ def list_contract_changes( q = q.filter(CrmContractChange.contract_no.like(f"%{contract_no}%")) total = q.order_by(None).with_entities(func.count(CrmContractChange.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = q.order_by(CrmContractChange.create_time.desc()).offset((page - 1) * page_size).limit(page_size).all() return [_change_row_to_dict(r) for r in rows], int(total) @@ -2275,7 +2275,7 @@ def list_contract_templates( q = q.filter(CrmContractTemplate.is_active == int(filters["isActive"])) total = q.order_by(None).with_entities(func.count(CrmContractTemplate.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = q.order_by(CrmContractTemplate.sort.asc(), CrmContractTemplate.create_time.desc()).offset( (page - 1) * page_size ).limit(page_size).all() diff --git a/backend/app/crud/crm/contract_approval.py b/backend/app/crud/crm/contract_approval.py index b00d902b2..6d7e5b7eb 100644 --- a/backend/app/crud/crm/contract_approval.py +++ b/backend/app/crud/crm/contract_approval.py @@ -122,7 +122,7 @@ def list_contract_approvals_page( q = _build_approval_list_filters(q, filters or {}, tenant_no=tenant_no) total = q.order_by(None).with_entities(func.count(CrmContractApproval.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = q.offset((page - 1) * page_size).limit(page_size).all() result = [_row_to_dict(r) for r in rows] for item in result: diff --git a/backend/app/crud/crm/customer.py b/backend/app/crud/crm/customer.py index 1cb52564c..82a7feb23 100644 --- a/backend/app/crud/crm/customer.py +++ b/backend/app/crud/crm/customer.py @@ -321,7 +321,7 @@ def list_customers( total = q.order_by(None).with_entities(func.count(CrmCustomer.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) order_by = CrmCustomer.create_time.desc() if view_mode == "toFollow": diff --git a/backend/app/crud/crm/customer_follow.py b/backend/app/crud/crm/customer_follow.py index 6ba8dfb8e..12dde80e2 100644 --- a/backend/app/crud/crm/customer_follow.py +++ b/backend/app/crud/crm/customer_follow.py @@ -103,7 +103,7 @@ def list_follows( total = q.order_by(None).with_entities(func.count(CrmCustomerFollow.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( q.order_by(CrmCustomerFollow.follow_time.desc(), CrmCustomerFollow.create_time.desc()) diff --git a/backend/app/crud/crm/opportunity.py b/backend/app/crud/crm/opportunity.py index 72151c211..bca0c8500 100644 --- a/backend/app/crud/crm/opportunity.py +++ b/backend/app/crud/crm/opportunity.py @@ -353,7 +353,7 @@ def list_opportunities( total = q.order_by(None).with_entities(func.count(CrmOpportunity.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( q.order_by(CrmOpportunity.create_time.desc()) .offset((page - 1) * page_size) diff --git a/backend/app/crud/crm/opportunity_follow.py b/backend/app/crud/crm/opportunity_follow.py index 3905191e5..f4952b350 100644 --- a/backend/app/crud/crm/opportunity_follow.py +++ b/backend/app/crud/crm/opportunity_follow.py @@ -150,7 +150,7 @@ def list_opportunity_follows( rows = ( q.order_by(CrmOpportunityFollow.create_time.desc()) .offset((max(1, page) - 1) * page_size) - .limit(min(max(1, page_size), 100)) + .limit(min(max(1, page_size), 500)) .all() ) return [_row_to_dict(r) for r in rows], total diff --git a/backend/app/crud/crm/opportunity_product.py b/backend/app/crud/crm/opportunity_product.py index 397b5b8c1..7c461581a 100644 --- a/backend/app/crud/crm/opportunity_product.py +++ b/backend/app/crud/crm/opportunity_product.py @@ -139,7 +139,7 @@ def list_opportunity_products( rows = ( q.order_by(CrmOpportunityProduct.sort.asc(), CrmOpportunityProduct.create_time.asc()) .offset((max(1, page) - 1) * page_size) - .limit(min(max(1, page_size), 100)) + .limit(min(max(1, page_size), 500)) .all() ) return [_row_to_dict(r) for r in rows], total diff --git a/backend/app/crud/crm/price_letter.py b/backend/app/crud/crm/price_letter.py index 1ee59baa1..8eab8a375 100644 --- a/backend/app/crud/crm/price_letter.py +++ b/backend/app/crud/crm/price_letter.py @@ -157,7 +157,7 @@ def list_price_letters( total = q.order_by(None).with_entities(func.count(CrmPriceLetter.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( q.order_by(CrmPriceLetter.create_time.desc()) .offset((page - 1) * page_size) diff --git a/backend/app/crud/crm/product.py b/backend/app/crud/crm/product.py index 9083ac781..e019d7623 100644 --- a/backend/app/crud/crm/product.py +++ b/backend/app/crud/crm/product.py @@ -571,8 +571,14 @@ def list_products( status: str = None, supplier_id: str = None, user_info=None, + match_product_no: bool = True, + match_model: bool = False, ) -> Tuple[List[Dict[str, Any]], int]: - """分页查询产品列表""" + """分页查询产品列表 + + keyword 默认匹配:名称 / 编号 / 拼音首字母。 + 选择器场景可关闭编号匹配、开启规格型号匹配(避免短数字误命中产品编号)。 + """ q = db.query(CrmProduct).filter( CrmProduct.tenant_no == tenant_no, CrmProduct.del_flag == 0, @@ -580,18 +586,19 @@ def list_products( if user_info: q = apply_crm_create_by_scope(q, CrmProduct, user_info, db, tenant_no) - # keyword 筛选:名称 / 编号 / 拼音首字母 kw = (keyword or "").strip() if kw: like = f"%{kw}%" pinyin_like = f"%{kw.lower()}%" - q = q.filter( - or_( - CrmProduct.product_name.like(like), - CrmProduct.product_no.like(like), - func.lower(func.coalesce(CrmProduct.name_pinyin_abbr, "")).like(pinyin_like), - ) - ) + conds = [ + CrmProduct.product_name.like(like), + func.lower(func.coalesce(CrmProduct.name_pinyin_abbr, "")).like(pinyin_like), + ] + if match_product_no: + conds.append(CrmProduct.product_no.like(like)) + if match_model: + conds.append(CrmProduct.model.like(like)) + q = q.filter(or_(*conds)) # category_id 筛选 if category_id: @@ -621,7 +628,7 @@ def list_products( total = q.order_by(None).with_entities(func.count(CrmProduct.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( q.order_by(CrmProduct.product_no.desc()) diff --git a/backend/app/crud/crm/quote.py b/backend/app/crud/crm/quote.py index 8c098e717..8c9835aed 100644 --- a/backend/app/crud/crm/quote.py +++ b/backend/app/crud/crm/quote.py @@ -573,7 +573,7 @@ def list_quotes( q = apply_crm_owner_scope(q, CrmQuote, user_info, db, tenant_no) total = q.order_by(None).with_entities(func.count(CrmQuote.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = q.offset((page - 1) * page_size).limit(page_size).all() result = [_row_to_dict(r) for r in rows] diff --git a/backend/app/crud/dict_data.py b/backend/app/crud/dict_data.py index 476f179f8..7e2dcb7b4 100644 --- a/backend/app/crud/dict_data.py +++ b/backend/app/crud/dict_data.py @@ -54,7 +54,7 @@ def list_dict_data( total = _filtered().order_by(None).with_entities(func.count(SysDictData.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( _filtered() .order_by(SysDictData.create_time.desc()) diff --git a/backend/app/crud/dict_type.py b/backend/app/crud/dict_type.py index 4913fbd95..3d1c9e63a 100644 --- a/backend/app/crud/dict_type.py +++ b/backend/app/crud/dict_type.py @@ -49,7 +49,7 @@ def list_dict_types( total = _filtered().order_by(None).with_entities(func.count(SysDictType.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( _filtered() .order_by(SysDictType.create_time.desc()) diff --git a/backend/app/crud/post.py b/backend/app/crud/post.py index 9eddfdb38..54690ed99 100644 --- a/backend/app/crud/post.py +++ b/backend/app/crud/post.py @@ -50,7 +50,7 @@ def list_posts( total = _filtered().order_by(None).with_entities(func.count(SysPost.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( _filtered() .order_by(SysPost.create_time.desc()) diff --git a/backend/app/crud/role.py b/backend/app/crud/role.py index aca7002f3..ac18641b8 100644 --- a/backend/app/crud/role.py +++ b/backend/app/crud/role.py @@ -68,7 +68,7 @@ def list_roles( total = _filtered().order_by(None).with_entities(func.count(SysRole.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( _filtered() .order_by(SysRole.create_time.desc()) diff --git a/backend/app/crud/sample_code.py b/backend/app/crud/sample_code.py index 7448a26f7..279e42b33 100644 --- a/backend/app/crud/sample_code.py +++ b/backend/app/crud/sample_code.py @@ -90,7 +90,7 @@ def list_sample_codes( total = _filtered().order_by(None).with_entities(func.count(BizSampleCode.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( _filtered() .order_by(BizSampleCode.create_time.desc()) diff --git a/backend/app/crud/site.py b/backend/app/crud/site.py index 36ee1c6b6..3a907ac98 100644 --- a/backend/app/crud/site.py +++ b/backend/app/crud/site.py @@ -55,7 +55,7 @@ def list_sites( total = _filtered().order_by(None).with_entities(func.count(SysSite.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( _filtered() .order_by(SysSite.create_time.desc()) diff --git a/backend/app/crud/tenant.py b/backend/app/crud/tenant.py index 00129f0a5..4da4d411a 100644 --- a/backend/app/crud/tenant.py +++ b/backend/app/crud/tenant.py @@ -50,7 +50,7 @@ def list_tenants( total = _filtered().order_by(None).with_entities(func.count(SysTenant.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( _filtered() .order_by(SysTenant.create_time.desc()) diff --git a/backend/app/crud/user.py b/backend/app/crud/user.py index e58251a9f..262c02dc8 100644 --- a/backend/app/crud/user.py +++ b/backend/app/crud/user.py @@ -104,7 +104,7 @@ def list_users( total = _filtered().order_by(None).with_entities(func.count(SysUser.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( _filtered() .order_by(SysUser.create_time.desc()) diff --git a/backend/app/crud/workflow.py b/backend/app/crud/workflow.py index 422444ba6..67864f0ce 100644 --- a/backend/app/crud/workflow.py +++ b/backend/app/crud/workflow.py @@ -69,7 +69,7 @@ def list_process_defs( total = _filtered().order_by(None).with_entities(func.count(WfProcessDef.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( _filtered() .order_by(WfProcessDef.create_time.desc()) @@ -486,7 +486,7 @@ def list_my_instances( total = q0.order_by(None).with_entities(func.count(WfProcessInstance.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( q0.order_by(WfProcessInstance.create_time.desc()) .offset((page - 1) * page_size) @@ -690,7 +690,7 @@ def list_pending_tasks( total = q0.order_by(None).with_entities(func.count(WfTask.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( q0.order_by(WfTask.create_time.desc()) .offset((page - 1) * page_size) @@ -753,7 +753,7 @@ def list_completed_tasks( total = q0.order_by(None).with_entities(func.count(WfTask.id)).scalar() or 0 page = max(1, page) - page_size = min(max(1, page_size), 100) + page_size = min(max(1, page_size), 500) rows = ( q0.order_by(WfTask.update_time.desc()) .offset((page - 1) * page_size) diff --git a/backend/app/schemas/crm/clue.py b/backend/app/schemas/crm/clue.py index ffa4dda7c..15a5392cf 100644 --- a/backend/app/schemas/crm/clue.py +++ b/backend/app/schemas/crm/clue.py @@ -12,7 +12,7 @@ class ClueListBody(BaseModel): model_config = ConfigDict(populate_by_name=True) page: int = Field(default=1, ge=1, description="页码") - pageSize: int = Field(default=10, ge=1, le=100, description="每页条数") + pageSize: int = Field(default=10, ge=1, le=500, description="每页条数") keyword: Optional[str] = Field(default=None, description="搜索关键词(线索名称/手机号)") search_keyword: Optional[str] = Field( default=None, alias="searchKeyword", description="快速搜索关键词(与 keyword 等价)" @@ -133,7 +133,7 @@ class ClueFollowListBody(BaseModel): clue_id: str = Field(..., alias="clueId", description="线索ID") page: int = Field(default=1, ge=1, description="页码") - pageSize: int = Field(default=10, ge=1, le=100, description="每页条数") + pageSize: int = Field(default=10, ge=1, le=500, description="每页条数") class ClueFollowCreateBody(BaseModel): diff --git a/backend/app/schemas/crm/contact.py b/backend/app/schemas/crm/contact.py index 25b8a48c1..40c8f680a 100644 --- a/backend/app/schemas/crm/contact.py +++ b/backend/app/schemas/crm/contact.py @@ -9,7 +9,7 @@ class ContactListBody(BaseModel): model_config = ConfigDict(populate_by_name=True) page: int = Field(default=1, ge=1, description="页码") - pageSize: int = Field(default=10, ge=1, le=100, description="每页条数") + pageSize: int = Field(default=10, ge=1, le=500, description="每页条数") keyword: Optional[str] = Field(default=None, description="搜索关键词(姓名/手机号/邮箱/职位 OR)") contact_name: Optional[str] = Field(default=None, alias="contactName", description="联系人姓名(模糊)") mobile: Optional[str] = Field(default=None, description="手机号(模糊)") diff --git a/backend/app/schemas/crm/contract.py b/backend/app/schemas/crm/contract.py index 5b47b0205..423723dd8 100644 --- a/backend/app/schemas/crm/contract.py +++ b/backend/app/schemas/crm/contract.py @@ -60,7 +60,7 @@ class ContractListQuery(BaseModel): model_config = ConfigDict(populate_by_name=True) pageNum: int = Field(default=1, ge=1) - pageSize: int = Field(default=10, ge=1, le=100) + pageSize: int = Field(default=10, ge=1, le=500) # 即时检索:合同编号 / 合同产品名称 / 产品拼音首字母 keyword: Optional[str] = None contractNo: Optional[str] = None @@ -252,7 +252,7 @@ class ContractApprovalRefreshNamesBody(BaseModel): class ContractApprovalListQuery(BaseModel): pageNum: int = Field(default=1, ge=1) - pageSize: int = Field(default=10, ge=1, le=100) + pageSize: int = Field(default=10, ge=1, le=500) contractId: Optional[str] = None contractNo: Optional[str] = None contractName: Optional[str] = None @@ -264,7 +264,7 @@ class ContractApprovalListQuery(BaseModel): class ContractChangeListQuery(BaseModel): pageNum: int = Field(default=1, ge=1) - pageSize: int = Field(default=10, ge=1, le=100) + pageSize: int = Field(default=10, ge=1, le=500) contractId: Optional[str] = None contractNo: Optional[str] = None contractName: Optional[str] = None @@ -276,7 +276,7 @@ class ContractChangeListQuery(BaseModel): class ContractTemplateListQuery(BaseModel): pageNum: int = Field(default=1, ge=1) - pageSize: int = Field(default=10, ge=1, le=100) + pageSize: int = Field(default=10, ge=1, le=500) templateNo: Optional[str] = None templateName: Optional[str] = None templateType: Optional[str] = None diff --git a/backend/app/schemas/crm/customer.py b/backend/app/schemas/crm/customer.py index 460e2fa79..447ae12ca 100644 --- a/backend/app/schemas/crm/customer.py +++ b/backend/app/schemas/crm/customer.py @@ -28,7 +28,7 @@ class CustomerListBody(BaseModel): model_config = ConfigDict(populate_by_name=True) page: int = Field(default=1, ge=1, description="页码") - pageSize: int = Field(default=10, ge=1, le=100, description="每页条数") + pageSize: int = Field(default=10, ge=1, le=500, description="每页条数") keyword: Optional[str] = Field(default=None, description="搜索关键词(客户名称/编号/手机号)") search_keyword: Optional[str] = Field( default=None, alias="searchKeyword", description="快速搜索关键词(与 keyword 等价)" diff --git a/backend/app/schemas/crm/customer_follow.py b/backend/app/schemas/crm/customer_follow.py index 7c63cd2a4..745bab016 100644 --- a/backend/app/schemas/crm/customer_follow.py +++ b/backend/app/schemas/crm/customer_follow.py @@ -9,7 +9,7 @@ class CustomerFollowListBody(BaseModel): model_config = ConfigDict(populate_by_name=True) page: int = Field(default=1, ge=1, description="页码") - pageSize: int = Field(default=10, ge=1, le=100, description="每页条数") + pageSize: int = Field(default=10, ge=1, le=500, description="每页条数") keyword: Optional[str] = Field(default=None, description="搜索关键词") customer_id: Optional[str] = Field(default=None, alias="customerId", description="客户ID") follow_type: Optional[str] = Field(default=None, alias="followType", description="跟进方式") @@ -62,4 +62,4 @@ class CustomerFollowByCustomerBody(BaseModel): customer_id: str = Field(..., alias="customerId", description="客户ID") page: int = Field(default=1, ge=1, description="页码") - pageSize: int = Field(default=10, ge=1, le=100, description="每页条数") + pageSize: int = Field(default=10, ge=1, le=500, description="每页条数") diff --git a/backend/app/schemas/crm/customer_pool.py b/backend/app/schemas/crm/customer_pool.py index d4f88bbb0..878203a3c 100644 --- a/backend/app/schemas/crm/customer_pool.py +++ b/backend/app/schemas/crm/customer_pool.py @@ -8,7 +8,7 @@ class PoolCustomerListBody(BaseModel): model_config = ConfigDict(populate_by_name=True) page: int = Field(default=1, ge=1) - pageSize: int = Field(default=10, ge=1, le=100) + pageSize: int = Field(default=10, ge=1, le=500) keyword: Optional[str] = Field(default=None) level: Optional[str] = Field(default=None) industry: Optional[str] = Field(default=None) @@ -33,7 +33,7 @@ class PoolRecordListBody(BaseModel): model_config = ConfigDict(populate_by_name=True) page: int = Field(default=1, ge=1) - pageSize: int = Field(default=10, ge=1, le=100) + pageSize: int = Field(default=10, ge=1, le=500) customerId: Optional[str] = Field(default=None) operationType: Optional[str] = Field(default=None) keyword: Optional[str] = Field(default=None) diff --git a/backend/app/schemas/crm/opportunity.py b/backend/app/schemas/crm/opportunity.py index b40cab090..22d871622 100644 --- a/backend/app/schemas/crm/opportunity.py +++ b/backend/app/schemas/crm/opportunity.py @@ -9,7 +9,7 @@ class OpportunityListBody(BaseModel): model_config = ConfigDict(populate_by_name=True) page: int = Field(default=1, ge=1, description="页码") - pageSize: int = Field(default=10, ge=1, le=100, description="每页条数") + pageSize: int = Field(default=10, ge=1, le=500, description="每页条数") keyword: Optional[str] = Field(default=None, description="关键词(商机名/客户名 OR)") opportunity_no: Optional[str] = Field(default=None, alias="opportunityNo") opportunity_name: Optional[str] = Field(default=None, alias="opportunityName") @@ -150,7 +150,7 @@ class OpportunityFollowListBody(BaseModel): opportunity_id: Optional[str] = Field(default=None, alias="opportunityId") page: int = Field(default=1, ge=1) - pageSize: int = Field(default=10, ge=1, le=100) + pageSize: int = Field(default=10, ge=1, le=500) class OpportunityFollowDetailBody(BaseModel): @@ -189,7 +189,7 @@ class OpportunityProductListBody(BaseModel): opportunity_id: Optional[str] = Field(default=None, alias="opportunityId") product_id: Optional[str] = Field(default=None, alias="productId") page: int = Field(default=1, ge=1) - pageSize: int = Field(default=10, ge=1, le=100) + pageSize: int = Field(default=10, ge=1, le=500) class OpportunityProductByOpportunityBody(BaseModel): diff --git a/backend/app/schemas/crm/pool_rule.py b/backend/app/schemas/crm/pool_rule.py index 728c967c8..0b9fcbc4b 100644 --- a/backend/app/schemas/crm/pool_rule.py +++ b/backend/app/schemas/crm/pool_rule.py @@ -8,7 +8,7 @@ class PoolRuleListBody(BaseModel): model_config = ConfigDict(populate_by_name=True) page: int = Field(default=1, ge=1) - pageSize: int = Field(default=10, ge=1, le=100) + pageSize: int = Field(default=10, ge=1, le=500) poolName: Optional[str] = Field(default=None) ruleType: Optional[str] = Field(default=None) status: Optional[str] = Field(default=None) diff --git a/backend/app/schemas/crm/price_letter.py b/backend/app/schemas/crm/price_letter.py index 4a2a9875c..a1a732fb5 100644 --- a/backend/app/schemas/crm/price_letter.py +++ b/backend/app/schemas/crm/price_letter.py @@ -12,7 +12,7 @@ class PriceLetterListBody(BaseModel): model_config = ConfigDict(populate_by_name=True) page: int = Field(default=1, ge=1, description="页码") - pageSize: int = Field(default=10, ge=1, le=100, description="每页条数") + pageSize: int = Field(default=10, ge=1, le=500, description="每页条数") letter_type: Optional[str] = Field(default=None, alias="letterType", description="类型 receive/send") customer_name: Optional[str] = Field(default=None, alias="customerName", description="客户名称模糊") product_name: Optional[str] = Field(default=None, alias="productName", description="产品名称模糊") diff --git a/backend/app/schemas/crm/product.py b/backend/app/schemas/crm/product.py index 6532c7b01..8a93919a8 100644 --- a/backend/app/schemas/crm/product.py +++ b/backend/app/schemas/crm/product.py @@ -69,11 +69,25 @@ class ProductListBody(BaseModel): model_config = ConfigDict(populate_by_name=True) page: int = Field(default=1, ge=1, description="页码") - pageSize: int = Field(default=10, ge=1, le=100, description="每页条数") - keyword: Optional[str] = Field(default=None, description="搜索关键词(产品名称/编号)") + pageSize: int = Field(default=10, ge=1, le=500, description="每页条数") + keyword: Optional[str] = Field( + default=None, description="搜索关键词(默认:产品名称/编号/拼音首字母)" + ) category_id: Optional[str] = Field(default=None, alias="categoryId", description="分类ID") status: Optional[str] = Field(default=None, description="状态") - supplier_id: Optional[str] = Field(default=None, alias="supplierId", description="报价/合同主体ID,传入则按危化品能力过滤") + supplier_id: Optional[str] = Field( + default=None, alias="supplierId", description="报价/合同主体ID,传入则按危化品能力过滤" + ) + match_product_no: Optional[bool] = Field( + default=True, + alias="matchProductNo", + description="keyword 是否匹配产品编号(选择器建议 false)", + ) + match_model: Optional[bool] = Field( + default=False, + alias="matchModel", + description="keyword 是否匹配规格型号(选择器建议 true)", + ) class ProductBrandItem(BaseModel): diff --git a/backend/app/schemas/crm/quote.py b/backend/app/schemas/crm/quote.py index aaa9028fe..8e4af51e9 100644 --- a/backend/app/schemas/crm/quote.py +++ b/backend/app/schemas/crm/quote.py @@ -36,7 +36,7 @@ class QuoteListBody(BaseModel): model_config = ConfigDict(populate_by_name=True) page: int = Field(default=1, ge=1) - pageSize: int = Field(default=10, ge=1, le=100) + pageSize: int = Field(default=10, ge=1, le=500) keyword: Optional[str] = None quoteNo: Optional[str] = None quoteTitle: Optional[str] = None diff --git a/backend/app/schemas/crm/supplier_info.py b/backend/app/schemas/crm/supplier_info.py index b30d49354..19ce3b20b 100644 --- a/backend/app/schemas/crm/supplier_info.py +++ b/backend/app/schemas/crm/supplier_info.py @@ -11,7 +11,7 @@ class SupplierInfoListBody(BaseModel): model_config = ConfigDict(populate_by_name=True) page: int = Field(default=1, ge=1, description="页码") - pageSize: int = Field(default=10, ge=1, le=100, description="每页条数") + pageSize: int = Field(default=10, ge=1, le=500, description="每页条数") supplier_name: Optional[str] = Field(default=None, alias="supplierName", description="供方名称") status: Optional[str] = Field(default=None, description="状态(0正常 1停用)") diff --git a/backend/app/schemas/pl/freight.py b/backend/app/schemas/pl/freight.py index a43c20c2f..8574fbb75 100644 --- a/backend/app/schemas/pl/freight.py +++ b/backend/app/schemas/pl/freight.py @@ -209,7 +209,7 @@ class FreightSettlementListQuery(BaseModel): settlement_status: Optional[str] = Field(default=None, alias="settlementStatus", description="结算状态") tab: Optional[str] = Field(default=None, description="bills|disburse|settled") page: int = Field(default=1, ge=1) - page_size: int = Field(default=20, ge=1, le=100, alias="pageSize") + page_size: int = Field(default=20, ge=1, le=500, alias="pageSize") model_config = {"populate_by_name": True} diff --git a/backend/app/schemas/pl/inventory.py b/backend/app/schemas/pl/inventory.py index eb3a23f3f..8f8190dde 100644 --- a/backend/app/schemas/pl/inventory.py +++ b/backend/app/schemas/pl/inventory.py @@ -132,7 +132,7 @@ class DocumentReminderStatsRead(BaseModel): class InventoryLedgerQuery(BaseModel): product_name: Optional[str] = Field(default=None, alias="productName", description="产品名称") page: int = Field(default=1, ge=1) - page_size: int = Field(default=20, ge=1, le=100, alias="pageSize") + page_size: int = Field(default=20, ge=1, le=500, alias="pageSize") model_config = {"populate_by_name": True} @@ -147,7 +147,7 @@ class InventoryTransactionQuery(BaseModel): date_from: Optional[date] = Field(default=None, alias="dateFrom", description="开始日期") date_to: Optional[date] = Field(default=None, alias="dateTo", description="结束日期") page: int = Field(default=1, ge=1) - page_size: int = Field(default=20, ge=1, le=100, alias="pageSize") + page_size: int = Field(default=20, ge=1, le=500, alias="pageSize") model_config = {"populate_by_name": True} diff --git a/backend/app/schemas/pl/plan.py b/backend/app/schemas/pl/plan.py index 773d13d83..308b46c41 100644 --- a/backend/app/schemas/pl/plan.py +++ b/backend/app/schemas/pl/plan.py @@ -346,7 +346,7 @@ class PlanListQuery(BaseModel): description="incomplete=至少一张必需危化证书未上传", ) page: int = Field(default=1, ge=1, description="页码") - page_size: int = Field(default=20, ge=1, le=100, alias="pageSize", description="每页数量") + page_size: int = Field(default=20, ge=1, le=500, alias="pageSize", description="每页数量") model_config = {"populate_by_name": True} diff --git a/backend/app/schemas/pl/transport.py b/backend/app/schemas/pl/transport.py index 87b3f4e45..d29c1fc28 100644 --- a/backend/app/schemas/pl/transport.py +++ b/backend/app/schemas/pl/transport.py @@ -379,7 +379,7 @@ class TransportListQuery(BaseModel): vehicle_id: Optional[str] = Field(default=None, alias="vehicleId", description="车辆ID") driver_id: Optional[str] = Field(default=None, alias="driverId", description="司机ID") page: int = Field(default=1, ge=1) - page_size: int = Field(default=20, ge=1, le=100, alias="pageSize") + page_size: int = Field(default=20, ge=1, le=500, alias="pageSize") model_config = {"populate_by_name": True} diff --git a/backend/app/services/dict_ensure.py b/backend/app/services/dict_ensure.py new file mode 100644 index 000000000..7838ae31d --- /dev/null +++ b/backend/app/services/dict_ensure.py @@ -0,0 +1,129 @@ +"""业务页字典 ensure:白名单内按 label 复用或插入 sys_dict_data。""" +from __future__ import annotations + +from datetime import datetime +from typing import Dict, Optional, Set + +from sqlalchemy.orm import Session + +from app.core.utils import generate_uuid +from app.models.models import SysDictData + +DICT_ENSURE_WHITELIST: Set[str] = { + "crm_product_gg", + "crm_shfs", + "crm_product_unit", + "crm_customer_park", +} + + +class DictEnsureError(ValueError): + pass + + +def ensure_dict_data( + db: Session, + *, + tenant_no: str, + dict_type: str, + label: str, + user_id: str = "", + preferred_value: Optional[str] = None, +) -> Dict[str, object]: + label = (label or "").strip() + if not label: + raise DictEnsureError("字典标签不能为空") + if dict_type not in DICT_ENSURE_WHITELIST: + raise DictEnsureError("不支持的字典类型") + + preferred = (preferred_value or "").strip() or label + + existing_label = ( + db.query(SysDictData) + .filter( + SysDictData.tenant_no == tenant_no, + SysDictData.dict_type == dict_type, + SysDictData.dict_label == label, + SysDictData.del_flag == 0, + ) + .first() + ) + if existing_label: + return { + "label": existing_label.dict_label, + "value": existing_label.dict_value, + "created": False, + } + + by_value = ( + db.query(SysDictData) + .filter( + SysDictData.tenant_no == tenant_no, + SysDictData.dict_type == dict_type, + SysDictData.dict_value == preferred, + SysDictData.del_flag == 0, + ) + .first() + ) + if by_value: + return { + "label": by_value.dict_label, + "value": by_value.dict_value, + "created": False, + } + + obj = SysDictData( + id=generate_uuid(), + dict_label=label, + dict_value=preferred, + dict_type=dict_type, + tag_type="", + tenant_no=tenant_no, + order_num=0, + remark=None, + create_by=user_id or None, + create_dept_id="", + create_time=datetime.now(), + update_by=user_id or None, + update_time=datetime.now(), + del_flag=0, + ) + db.add(obj) + db.flush() + return {"label": obj.dict_label, "value": obj.dict_value, "created": True} + + +def ensure_remove_dict_data( + db: Session, + *, + tenant_no: str, + dict_type: str, + value: str, + user_id: str = "", +) -> None: + value = (value or "").strip() + if not value: + raise DictEnsureError("字典值不能为空") + if dict_type not in DICT_ENSURE_WHITELIST: + raise DictEnsureError("不支持的字典类型") + + row = ( + db.query(SysDictData) + .filter( + SysDictData.tenant_no == tenant_no, + SysDictData.dict_type == dict_type, + SysDictData.dict_value == value, + SysDictData.del_flag == 0, + ) + .first() + ) + if not row: + raise DictEnsureError("字典数据不存在") + if (row.create_by or "") != (user_id or ""): + raise DictEnsureError("无权删除该字典项") + + row.del_flag = 1 + row.update_by = user_id or None + row.update_time = datetime.now() + db.add(row) + db.flush() diff --git a/backend/graphify-out/.graphify_labels.json b/backend/graphify-out/.graphify_labels.json index 2a333a87a..ff53d1996 100644 --- a/backend/graphify-out/.graphify_labels.json +++ b/backend/graphify-out/.graphify_labels.json @@ -127,17 +127,27 @@ "125": "build_annotated_result_bytes", "126": "customer_pool.py", "127": "web_login_rsa_public_key", - "128": "get_client_ip", + "128": "product_allowed", "129": "BaseStorage", - "130": "context.py", - "131": "PlPlanChange", + "130": ".to_tenant_user_dict", + "131": "list_product_options", + "132": "context.py", + "133": "product.py", + "134": "test_crm_approval_reedit.py", + "135": "opportunity_follow.py", "136": "Community 136", "137": "statistics.py", "138": "Community 138", "139": "get_current_user_by_token", + "140": "utils.py", + "141": "customer_follow.py", + "142": "price_letter_detail", + "143": "opportunity_export", "144": "dict_data.py", "145": "resolve_crm_product", + "146": "__init__.py", "147": "Community 147", + "148": "get_db_current_user_optional", "151": "Community 151", "154": "response.py", "159": "customer_update", diff --git a/backend/graphify-out/2026-08-21/.graphify_labels.json b/backend/graphify-out/2026-08-21/.graphify_labels.json index 96b7d2b8b..6ccea3342 100644 --- a/backend/graphify-out/2026-08-21/.graphify_labels.json +++ b/backend/graphify-out/2026-08-21/.graphify_labels.json @@ -95,7 +95,10 @@ "93": "api_request_log_middleware.py", "94": "assert_contract_editable_for_update", "95": "test_pl_public_link_archived.py", + "96": "minio_url.py", + "97": "contact.py", "98": "LocalStorage", + "99": "redis_client.py", "100": "price_letter_detail", "101": "tenant.py", "102": "crm_supplier_hazard.py", @@ -105,6 +108,8 @@ "106": "site.py", "107": "apply_pl_scope", "108": "statistics.py", + "109": "_ensure_subpack_slip_no", + "110": "list_duty_staff_users", "111": "Community 111", "112": ".to_tenant_user_dict", "113": "quote_share_log.py", @@ -117,10 +122,16 @@ "120": "sqlalchemy_exception_handler", "121": "Session", "122": "Community 122", + "123": "customer_options", + "124": "datetime_parse.py", "125": "build_annotated_result_bytes", "126": "customer_pool.py", + "127": "web_login_rsa_public_key", + "128": "product_allowed", "129": "BaseStorage", - "134": "Community 134", + "130": ".to_tenant_user_dict", + "131": "list_product_options", + "132": "context.py", "136": "Community 136", "137": "statistics.py", "138": "Community 138", diff --git a/backend/graphify-out/2026-08-21/GRAPH_REPORT.md b/backend/graphify-out/2026-08-21/GRAPH_REPORT.md index f1567a759..90aeec78a 100644 --- a/backend/graphify-out/2026-08-21/GRAPH_REPORT.md +++ b/backend/graphify-out/2026-08-21/GRAPH_REPORT.md @@ -1,16 +1,16 @@ # Graph Report - backend (2026-08-21) ## Corpus Check -- 335 files · ~222,128 words +- 338 files · ~223,450 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 4604 nodes · 17064 edges · 166 communities (151 shown, 15 thin omitted) -- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 783 edges (avg confidence: 0.62) +- 4635 nodes · 16891 edges · 177 communities (159 shown, 18 thin omitted) +- Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 537 edges (avg confidence: 0.53) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `d01603f7` +- Built from commit: `e9ad26cb` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). @@ -111,7 +111,10 @@ - [[_COMMUNITY_api_request_log_middleware.py|api_request_log_middleware.py]] - [[_COMMUNITY_assert_contract_editable_for_update|assert_contract_editable_for_update]] - [[_COMMUNITY_test_pl_public_link_archived.py|test_pl_public_link_archived.py]] +- [[_COMMUNITY_minio_url.py|minio_url.py]] +- [[_COMMUNITY_contact.py|contact.py]] - [[_COMMUNITY_LocalStorage|LocalStorage]] +- [[_COMMUNITY_redis_client.py|redis_client.py]] - [[_COMMUNITY_price_letter_detail|price_letter_detail]] - [[_COMMUNITY_tenant.py|tenant.py]] - [[_COMMUNITY_crm_supplier_hazard.py|crm_supplier_hazard.py]] @@ -121,6 +124,8 @@ - [[_COMMUNITY_site.py|site.py]] - [[_COMMUNITY_apply_pl_scope|apply_pl_scope]] - [[_COMMUNITY_statistics.py|statistics.py]] +- [[_COMMUNITY__ensure_subpack_slip_no|_ensure_subpack_slip_no]] +- [[_COMMUNITY_list_duty_staff_users|list_duty_staff_users]] - [[_COMMUNITY_Community 111|Community 111]] - [[_COMMUNITY_.to_tenant_user_dict|.to_tenant_user_dict]] - [[_COMMUNITY_quote_share_log.py|quote_share_log.py]] @@ -133,10 +138,16 @@ - [[_COMMUNITY_sqlalchemy_exception_handler|sqlalchemy_exception_handler]] - [[_COMMUNITY_Session|Session]] - [[_COMMUNITY_Community 122|Community 122]] +- [[_COMMUNITY_customer_options|customer_options]] +- [[_COMMUNITY_datetime_parse.py|datetime_parse.py]] - [[_COMMUNITY_build_annotated_result_bytes|build_annotated_result_bytes]] - [[_COMMUNITY_customer_pool.py|customer_pool.py]] +- [[_COMMUNITY_web_login_rsa_public_key|web_login_rsa_public_key]] +- [[_COMMUNITY_product_allowed|product_allowed]] - [[_COMMUNITY_BaseStorage|BaseStorage]] -- [[_COMMUNITY_Community 134|Community 134]] +- [[_COMMUNITY_.to_tenant_user_dict|.to_tenant_user_dict]] +- [[_COMMUNITY_list_product_options|list_product_options]] +- [[_COMMUNITY_context.py|context.py]] - [[_COMMUNITY_Community 136|Community 136]] - [[_COMMUNITY_statistics.py|statistics.py]] - [[_COMMUNITY_Community 138|Community 138]] @@ -173,12 +184,12 @@ - [[_COMMUNITY_PlanResourceSnapshotMixin|PlanResourceSnapshotMixin]] ## God Nodes (most connected - your core abstractions) -1. `BaseModel` - 459 edges +1. `BaseModel` - 461 edges 2. `get_tenant_no()` - 353 edges 3. `success_response()` - 271 edges 4. `DbUserContext` - 258 edges 5. `error_response()` - 250 edges -6. `generate_uuid()` - 196 edges +6. `generate_uuid()` - 198 edges 7. `BxUserContext` - 188 edges 8. `crm_user_info()` - 137 edges 9. `assert_row_deletable_by_creator()` - 83 edges @@ -199,95 +210,95 @@ ## Import Cycles - None detected. -## Communities (166 total, 15 thin omitted) +## Communities (177 total, 18 thin omitted) ### Community 0 - "Community 0" -Cohesion: 0.12 -Nodes (40): register_contract_routes(), batch_assign_owner(), batch_submit_contract_approval(), create_from_quote(), download_contract_pdf(), _ensure_contract_in_scope(), export_contracts(), finish_contract() (+32 more) +Cohesion: 0.11 +Nodes (23): BxAdvanceApply, BxAdvanceApproval, BxReimburseOffset, BxWorkflowNode, 报销(bx)模块数据模型 — 对齐 docs/sql/20260606_bx_tables.sql, AdvanceService, Any, Session (+15 more) ### Community 1 - "Community 1" -Cohesion: 0.10 -Nodes (32): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, ContractApproverSettingSaveBody, ContractApprovalActionBody, ContractBatchAssignBody, ContractBatchSubmitBody, ContractChangeCreateBody, ContractChangeUpdateBody, ContractCreateBody (+24 more) +Cohesion: 0.08 +Nodes (39): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, 运营端角色守卫:admin / super_admin 可访问。, 接口菜单权限守卫。super_admin 直接放行。, require_admin_or_super_admin(), require_menu_code(), oper_log(), 在 handler 执行前设置操作日志元数据。, ContractApproverSettingSaveBody (+31 more) ### Community 2 - "Community 2" -Cohesion: 0.13 -Nodes (11): _coerce_id(), OffsetItem, PaymentFinanceStatsOut, 报销单勾选的发票附件(同一发票可勾选多个附件,各占一条)。, ReimburseApplyCreate, ReimburseApprovalOut, ReimburseApproverPendingStatsOut, ReimburseDetailCreate (+3 more) +Cohesion: 0.10 +Nodes (32): advance_issue_stats(), batch_offset(), export_advance_issues(), issue_advance(), list_advance_issues(), list_advance_offset_records(), list_pending_payments(), list_processed_payments() (+24 more) ### Community 3 - "Community 3" -Cohesion: 0.08 -Nodes (104): attachment_download_url(), attachment_preview_url(), AttachmentDownloadUrlBody, create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_menu_favorite() (+96 more) +Cohesion: 0.07 +Nodes (66): attachment_download_url(), attachment_preview_url(), create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_menu_favorite(), create_post() (+58 more) ### Community 4 - "Community 4" Cohesion: 0.09 Nodes (76): _apply_list_filters(), assign_opportunities(), batch_update_expect_date(), batch_update_stage(), change_stage(), create_opportunity(), _decimal_value(), _enrich_user_names() (+68 more) ### Community 5 - "Community 5" -Cohesion: 0.05 -Nodes (105): archive_plan(), cancel_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), create_from_contract(), create_plan(), create_plan_full(), delete_plan() (+97 more) +Cohesion: 0.07 +Nodes (69): archive_plan(), _build_driver_url(), cancel_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), create_from_contract(), create_plan(), create_plan_full() (+61 more) ### Community 6 - "Community 6" -Cohesion: 0.13 -Nodes (44): assign_customer(), batch_claim_customers(), check_duplicate_customer(), claim_customer(), create_customer(), deal_customer(), _enrich_user_names(), _ensure_customer_in_scope() (+36 more) +Cohesion: 0.10 +Nodes (51): customer_create(), customer_update(), follow_by_customer(), follow_detail(), assign_customer(), batch_claim_customers(), check_duplicate_customer(), claim_customer() (+43 more) ### Community 7 - "Community 7" -Cohesion: 0.03 -Nodes (223): clue_assign(), clue_check_convert(), clue_check_duplicate(), clue_convert(), clue_create(), clue_delete(), clue_detail(), clue_export() (+215 more) +Cohesion: 0.04 +Nodes (204): category_add(), category_delete(), category_tree(), category_update(), clue_assign(), clue_check_convert(), clue_check_duplicate(), clue_convert() (+196 more) ### Community 8 - "Community 8" -Cohesion: 0.10 -Nodes (54): assert_quote_editable_for_update(), _build_quote_filters(), calculate_quote_amount(), create_new_version(), create_quote(), _decimal_value(), _enrich_contact_fields(), _enrich_supplier_name() (+46 more) +Cohesion: 0.13 +Nodes (50): register_quote_routes(), accept_quote(), assert_quote_editable_for_update(), calculate_quote_amount(), create_new_version(), create_quote(), _decimal_value(), _enrich_contact_fields() (+42 more) ### Community 9 - "Community 9" Cohesion: 0.10 Nodes (49): download_reimburse_import_template(), build_annotated_result_bytes(), build_applicant_label(), build_expense_path_labels(), build_import_template_bytes(), cell_str(), _ids_visible_in_web_tree(), import_reimburse_workbook() (+41 more) ### Community 10 - "Community 10" -Cohesion: 0.11 -Nodes (20): 地磅 API 路由聚合 — REST 风格,协议对齐原 simple-dibang-xiaoshou。, list_public_vehicle_plates(), Session, 地磅公共只读:免登车牌 options(现场填写页), 免登:按出入库/计划解析 tenant_no,返回 pl_vehicle 车牌(self + carrier)。, _resolve_tenant_no(), menu_badge_stats(), Session (+12 more) +Cohesion: 0.13 +Nodes (34): _apply_inventory_product_update(), _apply_inventory_update(), _base_query(), create_inventory(), create_link_for_plan(), delete_inventory(), _generate_batch_no(), _get_inventory() (+26 more) ### Community 11 - "Community 11" Cohesion: 0.10 Nodes (55): cancel_apply(), create_apply(), create_disburse(), delete_applies(), delete_disburses(), get_apply(), get_disburse(), list_applies() (+47 more) ### Community 12 - "Community 12" -Cohesion: 0.06 -Nodes (64): contact_add(), contact_delete(), contact_update(), customer_delete(), BaseModel, AttachmentUploadResponse, ChangePasswordRequest, Config (+56 more) +Cohesion: 0.05 +Nodes (72): RecognizeCertResult, BaseModel, AttachmentUploadResponse, ChangePasswordRequest, Config, LoginRequest, LoginResponse, Pydantic schemas - 用户认证 (+64 more) ### Community 13 - "Community 13" -Cohesion: 0.20 +Cohesion: 0.19 Nodes (13): create_expense_item(), delete_expense_item(), get_expense_item(), get_expense_item_tree(), Session, update_expense_item(), BxExpenseItem, _coerce_id() (+5 more) ### Community 14 - "Community 14" -Cohesion: 0.20 -Nodes (15): bind_biz(), delete_attachment(), download_file(), list_by_biz(), _parse_id_list(), preview_attachment(), Session, UploadFile (+7 more) +Cohesion: 0.11 +Nodes (27): bind_biz(), delete_attachment(), download_file(), list_by_biz(), _parse_id_list(), preview_attachment(), Session, UploadFile (+19 more) ### Community 15 - "Community 15" -Cohesion: 0.10 -Nodes (41): approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse(), delete_reimburse(), get_approval_history(), get_approvals(), get_generated_title() (+33 more) +Cohesion: 0.09 +Nodes (42): approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse(), delete_reimburse(), get_approval_history(), get_approvals(), get_generated_title() (+34 more) ### Community 16 - "Community 16" -Cohesion: 0.09 -Nodes (60): cancel_apply(), create_apply(), create_record(), delete_applies(), delete_records(), get_apply(), get_record(), list_applies() (+52 more) +Cohesion: 0.14 +Nodes (41): PlVehicleRechargeApply, PlVehicleRechargeRecord, 车辆ETC/加油充值申请 pl_vehicle_recharge_apply, 车辆ETC/加油充值发放登记 pl_vehicle_recharge_record, Decimal, 发放登记页:申请单 + 关联发放信息(左连接), VehicleRechargeApplyCreate, VehicleRechargeApplyRead (+33 more) ### Community 17 - "Community 17" -Cohesion: 0.18 -Nodes (21): allocate_reimburse_title_seq(), format_reimburse_title(), generate_apply_code(), generate_title(), is_auto_reimburse_title(), parse_optional_date(), parse_reimburse_date(), preview_reimburse_title_seq() (+13 more) +Cohesion: 0.10 +Nodes (32): build_dict_value_from_label(), ensure_dict_data(), grab(), join_work_plans(), list_duty_staff_users(), normalize_person_name(), _pad_hhmm(), parse_time_range_input() (+24 more) ### Community 18 - "Community 18" -Cohesion: 0.08 -Nodes (63): advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _fill_offset_amounts(), get_advance() (+55 more) +Cohesion: 0.11 +Nodes (41): advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _fill_offset_amounts(), get_advance() (+33 more) ### Community 19 - "Community 19" -Cohesion: 0.14 -Nodes (13): BxAdvanceApply, BxAdvanceApproval, AdvanceService, Any, Session, 同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。, 返回全部审批动作,按时间正序排列,用于展示完整审批历史。, Any (+5 more) +Cohesion: 0.24 +Nodes (12): DbSequence, 地磅(db)模块数据模型 — 对齐 docs/sql/db_tables.sql, _allocate_inbound_outbound_id(), _ensure_sequence_row(), max_numeric_inbound_outbound_id(), next_inbound_outbound_id(), Session, 出入库单 id 生成 — 租户内纯数字自增,并发安全。 (+4 more) ### Community 20 - "Community 20" -Cohesion: 0.20 -Nodes (20): register_quote_routes(), 接口菜单权限守卫。super_admin 直接放行。, require_menu_code(), accept_quote(), generate_pdf(), generate_share(), _get_quote_in_scope(), get_template() (+12 more) +Cohesion: 0.13 +Nodes (34): approve_settlement_legacy(), cancel_settlement(), create_settlement(), delete_settlement(), disburse_settlement(), _generate_settlement_no(), get_settlement(), get_settlement_approval_flow() (+26 more) ### Community 21 - "Community 21" Cohesion: 0.15 -Nodes (32): _assert_brand_deletable(), barcode_exists(), category_code_exists(), create_category(), create_product(), generate_auto_product_no(), generate_barcode(), generate_product_no() (+24 more) +Nodes (34): _assert_brand_deletable(), barcode_exists(), category_code_exists(), create_category(), create_oss(), create_product(), generate_auto_product_no(), generate_barcode() (+26 more) ### Community 22 - "Community 22" Cohesion: 0.08 @@ -295,103 +306,103 @@ Nodes (28): parse_admin_request_json(), Any, Request, 运营 Web(/web/admin) ### Community 23 - "Community 23" Cohesion: 0.10 -Nodes (61): _generate_notify_message(), PlPlan, PlPlanProduct, 计划产品明细表 pl_plan_product, PlanArchiveFreightBlock, PlanArchiveProductItem, PlanDriverFeedbackUpdateBody, PlanProductCreate (+53 more) +Nodes (60): _generate_notify_message(), update_plan(), PlPlan, PlanArchiveFreightBlock, PlanArchiveProductItem, PlanProductCreate, PlanTransportCreateBlock, all_hazard_products_cert_complete() (+52 more) ### Community 24 - "Community 24" -Cohesion: 0.14 -Nodes (23): 报销模块认证适配:门户 JWT 用户 → bx 业务上下文。, BxReimburseInvoice, BxReimburseOffset, BxWorkflowNode, 报销(bx)模块数据模型 — 对齐 docs/sql/20260606_bx_tables.sql, filter_current_cycle_approvals(), 审批轮次过滤 — 驳回后重新提交时,进度接口仅展示当前轮次。, 审批进度仅展示当前轮次;完整历史由 get_approval_history 返回。 (+15 more) +Cohesion: 0.19 +Nodes (16): DictEnsureError, ensure_dict_data(), ensure_remove_dict_data(), Session, 业务页字典 ensure:白名单内按 label 复用或插入 sys_dict_data。, label miss, but preferred value already exists → reuse, no insert, test_ensure_honors_explicit_preferred_value_on_insert(), test_ensure_inserts_new_with_value_equals_label() (+8 more) ### Community 25 - "Community 25" Cohesion: 0.26 Nodes (12): list_share_logs(), _parse_user_agent(), Any, Session, CRM 报价单分享访问日志 CRUD — 对照 CrmQuoteShareLogServiceImpl.java, Java: statisticsVisits, 简易 User-Agent 解析(替代 Hutool UserAgentUtil), Java: queryLogsByQuoteId (+4 more) ### Community 26 - "Community 26" -Cohesion: 0.05 -Nodes (89): generate_id(), camel_to_snake(), CRUDBase, get_model_attr(), HistoryCRUD, Any, Session, DutyAssignment (+81 more) +Cohesion: 0.21 +Nodes (29): DutyAssignment, DutyDay, DutySlot, 值班排班模型 — docs/superpowers/specs/2026-08-14-duty-schedule-design.md, assert_user_is_duty_staff(), build_public_url(), _count_active_assignments(), _day_dict() (+21 more) ### Community 27 - "Community 27" Cohesion: 0.11 Nodes (32): CRM 报价单 API 路由 — 挂接到 crm.router, QuoteApproverSettingSaveBody, QuoteAcceptBody, QuoteApprovalApproveBody, QuoteApprovalListBody, QuoteApprovalRefreshNamesBody, QuoteApprovalWithdrawBody, QuoteCreateBody (+24 more) ### Community 28 - "Community 28" -Cohesion: 0.05 -Nodes (98): approve_settlement_legacy(), cancel_settlement(), create_settlement(), delete_settlement(), disburse_settlement(), _generate_settlement_no(), get_settlement(), get_settlement_approval_flow() (+90 more) +Cohesion: 0.09 +Nodes (61): PlFreightSettlement, PlFreightSettlementApproval, PlFreightSettlementTransport, PlRemittanceVoucher, 运费结算表 pl_freight_settlement, 运费结算审批 pl_freight_settlement_approval, 结算单-运输关联表 pl_freight_settlement_transport, 汇款凭证表 pl_remittance_voucher (+53 more) ### Community 29 - "Community 29" -Cohesion: 0.12 -Nodes (43): CRM 合同子模块路由 — 变更/模板/审批独立页, register_contract_sub_routes(), _change_row_to_dict(), contract_row_to_dict(), create_contract_change(), create_contract_template(), _enrich_change_rows(), execute_change() (+35 more) +Cohesion: 0.07 +Nodes (102): register_contract_routes(), _apply_contract_entity_fields(), batch_assign_owner(), batch_submit_contract_approval(), _build_contract_filters(), _build_contract_name_from_parties(), _build_customer_address(), _calc_amount_with_tax() (+94 more) ### Community 30 - "Community 30" -Cohesion: 0.16 -Nodes (26): clear_target_categories(), compute_level(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings() (+18 more) +Cohesion: 0.09 +Nodes (50): count_source_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings(), load_settings_env(), load_user_mapping() (+42 more) ### Community 31 - "Community 31" -Cohesion: 0.11 -Nodes (31): 列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。, _resolve_list_product_name(), _build_public_page(), _build_site_product_read(), _format_file_size(), get_public_site(), _get_site_link_by_token(), _parse_feedback_images() (+23 more) +Cohesion: 0.09 +Nodes (42): 返回 (作废, 归档)。现场链接实际走入库/出库单公共页。, _resolve_io_order_link_flags(), _resolve_site_link_flags(), _as_date(), _build_driver_url(), _build_public_page(), _format_file_size(), _format_plan_date() (+34 more) ### Community 32 - "Community 32" -Cohesion: 0.16 -Nodes (32): check_document_expiry(), document_reminder_stats(), get_inventory_ledger(), get_summary(), list_document_reminders(), list_transactions(), list_warnings(), date (+24 more) +Cohesion: 0.12 +Nodes (44): check_document_expiry(), document_reminder_stats(), get_inventory_ledger(), get_summary(), list_document_reminders(), list_transactions(), list_warnings(), date (+36 more) ### Community 33 - "Community 33" -Cohesion: 0.10 -Nodes (46): create_contact(), get_contact(), list_contacts_by_customer(), _parse_optional_date(), Any, date, Session, _row_to_dict() (+38 more) +Cohesion: 0.12 +Nodes (37): clue_detail(), contact_by_customer(), contact_detail(), contact_set_primary(), customer_detail(), create_contact(), get_contact(), list_contacts_by_customer() (+29 more) ### Community 34 - "Community 34" Cohesion: 0.18 -Nodes (25): approve_task(), _assert_wf_instance_in_scope(), _business_type_label(), create_process_def(), delete_process_def(), _enrich_task_list(), get_business_all_tasks(), _get_business_form_fields() (+17 more) +Nodes (31): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), legacy_parent_id(), load_oss_id_to_url(), load_runtime_settings() (+23 more) ### Community 35 - "Community 35" Cohesion: 0.18 Nodes (36): clear_portal_workflow(), _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_bx_user_mapping(), load_runtime_settings() (+28 more) ### Community 36 - "Community 36" -Cohesion: 0.16 -Nodes (28): 验证密码(哈希非 bcrypt 或损坏时返回 False,避免抛错), verify_password(), change_password(), create_user(), get_user(), get_user_with_relations(), _hash_password(), list_post_ids_for_user() (+20 more) +Cohesion: 0.15 +Nodes (27): 验证密码(哈希非 bcrypt 或损坏时返回 False,避免抛错), verify_password(), change_password(), create_user(), get_user(), get_user_with_relations(), _hash_password(), list_post_ids_for_user() (+19 more) ### Community 37 - "Community 37" -Cohesion: 0.16 -Nodes (26): _build_contract_filters(), _contract_period_key(), create_contract(), create_from_opportunity(), _decimal_value(), _get_field(), is_framework_contract_type(), _normalize_framework_contract_data() (+18 more) +Cohesion: 0.18 +Nodes (29): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+21 more) ### Community 38 - "Community 38" -Cohesion: 0.18 -Nodes (11): Config, decrypt_login_payload(), ensure_initialized(), extract_login_credentials(), get_public_pem(), Any, 登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。, Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。 (+3 more) +Cohesion: 0.31 +Nodes (9): decrypt_login_payload(), ensure_initialized(), extract_login_credentials(), get_public_pem(), Any, 登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。, Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。, 从请求体解析用户名、密码。 返回 (username, password, error_message);error_message 非空时表示失败。 (+1 more) ### Community 39 - "Community 39" -Cohesion: 0.14 -Nodes (41): assign_clues(), check_convert(), check_duplicate_clue(), convert_clue(), create_clue(), _enrich_user_names(), _ensure_clue_in_scope(), create_clue_follow() (+33 more) +Cohesion: 0.13 +Nodes (42): clue_follow_detail(), assign_clues(), check_convert(), check_duplicate_clue(), convert_clue(), create_clue(), _enrich_user_names(), _ensure_clue_in_scope() (+34 more) ### Community 40 - "Community 40" -Cohesion: 0.06 -Nodes (108): _apply_inventory_product_update(), _apply_inventory_update(), _base_query(), create_inventory(), create_link_for_plan(), _generate_batch_no(), _get_inventory(), _get_inventory_by_id() (+100 more) +Cohesion: 0.08 +Nodes (72): _apply_plan_product_update(), _apply_plan_update(), AutoGenerateMonthlyResult, _base_query(), create_plan(), _generate_plan_no(), get_plan(), _get_plan_by_id_only() (+64 more) ### Community 41 - "Community 41" -Cohesion: 0.14 -Nodes (24): PlTransportProductBrandQty, PlTransportProductFeedback, 运输单按产品回传 pl_transport_product_feedback, 运输单产品回传品牌数量 pl_transport_product_brand_qty, _dict_field(), format_brand_qty_summary(), load_transport_driver_product_feedbacks(), persist_io_item_brand_qtys() (+16 more) +Cohesion: 0.16 +Nodes (22): operlog_detail(), operlog_list(), Session, 操作日志分页列表(基于 API 请求日志适配 RuoYi OperLog 结构), _user_info(), 获取用户所有角色的数据权限配置。 返回: [{"data_scope": str, "details": [SysRoleDataScopeDetai, _resolve_user_role_scopes(), business_type_from_path() (+14 more) ### Community 42 - "Community 42" -Cohesion: 0.05 -Nodes (102): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+94 more) +Cohesion: 0.19 +Nodes (32): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+24 more) ### Community 43 - "Community 43" Cohesion: 0.09 Nodes (34): create_invoice(), delete_invoice(), get_mine_wallet_summary(), list_invoice_ledgers(), list_invoice_wallets(), list_invoices(), Request, Session (+26 more) ### Community 44 - "Community 44" -Cohesion: 0.21 -Nodes (16): _apply_contract_entity_fields(), _build_contract_name_from_parties(), _build_customer_address(), _calc_amount_with_tax(), _first_non_blank(), get_contract(), _get_default_invoice_info(), _get_supplier_short_name() (+8 more) +Cohesion: 0.15 +Nodes (32): approve_task(), _assert_wf_instance_in_scope(), _business_type_label(), create_process_def(), delete_process_def(), _enrich_task_list(), get_business_all_tasks(), _get_business_form_fields() (+24 more) ### Community 45 - "Community 45" -Cohesion: 0.11 -Nodes (17): category_add(), category_delete(), category_tree(), category_update(), product_delete(), product_update_status(), 删除产品(支持单条 body.id 和批量 body.ids), CategoryDeleteBody (+9 more) +Cohesion: 0.34 +Nodes (32): AttachmentDownloadUrlBody, DeptCreateBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody, DictTypeCreateBody, DictTypeUpdateBody, MenuCreateBody (+24 more) ### Community 46 - "Community 46" -Cohesion: 0.20 -Nodes (24): count_source_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings(), load_settings_env(), load_user_mapping() (+16 more) +Cohesion: 0.15 +Nodes (26): Session, recognize_cert(), RecognizeCertBody, cancel_apply(), create_apply(), create_record(), delete_applies(), delete_records() (+18 more) ### Community 47 - "Community 47" -Cohesion: 0.39 -Nodes (8): compute_contract_gap_sides(), _compile(), test_both_external_no_contracts_gaps_both(), test_both_internal_no_gap(), test_empty_names_treated_as_non_internal_gap_both(), test_external_with_contracts_no_gap(), test_internal_supplier_external_demander_missing_only_demander(), test_plan_has_contract_gap_exists_mentions_contract_and_internal_names() +Cohesion: 0.14 +Nodes (31): PlanContractGapRead, PlanContractLink, PlanProductRead, is_internal_customer_name(), 运输计划:内置山峡/云栋客户判定(合同可免), build_plan_contract_gap_read(), compute_contract_gap_sides(), _demander_gap_expr() (+23 more) ### Community 48 - "Community 48" Cohesion: 0.21 @@ -402,56 +413,56 @@ Cohesion: 0.49 Nodes (10): clue_statistics_level(), _apply_create_range(), _base_query(), get_clue_level_statistics(), get_clue_overview_statistics(), get_clue_owner_statistics(), get_clue_source_statistics(), get_clue_trend_statistics() (+2 more) ### Community 50 - "Community 50" -Cohesion: 0.13 -Nodes (22): _alias_row_to_dict(), _brand_row_to_dict(), _build_category_tree(), _category_row_to_dict(), _collect_category_with_ancestors(), get_product_by_no(), list_categories(), list_category_tree() (+14 more) +Cohesion: 0.26 +Nodes (23): _get_by_plan(), get_inbound(), get_inbound_by_plan(), _get_order(), get_outbound(), get_outbound_by_plan(), inbound_site_url(), list_inbound() (+15 more) ### Community 51 - "Community 51" Cohesion: 0.26 Nodes (18): _address_to_read(), _build_address_query(), create_transport_address(), delete_transport_address(), _get_address(), get_transport_address(), list_all_transport_addresses(), list_transport_addresses() (+10 more) ### Community 52 - "Community 52" -Cohesion: 0.19 -Nodes (15): CRM 模块 Excel 导出列定义(字段与字典类型对齐 Java *Vo @ExcelDictFormat)。, _build_workbook(), DictLabelResolver, export_rows_to_xlsx_response(), ExportColumn, load_dict_label_maps(), Any, Session (+7 more) +Cohesion: 0.22 +Nodes (12): CRM 模块 Excel 导出列定义(字段与字典类型对齐 Java *Vo @ExcelDictFormat)。, _build_workbook(), DictLabelResolver, export_rows_to_xlsx_response(), ExportColumn, Any, Session, Excel 导出工具:集中处理字典 code → label(对齐 Java ExcelDictConvert / ExcelDictPreloadConver (+4 more) ### Community 53 - "Community 53" -Cohesion: 0.30 -Nodes (12): business_type_from_path(), title_from_path(), _apply_oper_log_scope(), get_oper_log(), list_oper_logs(), _oper_log_row_in_scope(), _oper_status(), Any (+4 more) +Cohesion: 0.19 +Nodes (28): apply_biz_backfill(), BackfillRule, BizRef, build_biz_index(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows() (+20 more) ### Community 54 - "Community 54" -Cohesion: 0.19 -Nodes (28): _get_by_plan(), get_inbound(), get_inbound_by_plan(), _get_order(), get_outbound(), get_outbound_by_plan(), inbound_site_url(), list_inbound() (+20 more) +Cohesion: 0.08 +Nodes (52): _build_history_page(), _build_page(), _get_by_token(), _history_status_label(), _make_handlers(), _models(), _parse_history_date(), date (+44 more) ### Community 55 - "Community 55" -Cohesion: 0.09 -Nodes (38): generate_uuid(), get_current_time(), parse_datetime(), datetime, allocate_next_biz_no(), _format_biz_no(), _prefix_for(), datetime (+30 more) +Cohesion: 0.33 +Nodes (8): allocate_next_biz_no(), _format_biz_no(), _prefix_for(), datetime, Session, 业务协议号自动生成:XBCC / JZCC + YYYYMMDD + 6 位序号, 原子分配下一个业务协议号。 须在 create 事务内调用;使用 MySQL LAST_INSERT_ID 保证并发安全。, BizNoKind ### Community 56 - "Community 56" -Cohesion: 0.29 -Nodes (12): build_name_pinyin_abbr(), normalize_name_pinyin_abbr(), 名称拼音首字母缩写:库内存小写,检索时大小写不敏感。, 保存时解析拼音字段。 - submitted_provided=True:用提交值(空则按 name 生成) - 否则:已有非空 existi, resolve_name_pinyin_abbr(), test_chinese_and_alnum(), test_empty_and_whitespace(), test_resolve_not_submitted_empty_existing_generates() (+4 more) +Cohesion: 0.16 +Nodes (18): _build_quote_filters(), _fill_contract_linked_count(), list_quotes(), _parse_optional_datetime(), _period_key(), Any, datetime, Query (+10 more) ### Community 57 - "Community 57" -Cohesion: 0.25 -Nodes (13): day_detail(), delete_assignment(), duty_user_options(), _enrich_assign_names(), ensure_duty_dict(), month_summary(), Session, 指定用户时补全 personName(用 nick_name)。 (+5 more) +Cohesion: 0.23 +Nodes (15): create_leave(), delete_leave(), get_leave(), _leave_local_callback(), leave_workflow_callback(), list_leaves(), Session, submit_leave() (+7 more) ### Community 58 - "Community 58" Cohesion: 0.18 -Nodes (29): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+21 more) +Nodes (22): ReimburseDetailOut, allocate_reimburse_title_seq(), format_reimburse_title(), generate_apply_code(), generate_title(), is_auto_reimburse_title(), parse_optional_date(), parse_reimburse_date() (+14 more) ### Community 59 - "Community 59" Cohesion: 0.20 Nodes (28): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+20 more) ### Community 60 - "Community 60" -Cohesion: 0.12 -Nodes (16): 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方详情 — Java: CrmSupplierInfoController.getInfo, 新增供方 — Java: CrmSupplierInfoController.add, 修改供方 — Java: CrmSupplierInfoController.edit, 删除供方 — Java: CrmSupplierInfoController.remove, supplier_info_add(), supplier_info_delete(), supplier_info_detail() (+8 more) +Cohesion: 0.08 +Nodes (35): 分页查询供方列表 — Java: CrmSupplierInfoController.list, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 新增供方 — Java: CrmSupplierInfoController.add, 修改供方 — Java: CrmSupplierInfoController.edit, 删除供方 — Java: CrmSupplierInfoController.remove, 导出供方列表 — Java: CrmSupplierInfoController.export, supplier_info_add(), supplier_info_delete() (+27 more) ### Community 61 - "Community 61" -Cohesion: 0.11 -Nodes (43): PlTransportDbLink, 运输-地磅出入库关联 pl_transport_db_link, _apply_plan_quantity_delta(), _create_db_inventory(), _create_db_plan(), DibangInventoryLinkResult, find_monthly_db_plan(), _generate_batch_no() (+35 more) +Cohesion: 0.12 +Nodes (45): DbInboundOutbound, PlPlanProduct, PlTransportDbLink, 计划产品明细表 pl_plan_product, 运输-地磅出入库关联 pl_transport_db_link, parse_date_str(), _apply_plan_quantity_delta(), _create_db_inventory() (+37 more) ### Community 62 - "Community 62" Cohesion: 0.09 -Nodes (35): approve_carrier(), create_carrier(), get_carrier(), update_carrier(), PlCarrier, carrier_to_read(), CarrierBase, CarrierCreate (+27 more) +Nodes (53): approve_carrier(), bind_vehicle_driver(), create_carrier(), create_driver(), create_personnel(), delete_driver(), delete_personnel(), delete_vehicle() (+45 more) ### Community 63 - "Community 63" Cohesion: 0.38 @@ -466,8 +477,8 @@ Cohesion: 0.10 Nodes (58): cancel_apply(), create_apply(), create_process(), delete_applies(), delete_processes(), get_apply(), get_process(), list_applies() (+50 more) ### Community 66 - "Community 66" -Cohesion: 0.18 -Nodes (17): get_oper_log_meta(), OperLogMeta, 请求级操作日志元数据(ContextVar), 供异步落库线程使用,避免 ContextVar 跨线程丢失。, set_oper_log_meta(), snapshot_oper_log_meta(), _format_summary(), oper_log() (+9 more) +Cohesion: 0.15 +Nodes (20): ApiRequestLogMiddleware, _claims_from_auth(), _format_body_bytes(), _persist_log(), Any, Request, 统一记录 API 请求/响应出入参的中间件, _redact_obj() (+12 more) ### Community 67 - "Community 67" Cohesion: 0.12 @@ -478,101 +489,101 @@ Cohesion: 0.33 Nodes (13): _build_tree(), _cascade_soft_delete(), _collect_with_ancestors(), create_dept(), get_dept(), list_depts(), list_depts_tree(), Any (+5 more) ### Community 69 - "Community 69" -Cohesion: 0.14 -Nodes (28): _append_user_scope_conditions(), apply_data_scope(), assert_row_in_data_scope(), _collect_scope_ids(), _get_child_dept_ids(), get_user_dept_id(), Session, 数据权限过滤(V0.3:基于角色 data_scope 的查询级行级过滤) data_scope 值: 1 = 全部数据 2 = 本部门数据 3 (+20 more) +Cohesion: 0.15 +Nodes (25): _append_user_scope_conditions(), apply_data_scope(), assert_row_in_data_scope(), _collect_scope_ids(), _get_child_dept_ids(), get_user_dept_id(), Session, 数据权限过滤(V0.3:基于角色 data_scope 的查询级行级过滤) data_scope 值: 1 = 全部数据 2 = 本部门数据 3 (+17 more) ### Community 70 - "Community 70" -Cohesion: 0.16 -Nodes (20): align_contract_no_to_sign_date(), contract_no_exists(), generate_contract_no(), date, Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr, 租户内合同编号是否已占用(含软删,保证全局唯一)。, 标准编号替换日期段,保留序号;非标准返回 None。, 将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。 (+12 more) +Cohesion: 0.18 +Nodes (18): align_contract_no_to_sign_date(), generate_contract_no(), date, Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr, 标准编号替换日期段,保留序号;非标准返回 None。, 将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。, replace_contract_no_date(), _mock_last_contract() (+10 more) ### Community 71 - "Community 71" -Cohesion: 0.25 -Nodes (13): _claims_from_auth(), _format_body_bytes(), _persist_log(), Any, Request, 统一记录 API 请求/响应出入参的中间件, _redact_obj(), _schedule_persist_log() (+5 more) +Cohesion: 0.24 +Nodes (7): camel_to_snake(), CRUDBase, get_model_attr(), HistoryCRUD, Any, Session, ModelType ### Community 72 - "Community 72" -Cohesion: 0.40 -Nodes (9): create_oss(), create_oss(), get_oss_by_id(), get_oss_by_url(), Session, 按主键 id 查询附件(兼容旧 CRM 雪花 oss_id 迁入后的记录), 将 fileUrl 或旧 CRM 数字 ossId 解析为 MinIO 相对路径。 门户新上传把相对路径写入业务字段;迁入合同附件仍存数字 ossId, resolve_storage_path() (+1 more) +Cohesion: 0.25 +Nodes (18): batch_generate_sample_codes(), batch_issue_sample_codes(), batch_revoke_sample_codes(), create_sample_code(), get_sample_code(), list_sample_codes(), _parse_issued_time(), Any (+10 more) ### Community 73 - "Community 73" Cohesion: 0.20 Nodes (25): derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env(), load_user_mapping() (+17 more) ### Community 74 - "Community 74" -Cohesion: 0.13 -Nodes (21): ProcessDefCreateBody, ProcessDefUpdateBody, PublishVersionBody, StartInstanceBody, 流程实例 wf_process_instance, WfNode, WfProcessInstance, WfTask (+13 more) +Cohesion: 0.24 +Nodes (16): create_vehicle(), update_vehicle(), _vehicle_to_detail(), generate_uuid(), PlVehiclePersonnel, 车辆-人员关联表 pl_vehicle_personnel, VehicleDetailRead, VehiclePersonnelRow (+8 more) ### Community 75 - "apply_crm_create_by_scope" -Cohesion: 0.22 -Nodes (20): delete_driver(), delete_personnel(), delete_vehicle(), paste_recognize_commit(), PlVehicle, ConflictAction, PasteCommitBody, PasteCommitResult (+12 more) +Cohesion: 0.27 +Nodes (17): get_vehicle(), paste_recognize_commit(), PlVehicle, ConflictAction, PasteCommitBody, PasteCommitResult, PastePersonnelIn, PasteVehicleIn (+9 more) ### Community 76 - "opportunity_follow.py" -Cohesion: 0.31 -Nodes (9): change_current_user_password(), get_current_user_profile(), get_web_auth_menu_codes(), public_quote_share(), Request, Session, 获取当前用户信息(与 sys_user 字段对应)。, 获取当前用户菜单权限标识(sys_menu.perms,经角色继承)。 (+1 more) +Cohesion: 0.14 +Nodes (19): _avatar_url_field(), _build_user_info_payload(), change_current_user_password(), get_current_user_profile(), get_web_auth_menu_codes(), public_quote_share(), Request, Session (+11 more) ### Community 77 - "Community 77" Cohesion: 0.11 Nodes (12): get_wechat_pay_client(), get_wechat_pay_v2(), Any, 微信支付工具模块 支持微信支付 V3 API 文档参考: https://pay.weixin.qq.com/docs/v3/apis/index.html, 统一下单接口 (V3) Args: out_trade_no: 商户订单号 total_amo, 申请退款 Args: out_trade_no: 商户订单号 total_amount: 订单, 小程序调起支付的二次签名参数(与公众号 JSAPI 规则一致), 统一下单 (V2 API) Args: out_trade_no: 商户订单号 total_f (+4 more) ### Community 78 - "Community 78" -Cohesion: 0.14 -Nodes (30): delete_inventory(), delete_plan(), _actor_ids(), _actor_names(), assert_row_deletable_by_creator(), assert_rows_deletable_by_creator(), can_delete_by_creator(), is_super_admin() (+22 more) +Cohesion: 0.19 +Nodes (23): delete_plan(), delete_carrier(), unbind_vehicle_driver(), delete_plan(), _actor_ids(), _actor_names(), assert_row_deletable_by_creator(), assert_rows_deletable_by_creator() (+15 more) ### Community 79 - "PlCarrier" -Cohesion: 0.08 -Nodes (44): 返回 (作废, 归档)。现场链接实际走入库/出库单公共页。, _resolve_io_order_link_flags(), _resolve_site_link_flags(), _as_date(), _build_driver_url(), _build_public_page(), _format_file_size(), _format_plan_date() (+36 more) +Cohesion: 0.20 +Nodes (12): 流程实例 wf_process_instance, WfProcessInstance, _dispatch_local(), Any, 工作流回调服务 —— 流程状态变更时通知业务系统, 注册本地回调函数。当 callback_url 以 path 开头时直接调用 fn。, 尝试本地直调。返回 True 表示已处理,False 表示无匹配的本地回调。, 流程实例状态变更后,向业务系统发送回调通知。 优先级: 1. 如果 callback_url 是内部路径(以 / 开头),优先尝试本地直调 (+4 more) ### Community 80 - "resolve_crm_product" -Cohesion: 0.12 -Nodes (28): PlInventory, PlInventoryTransaction, 库存流水表 pl_inventory_transaction, load_brand_qtys_by_plan_product_ids(), persist_plan_product_brand_qtys(), Any, Decimal, Session (+20 more) +Cohesion: 0.30 +Nodes (12): PlCarrier, assert_carrier_eligible_for_transport(), carrier_agreement_expired(), carrier_audit_approved(), carrier_eligible_for_transport(), carrier_qualification_complete(), date, 资质附件均为选填,保留函数签名供兼容调用。 (+4 more) ### Community 81 - "customer_follow.py" -Cohesion: 0.15 -Nodes (14): invoice_info_add(), invoice_info_by_customer(), _invoice_info_by_customer_impl(), invoice_info_delete(), invoice_info_list(), invoice_info_set_default(), invoice_info_update(), 按客户ID查询开票信息(与 by-customer 等价) (+6 more) +Cohesion: 0.17 +Nodes (9): API 路由包 — 山峡化工生产一体化门户, get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,14 个一级菜单), Config, format_api_error_message(), PageResult, Exception, 将 HTTP/SQLAlchemy 等异常转为可展示的错误文案(避免 str([]) 空列表)。 (+1 more) ### Community 82 - "storage.py" -Cohesion: 0.10 -Nodes (30): create_vehicle(), get_vehicle(), update_vehicle(), _vehicle_to_detail(), calc_age_from_chinese_id_card(), date, 从 18 位身份证号计算周岁。号码不完整或出生日期无效时返回 None。, PlVehiclePersonnel (+22 more) +Cohesion: 0.39 +Nodes (10): create_site(), get_site(), list_sites(), Any, Session, _row_to_dict(), site_code_exists(), soft_delete_site() (+2 more) ### Community 83 - "Community 83" -Cohesion: 0.14 -Nodes (33): _advance_contract_after_approval(), approve_contract(), approve_contract_by_contract_id(), approve_pass(), approve_reject(), approve_transfer(), _build_approval_list_filters(), can_user_approve() (+25 more) +Cohesion: 0.09 +Nodes (52): CRM 合同子模块路由 — 变更/模板/审批独立页, register_contract_sub_routes(), _advance_contract_after_approval(), approve_contract(), approve_contract_by_contract_id(), approve_pass(), approve_reject(), approve_transfer() (+44 more) ### Community 84 - "Community 84" Cohesion: 0.23 Nodes (23): build_id_maps(), clip_text(), count_rows(), export_mapping(), fetch_rows(), legacy_id_to_str(), main(), map_id() (+15 more) +### Community 85 - "allocate_next_biz_no" +Cohesion: 0.21 +Nodes (14): get_oper_log_meta(), OperLogMeta, 请求级操作日志元数据(ContextVar), 供异步落库线程使用,避免 ContextVar 跨线程丢失。, set_oper_log_meta(), snapshot_oper_log_meta(), _format_summary(), _pick_field() (+6 more) + ### Community 86 - "Community 86" -Cohesion: 0.33 -Nodes (6): list_products(), get_supplier_hazard_flags(), 产品/客户列表 keyword:名称/编号/拼音首字母 OR 匹配。, test_list_customer_options_keyword_includes_name_and_pinyin(), test_list_customers_keyword_includes_name_and_pinyin(), test_list_products_keyword_includes_name_and_pinyin() +Cohesion: 0.15 +Nodes (15): calc_age_from_chinese_id_card(), date, 从 18 位身份证号计算周岁。号码不完整或出生日期无效时返回 None。, 按 18 位身份证号重算 pl_personnel.age,仅更新算出值与库中不一致的记录。返回更新条数。, refresh_personnel_ages_from_id_card(), check_customer_protect_time(), pool_recovery_job(), 每天凌晨1点:检查保护期到期客户,跟进次数不足则退回公海 (+7 more) ### Community 87 - "Community 87" Cohesion: 0.11 Nodes (32): approve_quote(), can_user_approve(), create_approval_records(), delete_pending_approvals(), get_quote_approval(), invalidate_all_approvals(), list_quote_approvals(), Any (+24 more) ### Community 88 - "CrmProduct" -Cohesion: 0.67 -Nodes (3): list_product_options(), 产品下拉 options:keyword 按产品名称/拼音首字母模糊匹配,不匹配产品编号。, test_list_product_options_keyword_only_filters_product_name() +Cohesion: 0.22 +Nodes (3): BaseStorage, 带下载文件名的访问 URL;默认实现为普通访问地址。, 浏览器内联预览 URL;默认实现为普通访问地址。 ### Community 89 - "pl_ocr_service.py" Cohesion: 0.19 Nodes (22): PlOcrUsageMonth, 阿里云 OCR 月度调用计数 pl_ocr_usage_month(按自然月全局统计), assert_quota_available(), _build_ocr_client(), compress_image_bytes(), current_usage_month(), _first_attachment_url(), get_or_create_usage_row() (+14 more) ### Community 90 - "WechatMessageService" -Cohesion: 0.17 -Nodes (8): 发送订单状态通知 Args: openid: 用户openid order_n, 发送支付成功通知 Args: openid: 用户openid order_n, 发送配送通知 Args: openid: 配送员openid task_no:, 发送配送时效预警 Args: openid: 配送员openid task_n, 发送退款结果通知 Args: openid: 用户openid order_n, 发送催单通知给配送员 Args: deliver_openid: 配送员openid, 发送模板消息 Args: openid: 用户openid template_, WechatMessageService +Cohesion: 0.15 +Nodes (9): 微信消息通知服务 支持微信小程序模板消息推送 使用方式: from app.core.wechat_message import WechatMes, 发送订单状态通知 Args: openid: 用户openid order_n, 发送支付成功通知 Args: openid: 用户openid order_n, 发送配送通知 Args: openid: 配送员openid task_no:, 发送配送时效预警 Args: openid: 配送员openid task_n, 发送退款结果通知 Args: openid: 用户openid order_n, 发送催单通知给配送员 Args: deliver_openid: 配送员openid, 发送模板消息 Args: openid: 用户openid template_ (+1 more) ### Community 91 - "opportunity_product.py" -Cohesion: 0.67 -Nodes (3): Session, recognize_cert(), RecognizeCertBody +Cohesion: 0.21 +Nodes (15): create_leave(), get_leave(), list_leaves(), Any, Session, _row_to_dict(), soft_delete_leave(), update_leave() (+7 more) ### Community 92 - "Community 92" Cohesion: 0.20 Nodes (21): _assert_users_exist(), get_setting(), Any, Session, _row_to_dict(), save_setting(), _assert_users_exist(), get_setting() (+13 more) -### Community 93 - "api_request_log_middleware.py" -Cohesion: 0.17 -Nodes (3): OSSStorage, process_image_content(), 处理图片内容,如果是 HEIC 格式则转换为 JPEG - ### Community 94 - "assert_contract_editable_for_update" Cohesion: 0.60 Nodes (3): assert_contract_editable_for_update(), test_assert_allows_editable(), test_assert_rejects_non_editable() @@ -581,113 +592,145 @@ Nodes (3): assert_contract_editable_for_update(), test_assert_allows_editable(), Cohesion: 0.24 Nodes (12): get_last_month_range(), month_range(), date, Session, 地磅计划按月自动生成 — 迁移自 simple-dibang-xiaoshou/auto-create-plan/auto_create_monthly_pla, 按月自动生成采购计划。 - 默认仅在每月 1 日执行(force=True 时跳过该限制,供手动触发验收) - 遍历所有租户,按上月计划模板生, run_auto_generate_monthly_plans(), default_execution_status() (+4 more) +### Community 96 - "minio_url.py" +Cohesion: 0.31 +Nodes (3): Any, Session, WorkflowEngine + +### Community 97 - "contact.py" +Cohesion: 0.22 +Nodes (10): invoice_info_by_customer(), _invoice_info_by_customer_impl(), invoice_info_delete(), invoice_info_list(), invoice_info_set_default(), 按客户ID查询开票信息(与 by-customer 等价), InvoiceInfoByCustomerBody, InvoiceInfoDeleteBody (+2 more) + ### Community 98 - "LocalStorage" Cohesion: 0.35 Nodes (11): create_tenant(), get_tenant(), list_tenants(), Any, Session, _row_to_dict(), soft_delete_tenant(), tenant_no_exists() (+3 more) +### Community 99 - "redis_client.py" +Cohesion: 0.13 +Nodes (27): pool_rule_add(), pool_rule_detail(), pool_rule_execute(), pool_rule_update_status(), 供方详情 — Java: CrmSupplierInfoController.getInfo, supplier_info_detail(), ensure_crm_create_by_row_in_scope(), create_pool_rule() (+19 more) + ### Community 100 - "price_letter_detail" Cohesion: 0.27 Nodes (15): Settings, BaseSettings, apply_renumber(), build_mapping(), fetch_products(), format_new_product_no(), load_settings_env(), main() (+7 more) ### Community 101 - "tenant.py" -Cohesion: 0.08 -Nodes (34): ApiRequestLogCRUD, Session, list_ethnics(), Any, Session, 民族码表 CRUD(全局 sys_ethnic), _row_to_dict(), SoftDeleteModel (+26 more) +Cohesion: 0.07 +Nodes (47): SoftDeleteModel, BizAttachment, 民族码表 sys_ethnic(国标 GB/T 3304,全局), SysEthnic, PlDocumentReminder, PlDriver, PlInboundOrder, PlInboundOrderItem (+39 more) ### Community 102 - "crm_supplier_hazard.py" -Cohesion: 0.52 -Nodes (5): product_allowed(), test_dual_requires_both(), test_explosive_only_requires_allow_explosive(), test_plain_always_allowed(), test_toxic_only_requires_allow_toxic() +Cohesion: 0.12 +Nodes (30): list_vehicles(), _vehicle_to_read(), PlCert, CertRead, VehicleListResponse, 运输计划 - 安排运输时车辆/人员/证件资源快照 Schema, SnapshotCertRead, SnapshotPersonnelRow (+22 more) ### Community 103 - "pl_internal_customer.py" -Cohesion: 0.14 -Nodes (26): list_vehicles(), _vehicle_to_read(), PlCert, PlDocumentReminder, 证件到期提醒表 pl_document_reminder, CertRead, VehicleListResponse, SnapshotCertRead (+18 more) +Cohesion: 0.47 +Nodes (5): list_ethnics(), Any, Session, 民族码表 CRUD(全局 sys_ethnic), _row_to_dict() ### Community 104 - "apply_crm_create_by_scope" -Cohesion: 0.29 -Nodes (15): create_price_letter(), get_price_letter(), list_price_letters(), _parse_date(), Any, date, Session, _row_to_dict() (+7 more) +Cohesion: 0.15 +Nodes (24): price_letter_add(), price_letter_detail(), price_letter_list(), price_letter_update(), create_price_letter(), get_price_letter(), list_price_letters(), _parse_date() (+16 more) ### Community 105 - "pool_customer_assign" -Cohesion: 0.17 -Nodes (11): pool_customer_assign(), pool_customer_claim(), pool_customer_list(), pool_record_detail(), pool_record_list(), PoolAssignBody, PoolClaimBody, PoolCustomerListBody (+3 more) +Cohesion: 0.29 +Nodes (12): build_name_pinyin_abbr(), normalize_name_pinyin_abbr(), 名称拼音首字母缩写:库内存小写,检索时大小写不敏感。, 保存时解析拼音字段。 - submitted_provided=True:用提交值(空则按 name 生成) - 否则:已有非空 existi, resolve_name_pinyin_abbr(), test_chinese_and_alnum(), test_empty_and_whitespace(), test_resolve_not_submitted_empty_existing_generates() (+4 more) ### Community 106 - "site.py" -Cohesion: 0.39 -Nodes (10): create_site(), get_site(), list_sites(), Any, Session, _row_to_dict(), site_code_exists(), soft_delete_site() (+2 more) +Cohesion: 0.22 +Nodes (8): contact_add(), contact_update(), ContactByCustomerBody, ContactCreateBody, ContactDetailBody, ContactSetPrimaryBody, ContactUpdateBody, CRM 联系人 Pydantic Schemas ### Community 107 - "apply_pl_scope" Cohesion: 0.16 -Nodes (30): create_instance(), create_process_def(), create_task(), get_all_tasks_for_business(), get_instance(), get_latest_version(), get_nodes_by_version(), get_pending_tasks_by_node() (+22 more) +Nodes (31): create_instance(), create_process_def(), create_task(), get_all_tasks_for_business(), get_instance(), get_latest_version(), get_nodes_by_version(), get_pending_tasks_by_node() (+23 more) ### Community 108 - "statistics.py" +Cohesion: 0.10 +Nodes (29): _alias_row_to_dict(), _brand_row_to_dict(), _build_category_tree(), _category_row_to_dict(), _collect_category_with_ancestors(), list_categories(), list_category_tree(), list_oss_by_biz() (+21 more) + +### Community 109 - "_ensure_subpack_slip_no" +Cohesion: 0.13 +Nodes (18): pool_customer_claim(), pool_customer_list(), pool_record_detail(), pool_record_list(), get_pool_record(), list_pool_records(), Any, Session (+10 more) + +### Community 110 - "list_duty_staff_users" +Cohesion: 0.39 +Nodes (8): get_redis_client(), get_sync_redis_client(), Redis, 共享 Redis 客户端(同步:会话鉴权;异步:API 加密 nonce)。, 同步 Redis(auth 会话等,在线程池中调用)。, 异步 Redis(API 加密 nonce 等中间件)。, _redis_common_kwargs(), redis_enabled() + +### Community 111 - "Community 111" +Cohesion: 0.08 +Nodes (45): _assert_editable(), _build_public_page(), _format_file_size(), _get_inventory_by_token(), get_public_inventory(), _parse_feedback_images(), Session, UploadFile (+37 more) + +### Community 112 - ".to_tenant_user_dict" Cohesion: 0.45 Nodes (11): _customer_base_query(), get_follow_statistics(), get_industry_statistics(), get_level_statistics(), get_overview_statistics(), get_owner_statistics(), get_source_statistics(), get_trend_statistics() (+3 more) -### Community 111 - "Community 111" -Cohesion: 0.28 -Nodes (14): _assert_editable(), _build_public_page(), _format_file_size(), _get_inventory_by_token(), get_public_inventory(), _parse_feedback_images(), Session, UploadFile (+6 more) - -### Community 112 - ".to_tenant_user_dict" -Cohesion: 0.40 -Nodes (3): Any, 供 get_tenant_no 等门户工具使用。, 与门户 JWT / apply_data_scope 所需的 user_info 字段对齐。 - ### Community 113 - "quote_share_log.py" -Cohesion: 0.47 -Nodes (11): apply_pl_scope(), Session, build_menu_badge_counts(), count_document_reminder_expired_pending(), count_freight_approval_pending(), count_freight_disburse_pending(), _count_pending_applies(), count_plan_archive_pending() (+3 more) +Cohesion: 0.50 +Nodes (4): customer_options(), 客户下拉选项(租户内只读,不做 owner 数据权限), CustomerOptionsBody, 客户下拉选项请求体(租户内只读搜索,不做 owner 数据权限) ### Community 114 - "db_models.py" -Cohesion: 0.28 -Nodes (11): DbSequence, _allocate_inbound_outbound_id(), _ensure_sequence_row(), max_numeric_inbound_outbound_id(), next_inbound_outbound_id(), Session, 出入库单 id 生成 — 租户内纯数字自增,并发安全。, 当前租户下纯数字 id 的最大值(不含 UUID 等非数字主键)。 (+3 more) - -### Community 115 - "site.py" -Cohesion: 0.17 -Nodes (29): bind_vehicle_driver(), create_driver(), create_personnel(), delete_carrier(), get_driver(), get_personnel(), list_carriers(), list_drivers() (+21 more) +Cohesion: 0.25 +Nodes (11): _assignment_dict(), format_hhmm(), format_time_label(), parse_hhmm(), _slot_dict(), test_format_time_label_cross_day(), test_format_time_label_empty(), test_format_time_label_same_day() (+3 more) ### Community 116 - "Community 116" -Cohesion: 0.19 -Nodes (25): calculate_subtotal(), _decimal_value(), delete_products_by_quote_id(), _ensure_quote_parent_scope(), _get_field(), get_quote_product(), insert_quote_product(), list_products_by_quote_ids() (+17 more) - -### Community 117 - "get_web_auth_menu_codes" -Cohesion: 0.25 -Nodes (10): _cert_url_blank(), plan_has_hazard_product_exists(), plan_has_incomplete_hazard_cert_exists(), 证书 URL 为空(NULL / 空串 / 纯空白)。, 列表筛选:计划下存在 CRM 标识为易制毒/易制爆的产品。, 列表筛选:存在危化产品且至少一张必需证书未上传。, _compile(), 危化品证上传列表筛选:EXISTS 子查询应覆盖 CRM 危化标识与证书缺口。 (+2 more) +Cohesion: 0.17 +Nodes (28): batch_insert_quote_products(), calculate_subtotal(), _decimal_value(), delete_products_by_quote_id(), _ensure_quote_parent_scope(), _get_field(), get_quote_product(), insert_quote_product() (+20 more) ### Community 118 - "Community 118" -Cohesion: 0.15 -Nodes (29): batch_insert_contract_products(), calculate_subtotal(), _decimal_value(), delete_price_tiers_by_contract_id(), delete_products_by_contract_id(), _get_field(), insert_contract_product(), _letter_oss_ids_to_json() (+21 more) +Cohesion: 0.20 +Nodes (24): batch_insert_contract_products(), calculate_subtotal(), _decimal_value(), delete_price_tiers_by_contract_id(), delete_products_by_contract_id(), _get_field(), insert_contract_product(), _letter_oss_ids_to_json() (+16 more) ### Community 119 - "Community 119" Cohesion: 0.12 Nodes (37): CertRow, _cert_row_complete(), collect_required_cert_errors(), _find_cert_for_required(), get_required_personnel_cert_names(), is_huolala_trailer_no(), match_required_cert_name(), _missing_field_labels() (+29 more) ### Community 120 - "sqlalchemy_exception_handler" -Cohesion: 0.11 -Nodes (18): ApiCryptoMiddleware, ApiRequestLogMiddleware, _db_pool_keepalive_loop(), _error_json(), lifespan(), Exception, Request, 数据库异常:返回 JSON 并保留 CORS 头,避免浏览器只报跨域错误 (+10 more) +Cohesion: 0.06 +Nodes (33): 地磅 API 路由聚合 — REST 风格,协议对齐原 simple-dibang-xiaoshou。, list_public_vehicle_plates(), Session, 地磅公共只读:免登车牌 options(现场填写页), 免登:按出入库/计划解析 tenant_no,返回 pl_vehicle 车牌(self + carrier)。, _resolve_tenant_no(), menu_badge_stats(), Session (+25 more) ### Community 121 - "Session" -Cohesion: 0.07 -Nodes (37): API 路由包 — 山峡化工生产一体化门户, create_leave(), delete_leave(), get_leave(), _leave_local_callback(), leave_workflow_callback(), list_leaves(), Session (+29 more) +Cohesion: 0.12 +Nodes (26): day_detail(), delete_assignment(), duty_user_options(), _enrich_assign_names(), ensure_duty_dict(), month_summary(), Session, 指定用户时补全 personName(用 nick_name)。 (+18 more) ### Community 122 - "Community 122" Cohesion: 0.39 Nodes (10): create_post(), get_post(), list_posts(), post_code_exists(), Any, Session, _row_to_dict(), soft_delete_post() (+2 more) +### Community 123 - "customer_options" +Cohesion: 0.12 +Nodes (20): list_plans(), _plan_plate_match(), 列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。, _resolve_list_product_name(), load_brand_qtys_by_plan_product_ids(), persist_plan_product_brand_qtys(), Any, Session (+12 more) + +### Community 124 - "datetime_parse.py" +Cohesion: 0.67 +Nodes (3): parse_optional_plan_datetime(), datetime, 运输计划相关日期时间解析:前端 date-picker 仅传 YYYY-MM-DD。 + ### Community 125 - "build_annotated_result_bytes" -Cohesion: 0.18 -Nodes (6): convert_heic_to_jpeg(), _guess_preview_content_type(), QiniuStorage, 文件存储工具模块 支持多种存储方式: 1. 本地存储 (local) - 默认 2. 七牛云存储 (qiniu) - 推荐生产环境使用 3. 阿里云OSS (, 按对象键后缀推断内联预览 Content-Type(纠正上传时未写入 MIME 的情况)。, 将 HEIC/HEIF 格式转换为 JPEG 格式 +Cohesion: 0.24 +Nodes (11): extract_minio_object_key(), join_relative_urls(), normalize_oss_storage_url(), MinIO 附件 URL 规范化(数据迁移共用)。 背景 ---- CRM / 地磅 / 报销与 shanxia2.0 共用同一 MinIO(bucket 默, 业务表 OSS ID 串 → 相对 URL 串(用于客户证照、跟进附件等)。, 去掉预签名 query(``?X-Amz-...``)。, 将绝对/相对 URL 规范为 MinIO object key(不含 bucket)。, 迁移 CRM ``sys_oss`` 行:``url`` + ``file_name`` → 门户相对路径。 (+3 more) ### Community 126 - "customer_pool.py" Cohesion: 0.36 Nodes (13): _build_tree(), _cascade_soft_delete(), create_menu(), get_menu(), list_menus(), list_menus_tree(), menu_name_exists(), Any (+5 more) +### Community 127 - "web_login_rsa_public_key" +Cohesion: 0.36 +Nodes (9): create_oss(), get_oss_by_id(), get_oss_by_url(), Session, 按主键 id 查询附件(兼容旧 CRM 雪花 oss_id 迁入后的记录), 将 fileUrl 或旧 CRM 数字 ossId 解析为 MinIO 相对路径。 门户新上传把相对路径写入业务字段;迁入合同附件仍存数字 ossId, resolve_storage_path(), CRM 模块数据模型(产品分类、产品主表、统一附件表、客户管理、公海池、线索管理) (+1 more) + +### Community 128 - "product_allowed" +Cohesion: 0.28 +Nodes (11): assert_products_allowed_for_supplier(), enrich_products_with_hazard_flags(), get_supplier_hazard_flags(), product_allowed(), Any, Session, 批量回填明细行 isToxic/isExplosive(来自产品主数据,供前端切换主体剔除)。, test_dual_requires_both() (+3 more) + ### Community 129 - "BaseStorage" Cohesion: 0.12 Nodes (24): _auto_contract_name_body(), generate_contract_name(), 按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。, 前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。, 按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名, resolve_party_short_name(), _strip_contract_name_no_suffix(), _user_contract_name_uses_party_full_name() (+16 more) -### Community 134 - "Community 134" -Cohesion: 0.25 -Nodes (18): batch_generate_sample_codes(), batch_issue_sample_codes(), batch_revoke_sample_codes(), create_sample_code(), get_sample_code(), list_sample_codes(), _parse_issued_time(), Any (+10 more) +### Community 130 - ".to_tenant_user_dict" +Cohesion: 0.40 +Nodes (3): Any, 供 get_tenant_no 等门户工具使用。, 与门户 JWT / apply_data_scope 所需的 user_info 字段对齐。 + +### Community 131 - "list_product_options" +Cohesion: 0.67 +Nodes (3): list_product_options(), 产品下拉 options:keyword 按产品名称/拼音首字母模糊匹配,不匹配产品编号。, test_list_product_options_keyword_only_filters_product_name() ### Community 136 - "Community 136" -Cohesion: 0.26 -Nodes (14): create_role(), get_role(), get_role_data_scope(), get_role_menu_ids(), list_roles(), Any, Session, 角色 CRUD(sys_role / sys_role_menu / sys_role_data_scope_detail) (+6 more) +Cohesion: 0.19 +Nodes (18): create_role(), get_role(), get_role_data_scope(), get_role_menu_ids(), list_roles(), Any, Session, 角色 CRUD(sys_role / sys_role_menu / sys_role_data_scope_detail) (+10 more) ### Community 137 - "statistics.py" Cohesion: 0.35 @@ -706,36 +749,36 @@ Cohesion: 0.27 Nodes (11): create_dict_data(), get_dict_data(), list_dict_data(), list_dict_data_options(), Any, Session, 字典数据 CRUD(sys_dict_data), 字典下拉选项:租户主数据,忽略数据范围(user_info 保留兼容调用方,不参与过滤)。 (+3 more) ### Community 145 - "resolve_crm_product" -Cohesion: 0.07 -Nodes (59): _build_page(), _get_by_token(), _models(), Session, 运输计划 · 入库/出库单现场免登录公共 API, PlInboundOrder, PlInboundOrderItem, PlInboundOrderItemBrandQty (+51 more) +Cohesion: 0.09 +Nodes (34): get_current_time(), parse_datetime(), datetime, PlTransportProductBrandQty, 运输单产品回传品牌数量 pl_transport_product_brand_qty, Decimal, validate_brand_qty_rows(), _dict_field() (+26 more) ### Community 147 - "Community 147" Cohesion: 0.37 Nodes (17): check_env(), check_python(), create_venv(), init_env(), install_dependencies(), log_error(), log_info(), log_success() (+9 more) ### Community 154 - "response.py" -Cohesion: 0.24 -Nodes (5): MinIOStorage, Any, 从 MINIO_BASE_URL 解析公网 endpoint;未配置或与内网相同时复用 self.client。, MinIO 预签名下载 URL,携带原始文件名。, MinIO 预签名内联预览 URL(图片新标签页 / PDF iframe 等)。 上传时 put_object 未写 content_typ +Cohesion: 0.19 +Nodes (7): _guess_preview_content_type(), MinIOStorage, Any, 从 MINIO_BASE_URL 解析公网 endpoint;未配置或与内网相同时复用 self.client。, 按对象键后缀推断内联预览 Content-Type(纠正上传时未写入 MIME 的情况)。, MinIO 预签名下载 URL,携带原始文件名。, MinIO 预签名内联预览 URL(图片新标签页 / PDF iframe 等)。 上传时 put_object 未写 content_typ ### Community 159 - "customer_update" -Cohesion: 0.28 -Nodes (12): _expand_with_ancestor_menu_ids(), _granted_menu_ids_for_user(), iter_user_menu_perm_codes(), Session, Web 管理端登录:基于 V0.3 sys_user / sys_user_role / sys_role 的角色与菜单权限解析, 角色仅勾选按钮(F)时,补齐祖先 C/M 菜单 id,便于前端匹配 :list 路由。, 用户通过角色关联得到的菜单权限标识(sys_menu.perms,与前端 meta.menuCode 对齐)。, 用户是否在 sys_user_role 中绑定了至少一个有效角色。 (+4 more) +Cohesion: 0.17 +Nodes (18): get_user_menu_codes(), Session, 菜单 code 权限守卫(V0.3:通过 sys_user_role → sys_role_menu → sys_menu.perms), 读取用户授权的菜单权限标识集合(与前端 meta.menuCode / perms 对齐)。, _expand_with_ancestor_menu_ids(), _granted_menu_ids_for_user(), iter_user_menu_perm_codes(), _map_role_name_to_web() (+10 more) ### Community 162 - ".to_tenant_user_dict" Cohesion: 0.42 Nodes (7): default_settlement_clause(), test_advance_payment_clause(), test_arrive_payment_clause(), test_empty_falls_back_to_arrive(), test_monthly_settlement_clause_uses_label(), test_unknown_falls_back_to_arrive(), test_volume_quarterly_other_labels() ### Community 164 - "get_client_ip" -Cohesion: 0.11 -Nodes (39): _avatar_url_field(), _build_user_info_payload(), _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/shanxia2.0.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。无 Token 或已失效时仍返回成功(幂等)。, 与 web-admin 静态路由 meta.roles(admin/super_admin)对齐的单元素数组。, 与 web-admin `userInfo` 字段约定一致。 (+31 more) +Cohesion: 0.20 +Nodes (24): _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/shanxia2.0.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。无 Token 或已失效时仍返回成功(幂等)。, Web 端登录:账号为 sys_user.user_no,密码为 sys_user.password(bcrypt)。, refresh_token(), web_login(), create_access_token() (+16 more) ### Community 170 - "test_quote_approver_setting.py" -Cohesion: 0.22 -Nodes (3): BaseStorage, 带下载文件名的访问 URL;默认实现为普通访问地址。, 浏览器内联预览 URL;默认实现为普通访问地址。 +Cohesion: 0.11 +Nodes (7): convert_heic_to_jpeg(), OSSStorage, process_image_content(), QiniuStorage, 文件存储工具模块 支持多种存储方式: 1. 本地存储 (local) - 默认 2. 七牛云存储 (qiniu) - 推荐生产环境使用 3. 阿里云OSS (, 将 HEIC/HEIF 格式转换为 JPEG 格式, 处理图片内容,如果是 HEIC 格式则转换为 JPEG ### Community 173 - "resolve_create_time_bounds" Cohesion: 0.08 -Nodes (76): _build_driver_url(), get_plan_arrange_info(), 获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。, _apply_plan_logistics_from_payload(), _apply_transport_arrange_fields(), arrange_transport(), _assert_vehicle_carrier_eligible(), _build_arrange_result() (+68 more) +Nodes (76): get_plan_arrange_info(), 获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。, _apply_plan_logistics_from_payload(), _apply_transport_arrange_fields(), arrange_transport(), _assert_vehicle_carrier_eligible(), _build_arrange_result(), _build_driver_url() (+68 more) ### Community 179 - "test_pl_vehicle_personnel_photo_schema.py" Cohesion: 0.27 @@ -750,8 +793,8 @@ Cohesion: 0.18 Nodes (10): 1. 创建虚拟环境, 2. 安装依赖, 3. 配置环境变量, 4. 启动服务, API 路由分组, shanxia2.0 后端骨架(FastAPI), 开发规范, 快速开始 (+2 more) ### Community 220 - "api_crypto_middleware.py" -Cohesion: 0.15 -Nodes (21): _claims_from_auth(), _coerce_post_method_override_to_get(), _get_redis_client(), _is_crypto_api(), _json_error_response(), _mark_nonce_once(), _nonce_key(), Redis (+13 more) +Cohesion: 0.23 +Nodes (14): ApiCryptoMiddleware, _claims_from_auth(), _coerce_post_method_override_to_get(), _get_redis_client(), _is_crypto_api(), _json_error_response(), _mark_nonce_once(), _nonce_key() (+6 more) ### Community 237 - "order_status_compat.py" Cohesion: 0.36 @@ -768,22 +811,22 @@ Nodes (6): eq_unicode(), like_unicode(), MySQL 字符串比较/模糊匹配时 ## Knowledge Gaps - **30 isolated node(s):** `Config`, `Config`, `Config`, `Config`, `Config` (+25 more) These have ≤1 connection - possible missing edges or undocumented components. -- **15 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. +- **18 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `generate_uuid()` connect `Community 55` to `Community 4`, `Community 5`, `Community 6`, `Community 134`, `Community 8`, `statistics.py`, `Community 136`, `Community 11`, `Community 15`, `dict_data.py`, `resolve_crm_product`, `Community 16`, `Community 19`, `Community 21`, `Community 23`, `Community 24`, `Community 25`, `Community 26`, `Community 28`, `Community 29`, `Community 32`, `Community 33`, `get_client_ip`, `Community 37`, `Community 36`, `Community 39`, `Community 40`, `Community 41`, `Community 43`, `resolve_create_time_bounds`, `Community 51`, `Community 61`, `Community 62`, `Community 64`, `Community 65`, `Community 67`, `Community 68`, `Community 72`, `apply_crm_create_by_scope`, `Community 78`, `resolve_crm_product`, `storage.py`, `Community 83`, `Community 87`, `pl_ocr_service.py`, `Community 92`, `test_pl_public_link_archived.py`, `LocalStorage`, `pl_internal_customer.py`, `apply_crm_create_by_scope`, `site.py`, `apply_pl_scope`, `db_models.py`, `site.py`, `Community 116`, `Community 118`, `Community 122`, `customer_pool.py`?** - _High betweenness centrality (0.120) - this node is a cross-community bridge._ -- **Why does `BaseModel` connect `Community 12` to `Community 1`, `Community 2`, `Community 3`, `Community 5`, `Community 7`, `Community 10`, `Community 11`, `Community 13`, `Community 14`, `Community 15`, `Community 16`, `Community 18`, `Community 23`, `Community 26`, `Community 27`, `Community 28`, `Community 29`, `Community 32`, `Community 34`, `Community 40`, `Community 43`, `resolve_create_time_bounds`, `Community 45`, `Community 51`, `Community 54`, `Community 57`, `Community 60`, `Community 62`, `Community 63`, `Community 64`, `Community 65`, `Community 74`, `apply_crm_create_by_scope`, `PlCarrier`, `customer_follow.py`, `storage.py`, `opportunity_product.py`, `tenant.py`, `pl_internal_customer.py`, `pool_customer_assign`, `Community 111`, `site.py`, `Community 119`, `Session`?** - _High betweenness centrality (0.095) - this node is a cross-community bridge._ -- **Why does `Settings` connect `price_letter_detail` to `Community 35`, `Community 67`, `Community 38`, `Community 73`, `Community 42`, `Community 46`, `Community 48`, `Community 58`, `Community 59`, `Community 30`?** - _High betweenness centrality (0.082) - this node is a cross-community bridge._ +- **Why does `generate_uuid()` connect `Community 74` to `Community 0`, `Community 4`, `Community 5`, `Community 6`, `Community 8`, `statistics.py`, `Community 136`, `Community 11`, `Community 14`, `Community 15`, `dict_data.py`, `resolve_crm_product`, `Community 17`, `Community 19`, `Community 16`, `Community 21`, `Community 23`, `Community 24`, `Community 25`, `Community 26`, `Community 28`, `Community 29`, `Community 32`, `Community 33`, `get_client_ip`, `Community 36`, `Community 39`, `Community 40`, `Community 43`, `resolve_create_time_bounds`, `Community 47`, `Community 51`, `Community 54`, `Community 55`, `Community 58`, `Community 60`, `Community 61`, `Community 62`, `Community 64`, `Community 65`, `Community 67`, `Community 68`, `Community 72`, `apply_crm_create_by_scope`, `storage.py`, `Community 83`, `Community 86`, `Community 87`, `pl_ocr_service.py`, `opportunity_product.py`, `Community 92`, `test_pl_public_link_archived.py`, `LocalStorage`, `redis_client.py`, `tenant.py`, `crm_supplier_hazard.py`, `apply_crm_create_by_scope`, `apply_pl_scope`, `_ensure_subpack_slip_no`, `Community 116`, `Community 118`, `Community 122`, `customer_options`, `customer_pool.py`, `web_login_rsa_public_key`?** + _High betweenness centrality (0.129) - this node is a cross-community bridge._ +- **Why does `BaseModel` connect `Community 12` to `Community 1`, `Community 2`, `Community 5`, `Community 6`, `Community 7`, `Community 10`, `Community 11`, `Community 13`, `Community 14`, `Community 15`, `Community 16`, `Community 18`, `Community 20`, `Community 23`, `Community 27`, `Community 32`, `Community 40`, `Community 41`, `Community 43`, `Community 44`, `Community 45`, `Community 46`, `resolve_create_time_bounds`, `Community 47`, `Community 50`, `Community 51`, `Community 54`, `Community 57`, `Community 58`, `Community 60`, `Community 62`, `Community 63`, `Community 64`, `Community 65`, `Community 74`, `apply_crm_create_by_scope`, `customer_follow.py`, `Community 83`, `contact.py`, `redis_client.py`, `tenant.py`, `crm_supplier_hazard.py`, `apply_crm_create_by_scope`, `site.py`, `_ensure_subpack_slip_no`, `Community 111`, `quote_share_log.py`, `Community 119`, `sqlalchemy_exception_handler`, `Session`?** + _High betweenness centrality (0.113) - this node is a cross-community bridge._ +- **Why does `Settings` connect `price_letter_detail` to `Community 34`, `Community 35`, `Community 67`, `Community 37`, `Community 73`, `Community 42`, `Community 111`, `Community 48`, `Community 53`, `Community 59`, `Community 30`?** + _High betweenness centrality (0.088) - this node is a cross-community bridge._ - **Are the 8 inferred relationships involving `DbUserContext` (e.g. with `InventoryRelatedData` and `AutoGenerateMonthlyResult`) actually correct?** _`DbUserContext` has 8 INFERRED edges - model-reasoned connections that need verification._ - **What connects `API 路由包 — 山峡化工生产一体化门户`, `返回运营端角色下拉选项(label=库中角色名,value=Web 角色码)。`, `返回用户下拉选项(label=昵称,value=用户ID,附带 nickName/userNo)。 供申请人/审批人等选择场景使用,返回本租户全部有效` to the rest of the system?** - _577 weakly-connected nodes found - possible documentation gaps or missing edges._ + _582 weakly-connected nodes found - possible documentation gaps or missing edges._ - **Should `Community 0` be split into smaller, more focused modules?** - _Cohesion score 0.11846689895470383 - nodes in this community are weakly interconnected._ + _Cohesion score 0.10745098039215686 - nodes in this community are weakly interconnected._ - **Should `Community 1` be split into smaller, more focused modules?** - _Cohesion score 0.09747899159663866 - nodes in this community are weakly interconnected._ \ No newline at end of file + _Cohesion score 0.07549361207897794 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/backend/graphify-out/2026-08-21/graph.json b/backend/graphify-out/2026-08-21/graph.json index f0dc47bb3..cd173ecee 100644 --- a/backend/graphify-out/2026-08-21/graph.json +++ b/backend/graphify-out/2026-08-21/graph.json @@ -20,7 +20,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_init", - "community": 121, + "community": 81, "norm_label": "__init__.py" }, { @@ -30,7 +30,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_init_rationale_1", - "community": 121, + "community": 81, "norm_label": "api \u8def\u7531\u5305 \u2014 \u5c71\u5ce1\u5316\u5de5\u751f\u4ea7\u4e00\u4f53\u5316\u95e8\u6237" }, { @@ -90,7 +90,7 @@ "source_location": "L126", "_origin": "ast", "id": "app_api_admin_tenantcreatebody", - "community": 3, + "community": 45, "norm_label": "tenantcreatebody" }, { @@ -100,7 +100,7 @@ "source_location": "L137", "_origin": "ast", "id": "app_api_admin_tenantupdatebody", - "community": 3, + "community": 45, "norm_label": "tenantupdatebody" }, { @@ -160,7 +160,7 @@ "source_location": "L247", "_origin": "ast", "id": "app_api_admin_usercreatebody", - "community": 3, + "community": 45, "norm_label": "usercreatebody" }, { @@ -170,7 +170,7 @@ "source_location": "L264", "_origin": "ast", "id": "app_api_admin_userupdatebody", - "community": 3, + "community": 45, "norm_label": "userupdatebody" }, { @@ -240,7 +240,7 @@ "source_location": "L451", "_origin": "ast", "id": "app_api_admin_dicttypecreatebody", - "community": 3, + "community": 45, "norm_label": "dicttypecreatebody" }, { @@ -250,7 +250,7 @@ "source_location": "L460", "_origin": "ast", "id": "app_api_admin_dicttypeupdatebody", - "community": 3, + "community": 45, "norm_label": "dicttypeupdatebody" }, { @@ -300,7 +300,7 @@ "source_location": "L550", "_origin": "ast", "id": "app_api_admin_dictdatacreatebody", - "community": 3, + "community": 45, "norm_label": "dictdatacreatebody" }, { @@ -310,7 +310,7 @@ "source_location": "L561", "_origin": "ast", "id": "app_api_admin_dictdataupdatebody", - "community": 3, + "community": 45, "norm_label": "dictdataupdatebody" }, { @@ -380,7 +380,7 @@ "source_location": "L691", "_origin": "ast", "id": "app_api_admin_deptcreatebody", - "community": 3, + "community": 45, "norm_label": "deptcreatebody" }, { @@ -390,7 +390,7 @@ "source_location": "L704", "_origin": "ast", "id": "app_api_admin_deptupdatebody", - "community": 3, + "community": 45, "norm_label": "deptupdatebody" }, { @@ -440,7 +440,7 @@ "source_location": "L797", "_origin": "ast", "id": "app_api_admin_sitecreatebody", - "community": 3, + "community": 45, "norm_label": "sitecreatebody" }, { @@ -450,7 +450,7 @@ "source_location": "L812", "_origin": "ast", "id": "app_api_admin_siteupdatebody", - "community": 3, + "community": 45, "norm_label": "siteupdatebody" }, { @@ -500,7 +500,7 @@ "source_location": "L916", "_origin": "ast", "id": "app_api_admin_postcreatebody", - "community": 3, + "community": 45, "norm_label": "postcreatebody" }, { @@ -510,7 +510,7 @@ "source_location": "L926", "_origin": "ast", "id": "app_api_admin_postupdatebody", - "community": 3, + "community": 45, "norm_label": "postupdatebody" }, { @@ -560,7 +560,7 @@ "source_location": "L1010", "_origin": "ast", "id": "app_api_admin_postusersupdatebody", - "community": 3, + "community": 45, "norm_label": "postusersupdatebody" }, { @@ -590,7 +590,7 @@ "source_location": "L1055", "_origin": "ast", "id": "app_api_admin_menucreatebody", - "community": 3, + "community": 45, "norm_label": "menucreatebody" }, { @@ -600,7 +600,7 @@ "source_location": "L1071", "_origin": "ast", "id": "app_api_admin_menuupdatebody", - "community": 3, + "community": 45, "norm_label": "menuupdatebody" }, { @@ -650,7 +650,7 @@ "source_location": "L1175", "_origin": "ast", "id": "app_api_admin_rolecreatebody", - "community": 3, + "community": 45, "norm_label": "rolecreatebody" }, { @@ -660,7 +660,7 @@ "source_location": "L1185", "_origin": "ast", "id": "app_api_admin_roleupdatebody", - "community": 3, + "community": 45, "norm_label": "roleupdatebody" }, { @@ -670,7 +670,7 @@ "source_location": "L1195", "_origin": "ast", "id": "app_api_admin_rolemenubody", - "community": 3, + "community": 45, "norm_label": "rolemenubody" }, { @@ -680,7 +680,7 @@ "source_location": "L1199", "_origin": "ast", "id": "app_api_admin_roledatascopebody", - "community": 3, + "community": 45, "norm_label": "roledatascopebody" }, { @@ -810,7 +810,7 @@ "source_location": "L1422", "_origin": "ast", "id": "app_api_admin_attachmentdownloadurlbody", - "community": 3, + "community": 45, "norm_label": "attachmentdownloadurlbody" }, { @@ -1460,7 +1460,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_bx_payment", - "community": 18, + "community": 2, "norm_label": "payment.py" }, { @@ -1470,7 +1470,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_api_bx_payment_tenant", - "community": 18, + "community": 2, "norm_label": "_tenant()" }, { @@ -1480,7 +1480,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_bx_payment_py_session", - "community": 18, + "community": 2, "norm_label": "session" }, { @@ -1490,7 +1490,7 @@ "source_location": "L43", "_origin": "ast", "id": "app_api_bx_payment_wrap_reimburse_rows", - "community": 18, + "community": 2, "norm_label": "_wrap_reimburse_rows()" }, { @@ -1500,7 +1500,7 @@ "source_location": "L48", "_origin": "ast", "id": "app_api_bx_payment_list_pending_payments", - "community": 18, + "community": 2, "norm_label": "list_pending_payments()" }, { @@ -1510,7 +1510,7 @@ "source_location": "L85", "_origin": "ast", "id": "app_api_bx_payment_payment_finance_stats", - "community": 18, + "community": 2, "norm_label": "payment_finance_stats()" }, { @@ -1520,7 +1520,7 @@ "source_location": "L95", "_origin": "ast", "id": "app_api_bx_payment_list_processed_payments", - "community": 18, + "community": 2, "norm_label": "list_processed_payments()" }, { @@ -1530,7 +1530,7 @@ "source_location": "L132", "_origin": "ast", "id": "app_api_bx_payment_pay", - "community": 18, + "community": 2, "norm_label": "pay()" }, { @@ -1540,7 +1540,7 @@ "source_location": "L152", "_origin": "ast", "id": "app_api_bx_payment_offset", - "community": 18, + "community": 2, "norm_label": "offset()" }, { @@ -1550,7 +1550,7 @@ "source_location": "L175", "_origin": "ast", "id": "app_api_bx_payment_batch_offset", - "community": 18, + "community": 2, "norm_label": "batch_offset()" }, { @@ -1560,7 +1560,7 @@ "source_location": "L198", "_origin": "ast", "id": "app_api_bx_payment_list_advance_issues", - "community": 18, + "community": 2, "norm_label": "list_advance_issues()" }, { @@ -1570,7 +1570,7 @@ "source_location": "L245", "_origin": "ast", "id": "app_api_bx_payment_advance_issue_stats", - "community": 18, + "community": 2, "norm_label": "advance_issue_stats()" }, { @@ -1580,7 +1580,7 @@ "source_location": "L255", "_origin": "ast", "id": "app_api_bx_payment_export_advance_issues", - "community": 18, + "community": 2, "norm_label": "export_advance_issues()" }, { @@ -1590,7 +1590,7 @@ "source_location": "L335", "_origin": "ast", "id": "app_api_bx_payment_issue_advance", - "community": 18, + "community": 2, "norm_label": "issue_advance()" }, { @@ -1600,7 +1600,7 @@ "source_location": "L359", "_origin": "ast", "id": "app_api_bx_payment_list_advance_offset_records", - "community": 18, + "community": 2, "norm_label": "list_advance_offset_records()" }, { @@ -1610,7 +1610,7 @@ "source_location": "L399", "_origin": "ast", "id": "app_api_bx_payment_list_reimburse_offset_records", - "community": 18, + "community": 2, "norm_label": "list_reimburse_offset_records()" }, { @@ -1970,7 +1970,7 @@ "source_location": "L330", "_origin": "ast", "id": "app_api_crm_category_tree", - "community": 45, + "community": 7, "norm_label": "category_tree()" }, { @@ -2000,7 +2000,7 @@ "source_location": "L392", "_origin": "ast", "id": "app_api_crm_customer_detail", - "community": 7, + "community": 33, "norm_label": "customer_detail()" }, { @@ -2010,7 +2010,7 @@ "source_location": "L418", "_origin": "ast", "id": "app_api_crm_customer_options", - "community": 7, + "community": 113, "norm_label": "customer_options()" }, { @@ -2020,7 +2020,7 @@ "source_location": "L442", "_origin": "ast", "id": "app_api_crm_customer_create", - "community": 7, + "community": 6, "norm_label": "customer_create()" }, { @@ -2030,7 +2030,7 @@ "source_location": "L472", "_origin": "ast", "id": "app_api_crm_customer_update", - "community": 7, + "community": 6, "norm_label": "customer_update()" }, { @@ -2040,7 +2040,7 @@ "source_location": "L499", "_origin": "ast", "id": "app_api_crm_customer_delete", - "community": 12, + "community": 7, "norm_label": "customer_delete()" }, { @@ -2060,7 +2060,7 @@ "source_location": "L543", "_origin": "ast", "id": "app_api_crm_category_add", - "community": 45, + "community": 7, "norm_label": "category_add()" }, { @@ -2070,7 +2070,7 @@ "source_location": "L562", "_origin": "ast", "id": "app_api_crm_category_update", - "community": 45, + "community": 7, "norm_label": "category_update()" }, { @@ -2080,7 +2080,7 @@ "source_location": "L582", "_origin": "ast", "id": "app_api_crm_category_delete", - "community": 45, + "community": 7, "norm_label": "category_delete()" }, { @@ -2097,7 +2097,7 @@ "label": "product_detail()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L639", + "source_location": "L641", "_origin": "ast", "id": "app_api_crm_product_detail", "community": 7, @@ -2107,7 +2107,7 @@ "label": "product_add()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L660", + "source_location": "L662", "_origin": "ast", "id": "app_api_crm_product_add", "community": 7, @@ -2117,7 +2117,7 @@ "label": "product_update()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L684", + "source_location": "L686", "_origin": "ast", "id": "app_api_crm_product_update", "community": 7, @@ -2127,27 +2127,27 @@ "label": "product_delete()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L705", + "source_location": "L707", "_origin": "ast", "id": "app_api_crm_product_delete", - "community": 45, + "community": 7, "norm_label": "product_delete()" }, { "label": "product_update_status()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L733", + "source_location": "L735", "_origin": "ast", "id": "app_api_crm_product_update_status", - "community": 45, + "community": 7, "norm_label": "product_update_status()" }, { "label": "product_options()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L754", + "source_location": "L756", "_origin": "ast", "id": "app_api_crm_product_options", "community": 7, @@ -2157,7 +2157,7 @@ "label": "product_import()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L782", + "source_location": "L784", "_origin": "ast", "id": "app_api_crm_product_import", "community": 7, @@ -2177,7 +2177,7 @@ "label": "product_export()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L873", + "source_location": "L875", "_origin": "ast", "id": "app_api_crm_product_export", "community": 7, @@ -2187,7 +2187,7 @@ "label": "product_import_template()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L908", + "source_location": "L912", "_origin": "ast", "id": "app_api_crm_product_import_template", "community": 7, @@ -2197,7 +2197,7 @@ "label": "customer_transfer()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L952", + "source_location": "L956", "_origin": "ast", "id": "app_api_crm_customer_transfer", "community": 7, @@ -2207,7 +2207,7 @@ "label": "customer_into_pool()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L978", + "source_location": "L982", "_origin": "ast", "id": "app_api_crm_customer_into_pool", "community": 7, @@ -2217,7 +2217,7 @@ "label": "customer_deal()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1003", + "source_location": "L1007", "_origin": "ast", "id": "app_api_crm_customer_deal", "community": 7, @@ -2227,7 +2227,7 @@ "label": "customer_check_duplicate()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1032", + "source_location": "L1036", "_origin": "ast", "id": "app_api_crm_customer_check_duplicate", "community": 7, @@ -2237,7 +2237,7 @@ "label": "customer_export()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1055", + "source_location": "L1059", "_origin": "ast", "id": "app_api_crm_customer_export", "community": 7, @@ -2247,7 +2247,7 @@ "label": "customer_import_template()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1091", + "source_location": "L1095", "_origin": "ast", "id": "app_api_crm_customer_import_template", "community": 7, @@ -2257,7 +2257,7 @@ "label": "customer_mine()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1130", + "source_location": "L1134", "_origin": "ast", "id": "app_api_crm_customer_mine", "community": 7, @@ -2267,7 +2267,7 @@ "label": "customer_to_follow()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1164", + "source_location": "L1168", "_origin": "ast", "id": "app_api_crm_customer_to_follow", "community": 7, @@ -2277,7 +2277,7 @@ "label": "customer_key()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1198", + "source_location": "L1202", "_origin": "ast", "id": "app_api_crm_customer_key", "community": 7, @@ -2287,7 +2287,7 @@ "label": "customer_dealed()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1232", + "source_location": "L1236", "_origin": "ast", "id": "app_api_crm_customer_dealed", "community": 7, @@ -2297,7 +2297,7 @@ "label": "customer_week_new()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1264", + "source_location": "L1268", "_origin": "ast", "id": "app_api_crm_customer_week_new", "community": 7, @@ -2307,7 +2307,7 @@ "label": "customer_long_time_no_follow()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1296", + "source_location": "L1300", "_origin": "ast", "id": "app_api_crm_customer_long_time_no_follow", "community": 7, @@ -2317,7 +2317,7 @@ "label": "customer_park_area_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1328", + "source_location": "L1332", "_origin": "ast", "id": "app_api_crm_customer_park_area_list", "community": 7, @@ -2327,57 +2327,57 @@ "label": "pool_customer_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1348", + "source_location": "L1352", "_origin": "ast", "id": "app_api_crm_pool_customer_list", - "community": 105, + "community": 109, "norm_label": "pool_customer_list()" }, { "label": "pool_customer_assign()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1380", + "source_location": "L1384", "_origin": "ast", "id": "app_api_crm_pool_customer_assign", - "community": 105, + "community": 7, "norm_label": "pool_customer_assign()" }, { "label": "pool_customer_claim()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1399", + "source_location": "L1403", "_origin": "ast", "id": "app_api_crm_pool_customer_claim", - "community": 105, + "community": 109, "norm_label": "pool_customer_claim()" }, { "label": "pool_record_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1417", + "source_location": "L1421", "_origin": "ast", "id": "app_api_crm_pool_record_list", - "community": 105, + "community": 109, "norm_label": "pool_record_list()" }, { "label": "pool_record_detail()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1447", + "source_location": "L1451", "_origin": "ast", "id": "app_api_crm_pool_record_detail", - "community": 105, + "community": 109, "norm_label": "pool_record_detail()" }, { "label": "contact_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1469", + "source_location": "L1473", "_origin": "ast", "id": "app_api_crm_contact_list", "community": 7, @@ -2387,67 +2387,67 @@ "label": "contact_detail()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1505", + "source_location": "L1509", "_origin": "ast", "id": "app_api_crm_contact_detail", - "community": 7, + "community": 33, "norm_label": "contact_detail()" }, { "label": "contact_by_customer()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1529", + "source_location": "L1533", "_origin": "ast", "id": "app_api_crm_contact_by_customer", - "community": 7, + "community": 33, "norm_label": "contact_by_customer()" }, { "label": "contact_add()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1550", + "source_location": "L1554", "_origin": "ast", "id": "app_api_crm_contact_add", - "community": 12, + "community": 106, "norm_label": "contact_add()" }, { "label": "contact_update()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1573", + "source_location": "L1577", "_origin": "ast", "id": "app_api_crm_contact_update", - "community": 12, + "community": 106, "norm_label": "contact_update()" }, { "label": "contact_delete()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1594", + "source_location": "L1598", "_origin": "ast", "id": "app_api_crm_contact_delete", - "community": 12, + "community": 7, "norm_label": "contact_delete()" }, { "label": "contact_set_primary()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1614", + "source_location": "L1618", "_origin": "ast", "id": "app_api_crm_contact_set_primary", - "community": 7, + "community": 33, "norm_label": "contact_set_primary()" }, { "label": "contact_export()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1636", + "source_location": "L1640", "_origin": "ast", "id": "app_api_crm_contact_export", "community": 7, @@ -2457,7 +2457,7 @@ "label": "contact_decision()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1666", + "source_location": "L1670", "_origin": "ast", "id": "app_api_crm_contact_decision", "community": 7, @@ -2467,7 +2467,7 @@ "label": "contact_primary()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1697", + "source_location": "L1701", "_origin": "ast", "id": "app_api_crm_contact_primary", "community": 7, @@ -2477,7 +2477,7 @@ "label": "contact_birthday()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1728", + "source_location": "L1732", "_origin": "ast", "id": "app_api_crm_contact_birthday", "community": 7, @@ -2487,7 +2487,7 @@ "label": "follow_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1762", + "source_location": "L1766", "_origin": "ast", "id": "app_api_crm_follow_list", "community": 7, @@ -2507,27 +2507,27 @@ "label": "follow_detail()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1794", + "source_location": "L1798", "_origin": "ast", "id": "app_api_crm_follow_detail", - "community": 7, + "community": 6, "norm_label": "follow_detail()" }, { "label": "follow_by_customer()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1820", + "source_location": "L1824", "_origin": "ast", "id": "app_api_crm_follow_by_customer", - "community": 7, + "community": 6, "norm_label": "follow_by_customer()" }, { "label": "follow_add()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1841", + "source_location": "L1845", "_origin": "ast", "id": "app_api_crm_follow_add", "community": 7, @@ -2547,7 +2547,7 @@ "label": "follow_update()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1865", + "source_location": "L1869", "_origin": "ast", "id": "app_api_crm_follow_update", "community": 7, @@ -2567,7 +2567,7 @@ "label": "follow_delete()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1884", + "source_location": "L1888", "_origin": "ast", "id": "app_api_crm_follow_delete", "community": 7, @@ -2587,7 +2587,7 @@ "label": "follow_export()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1901", + "source_location": "L1905", "_origin": "ast", "id": "app_api_crm_follow_export", "community": 7, @@ -2597,7 +2597,7 @@ "label": "pool_rule_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1934", + "source_location": "L1938", "_origin": "ast", "id": "app_api_crm_pool_rule_list", "community": 7, @@ -2607,27 +2607,27 @@ "label": "pool_rule_detail()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1965", + "source_location": "L1969", "_origin": "ast", "id": "app_api_crm_pool_rule_detail", - "community": 7, + "community": 99, "norm_label": "pool_rule_detail()" }, { "label": "pool_rule_add()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L1986", + "source_location": "L1990", "_origin": "ast", "id": "app_api_crm_pool_rule_add", - "community": 7, + "community": 99, "norm_label": "pool_rule_add()" }, { "label": "pool_rule_update()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2013", + "source_location": "L2017", "_origin": "ast", "id": "app_api_crm_pool_rule_update", "community": 7, @@ -2637,7 +2637,7 @@ "label": "pool_rule_delete()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2042", + "source_location": "L2046", "_origin": "ast", "id": "app_api_crm_pool_rule_delete", "community": 7, @@ -2647,27 +2647,27 @@ "label": "pool_rule_update_status()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2059", + "source_location": "L2063", "_origin": "ast", "id": "app_api_crm_pool_rule_update_status", - "community": 7, + "community": 99, "norm_label": "pool_rule_update_status()" }, { "label": "pool_rule_execute()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2079", + "source_location": "L2083", "_origin": "ast", "id": "app_api_crm_pool_rule_execute", - "community": 7, + "community": 99, "norm_label": "pool_rule_execute()" }, { "label": "statistics_overview()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2098", + "source_location": "L2102", "_origin": "ast", "id": "app_api_crm_statistics_overview", "community": 7, @@ -2677,7 +2677,7 @@ "label": "statistics_source()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2118", + "source_location": "L2122", "_origin": "ast", "id": "app_api_crm_statistics_source", "community": 7, @@ -2687,7 +2687,7 @@ "label": "statistics_level()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2136", + "source_location": "L2140", "_origin": "ast", "id": "app_api_crm_statistics_level", "community": 7, @@ -2697,7 +2697,7 @@ "label": "statistics_industry()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2154", + "source_location": "L2158", "_origin": "ast", "id": "app_api_crm_statistics_industry", "community": 7, @@ -2707,7 +2707,7 @@ "label": "statistics_trend()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2172", + "source_location": "L2176", "_origin": "ast", "id": "app_api_crm_statistics_trend", "community": 7, @@ -2717,7 +2717,7 @@ "label": "statistics_owner()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2195", + "source_location": "L2199", "_origin": "ast", "id": "app_api_crm_statistics_owner", "community": 7, @@ -2727,7 +2727,7 @@ "label": "statistics_follow()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2213", + "source_location": "L2217", "_origin": "ast", "id": "app_api_crm_statistics_follow", "community": 7, @@ -2737,7 +2737,7 @@ "label": "_opp_list_kwargs()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2238", + "source_location": "L2242", "_origin": "ast", "id": "app_api_crm_opp_list_kwargs", "community": 7, @@ -2747,7 +2747,7 @@ "label": "opportunity_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2267", + "source_location": "L2271", "_origin": "ast", "id": "app_api_crm_opportunity_list", "community": 7, @@ -2757,7 +2757,7 @@ "label": "opportunity_mine_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2300", + "source_location": "L2304", "_origin": "ast", "id": "app_api_crm_opportunity_mine_list", "community": 7, @@ -2767,7 +2767,7 @@ "label": "opportunity_detail()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2333", + "source_location": "L2337", "_origin": "ast", "id": "app_api_crm_opportunity_detail", "community": 7, @@ -2777,7 +2777,7 @@ "label": "opportunity_add()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2363", + "source_location": "L2367", "_origin": "ast", "id": "app_api_crm_opportunity_add", "community": 7, @@ -2787,7 +2787,7 @@ "label": "opportunity_update()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2387", + "source_location": "L2391", "_origin": "ast", "id": "app_api_crm_opportunity_update", "community": 7, @@ -2797,7 +2797,7 @@ "label": "opportunity_delete()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2408", + "source_location": "L2412", "_origin": "ast", "id": "app_api_crm_opportunity_delete", "community": 7, @@ -2807,7 +2807,7 @@ "label": "opportunity_assign()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2429", + "source_location": "L2433", "_origin": "ast", "id": "app_api_crm_opportunity_assign", "community": 7, @@ -2817,7 +2817,7 @@ "label": "opportunity_change_stage()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2456", + "source_location": "L2460", "_origin": "ast", "id": "app_api_crm_opportunity_change_stage", "community": 7, @@ -2827,7 +2827,7 @@ "label": "opportunity_mark_won()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2486", + "source_location": "L2490", "_origin": "ast", "id": "app_api_crm_opportunity_mark_won", "community": 7, @@ -2837,7 +2837,7 @@ "label": "opportunity_mark_lost()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2514", + "source_location": "L2518", "_origin": "ast", "id": "app_api_crm_opportunity_mark_lost", "community": 7, @@ -2847,7 +2847,7 @@ "label": "opportunity_batch_update_stage()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2543", + "source_location": "L2547", "_origin": "ast", "id": "app_api_crm_opportunity_batch_update_stage", "community": 7, @@ -2857,7 +2857,7 @@ "label": "opportunity_batch_update_expect_date()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2572", + "source_location": "L2576", "_origin": "ast", "id": "app_api_crm_opportunity_batch_update_expect_date", "community": 7, @@ -2867,7 +2867,7 @@ "label": "opportunity_stage_log_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2600", + "source_location": "L2604", "_origin": "ast", "id": "app_api_crm_opportunity_stage_log_list", "community": 7, @@ -2877,7 +2877,7 @@ "label": "opportunity_kanban()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2618", + "source_location": "L2622", "_origin": "ast", "id": "app_api_crm_opportunity_kanban", "community": 7, @@ -2887,7 +2887,7 @@ "label": "opportunity_statistics_overview()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2649", + "source_location": "L2653", "_origin": "ast", "id": "app_api_crm_opportunity_statistics_overview", "community": 7, @@ -2897,7 +2897,7 @@ "label": "opportunity_statistics_stage()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2675", + "source_location": "L2679", "_origin": "ast", "id": "app_api_crm_opportunity_statistics_stage", "community": 7, @@ -2907,7 +2907,7 @@ "label": "opportunity_statistics_win_rate()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2691", + "source_location": "L2695", "_origin": "ast", "id": "app_api_crm_opportunity_statistics_win_rate", "community": 7, @@ -2917,7 +2917,7 @@ "label": "opportunity_statistics_owner()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2717", + "source_location": "L2721", "_origin": "ast", "id": "app_api_crm_opportunity_statistics_owner", "community": 7, @@ -2927,7 +2927,7 @@ "label": "opportunity_statistics_funnel()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2742", + "source_location": "L2746", "_origin": "ast", "id": "app_api_crm_opportunity_statistics_funnel", "community": 7, @@ -2937,7 +2937,7 @@ "label": "opportunity_follow_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2768", + "source_location": "L2772", "_origin": "ast", "id": "app_api_crm_opportunity_follow_list", "community": 7, @@ -2947,7 +2947,7 @@ "label": "opportunity_follow_add()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2800", + "source_location": "L2804", "_origin": "ast", "id": "app_api_crm_opportunity_follow_add", "community": 7, @@ -2957,7 +2957,7 @@ "label": "opportunity_follow_update()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2825", + "source_location": "L2829", "_origin": "ast", "id": "app_api_crm_opportunity_follow_update", "community": 7, @@ -2967,7 +2967,7 @@ "label": "opportunity_follow_delete()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2848", + "source_location": "L2852", "_origin": "ast", "id": "app_api_crm_opportunity_follow_delete", "community": 7, @@ -2977,7 +2977,7 @@ "label": "opportunity_follow_detail()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2872", + "source_location": "L2876", "_origin": "ast", "id": "app_api_crm_opportunity_follow_detail", "community": 7, @@ -2987,7 +2987,7 @@ "label": "opportunity_product_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2892", + "source_location": "L2896", "_origin": "ast", "id": "app_api_crm_opportunity_product_list", "community": 7, @@ -2997,7 +2997,7 @@ "label": "opportunity_product_list_by_opportunity()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2925", + "source_location": "L2929", "_origin": "ast", "id": "app_api_crm_opportunity_product_list_by_opportunity", "community": 7, @@ -3007,7 +3007,7 @@ "label": "opportunity_product_add()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2946", + "source_location": "L2950", "_origin": "ast", "id": "app_api_crm_opportunity_product_add", "community": 7, @@ -3017,7 +3017,7 @@ "label": "opportunity_product_batch_add()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L2971", + "source_location": "L2975", "_origin": "ast", "id": "app_api_crm_opportunity_product_batch_add", "community": 7, @@ -3027,7 +3027,7 @@ "label": "opportunity_product_update()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3001", + "source_location": "L3005", "_origin": "ast", "id": "app_api_crm_opportunity_product_update", "community": 7, @@ -3037,7 +3037,7 @@ "label": "opportunity_product_delete()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3024", + "source_location": "L3028", "_origin": "ast", "id": "app_api_crm_opportunity_product_delete", "community": 7, @@ -3047,7 +3047,7 @@ "label": "opportunity_product_detail()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3045", + "source_location": "L3049", "_origin": "ast", "id": "app_api_crm_opportunity_product_detail", "community": 7, @@ -3057,7 +3057,7 @@ "label": "opportunity_export()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3065", + "source_location": "L3069", "_origin": "ast", "id": "app_api_crm_opportunity_export", "community": 7, @@ -3067,17 +3067,17 @@ "label": "supplier_info_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3107", + "source_location": "L3111", "_origin": "ast", "id": "app_api_crm_supplier_info_list", - "community": 7, + "community": 60, "norm_label": "supplier_info_list()" }, { "label": "supplier_info_list_all()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3142", + "source_location": "L3146", "_origin": "ast", "id": "app_api_crm_supplier_info_list_all", "community": 60, @@ -3087,17 +3087,17 @@ "label": "supplier_info_detail()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3167", + "source_location": "L3171", "_origin": "ast", "id": "app_api_crm_supplier_info_detail", - "community": 60, + "community": 99, "norm_label": "supplier_info_detail()" }, { "label": "supplier_info_add()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3190", + "source_location": "L3194", "_origin": "ast", "id": "app_api_crm_supplier_info_add", "community": 60, @@ -3107,7 +3107,7 @@ "label": "supplier_info_update()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3216", + "source_location": "L3220", "_origin": "ast", "id": "app_api_crm_supplier_info_update", "community": 60, @@ -3117,7 +3117,7 @@ "label": "supplier_info_delete()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3244", + "source_location": "L3248", "_origin": "ast", "id": "app_api_crm_supplier_info_delete", "community": 60, @@ -3127,87 +3127,87 @@ "label": "supplier_info_export()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3273", + "source_location": "L3277", "_origin": "ast", "id": "app_api_crm_supplier_info_export", - "community": 7, + "community": 60, "norm_label": "supplier_info_export()" }, { "label": "_invoice_info_by_customer_impl()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3310", + "source_location": "L3314", "_origin": "ast", "id": "app_api_crm_invoice_info_by_customer_impl", - "community": 81, + "community": 97, "norm_label": "_invoice_info_by_customer_impl()" }, { "label": "invoice_info_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3324", + "source_location": "L3328", "_origin": "ast", "id": "app_api_crm_invoice_info_list", - "community": 81, + "community": 97, "norm_label": "invoice_info_list()" }, { "label": "invoice_info_by_customer()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3339", + "source_location": "L3343", "_origin": "ast", "id": "app_api_crm_invoice_info_by_customer", - "community": 81, + "community": 97, "norm_label": "invoice_info_by_customer()" }, { "label": "invoice_info_add()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3354", + "source_location": "L3358", "_origin": "ast", "id": "app_api_crm_invoice_info_add", - "community": 81, + "community": 7, "norm_label": "invoice_info_add()" }, { "label": "invoice_info_update()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3379", + "source_location": "L3383", "_origin": "ast", "id": "app_api_crm_invoice_info_update", - "community": 81, + "community": 7, "norm_label": "invoice_info_update()" }, { "label": "invoice_info_delete()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3407", + "source_location": "L3411", "_origin": "ast", "id": "app_api_crm_invoice_info_delete", - "community": 81, + "community": 97, "norm_label": "invoice_info_delete()" }, { "label": "invoice_info_set_default()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3430", + "source_location": "L3434", "_origin": "ast", "id": "app_api_crm_invoice_info_set_default", - "community": 81, + "community": 97, "norm_label": "invoice_info_set_default()" }, { "label": "clue_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3458", + "source_location": "L3462", "_origin": "ast", "id": "app_api_crm_clue_list", "community": 7, @@ -3217,17 +3217,17 @@ "label": "clue_detail()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3505", + "source_location": "L3509", "_origin": "ast", "id": "app_api_crm_clue_detail", - "community": 7, + "community": 33, "norm_label": "clue_detail()" }, { "label": "clue_create()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3532", + "source_location": "L3536", "_origin": "ast", "id": "app_api_crm_clue_create", "community": 7, @@ -3237,7 +3237,7 @@ "label": "clue_update()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3555", + "source_location": "L3559", "_origin": "ast", "id": "app_api_crm_clue_update", "community": 7, @@ -3247,7 +3247,7 @@ "label": "clue_delete()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3577", + "source_location": "L3581", "_origin": "ast", "id": "app_api_crm_clue_delete", "community": 7, @@ -3257,7 +3257,7 @@ "label": "clue_assign()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3608", + "source_location": "L3612", "_origin": "ast", "id": "app_api_crm_clue_assign", "community": 7, @@ -3267,7 +3267,7 @@ "label": "clue_convert()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3636", + "source_location": "L3640", "_origin": "ast", "id": "app_api_crm_clue_convert", "community": 7, @@ -3277,7 +3277,7 @@ "label": "clue_check_convert()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3664", + "source_location": "L3668", "_origin": "ast", "id": "app_api_crm_clue_check_convert", "community": 7, @@ -3287,7 +3287,7 @@ "label": "clue_update_status()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3684", + "source_location": "L3688", "_origin": "ast", "id": "app_api_crm_clue_update_status", "community": 7, @@ -3297,7 +3297,7 @@ "label": "clue_invalid()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3705", + "source_location": "L3709", "_origin": "ast", "id": "app_api_crm_clue_invalid", "community": 7, @@ -3307,7 +3307,7 @@ "label": "clue_update_level()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3736", + "source_location": "L3740", "_origin": "ast", "id": "app_api_crm_clue_update_level", "community": 7, @@ -3317,7 +3317,7 @@ "label": "clue_mine()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3757", + "source_location": "L3761", "_origin": "ast", "id": "app_api_crm_clue_mine", "community": 7, @@ -3327,7 +3327,7 @@ "label": "clue_to_follow()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3803", + "source_location": "L3807", "_origin": "ast", "id": "app_api_crm_clue_to_follow", "community": 7, @@ -3337,7 +3337,7 @@ "label": "clue_today_new()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3849", + "source_location": "L3853", "_origin": "ast", "id": "app_api_crm_clue_today_new", "community": 7, @@ -3347,7 +3347,7 @@ "label": "clue_park_area_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3895", + "source_location": "L3899", "_origin": "ast", "id": "app_api_crm_clue_park_area_list", "community": 7, @@ -3357,7 +3357,7 @@ "label": "clue_follow_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3910", + "source_location": "L3914", "_origin": "ast", "id": "app_api_crm_clue_follow_list", "community": 7, @@ -3367,7 +3367,7 @@ "label": "clue_follow_create()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3942", + "source_location": "L3946", "_origin": "ast", "id": "app_api_crm_clue_follow_create", "community": 7, @@ -3377,7 +3377,7 @@ "label": "clue_follow_delete()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L3974", + "source_location": "L3978", "_origin": "ast", "id": "app_api_crm_clue_follow_delete", "community": 7, @@ -3387,7 +3387,7 @@ "label": "clue_follow_statistics()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4005", + "source_location": "L4009", "_origin": "ast", "id": "app_api_crm_clue_follow_statistics", "community": 7, @@ -3397,7 +3397,7 @@ "label": "clue_export()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4074", + "source_location": "L4078", "_origin": "ast", "id": "app_api_crm_clue_export", "community": 7, @@ -3407,7 +3407,7 @@ "label": "clue_import_template()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4131", + "source_location": "L4135", "_origin": "ast", "id": "app_api_crm_clue_import_template", "community": 7, @@ -3417,7 +3417,7 @@ "label": "clue_import()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4166", + "source_location": "L4170", "_origin": "ast", "id": "app_api_crm_clue_import", "community": 7, @@ -3427,7 +3427,7 @@ "label": "clue_check_duplicate()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4218", + "source_location": "L4222", "_origin": "ast", "id": "app_api_crm_clue_check_duplicate", "community": 7, @@ -3437,17 +3437,17 @@ "label": "clue_follow_detail()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4242", + "source_location": "L4246", "_origin": "ast", "id": "app_api_crm_clue_follow_detail", - "community": 7, + "community": 39, "norm_label": "clue_follow_detail()" }, { "label": "clue_follow_update()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4266", + "source_location": "L4270", "_origin": "ast", "id": "app_api_crm_clue_follow_update", "community": 7, @@ -3457,7 +3457,7 @@ "label": "clue_statistics_overview()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4287", + "source_location": "L4291", "_origin": "ast", "id": "app_api_crm_clue_statistics_overview", "community": 7, @@ -3467,7 +3467,7 @@ "label": "clue_statistics_source()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4315", + "source_location": "L4319", "_origin": "ast", "id": "app_api_crm_clue_statistics_source", "community": 7, @@ -3477,7 +3477,7 @@ "label": "clue_statistics_level()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4340", + "source_location": "L4344", "_origin": "ast", "id": "app_api_crm_clue_statistics_level", "community": 49, @@ -3487,7 +3487,7 @@ "label": "clue_statistics_trend()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4357", + "source_location": "L4361", "_origin": "ast", "id": "app_api_crm_clue_statistics_trend", "community": 7, @@ -3497,7 +3497,7 @@ "label": "clue_statistics_owner()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4384", + "source_location": "L4388", "_origin": "ast", "id": "app_api_crm_clue_statistics_owner", "community": 7, @@ -3507,47 +3507,47 @@ "label": "price_letter_list()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4429", + "source_location": "L4433", "_origin": "ast", "id": "app_api_crm_price_letter_list", - "community": 7, + "community": 104, "norm_label": "price_letter_list()" }, { "label": "price_letter_detail()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4470", + "source_location": "L4474", "_origin": "ast", "id": "app_api_crm_price_letter_detail", - "community": 7, + "community": 104, "norm_label": "price_letter_detail()" }, { "label": "price_letter_add()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4492", + "source_location": "L4496", "_origin": "ast", "id": "app_api_crm_price_letter_add", - "community": 7, + "community": 104, "norm_label": "price_letter_add()" }, { "label": "price_letter_update()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4519", + "source_location": "L4523", "_origin": "ast", "id": "app_api_crm_price_letter_update", - "community": 7, + "community": 104, "norm_label": "price_letter_update()" }, { "label": "price_letter_void()", "file_type": "code", "source_file": "app/api/crm.py", - "source_location": "L4550", + "source_location": "L4554", "_origin": "ast", "id": "app_api_crm_price_letter_void", "community": 7, @@ -3570,36 +3570,36 @@ "source_location": "L423", "_origin": "ast", "id": "app_api_crm_rationale_423", - "community": 7, + "community": 113, "norm_label": "\u5ba2\u6237\u4e0b\u62c9\u9009\u9879(\u79df\u6237\u5185\u53ea\u8bfb,\u4e0d\u505a owner \u6570\u636e\u6743\u9650)" }, { "label": "\u5220\u9664\u4ea7\u54c1\uff08\u652f\u6301\u5355\u6761 body.id \u548c\u6279\u91cf body.ids\uff09", "file_type": "rationale", "source_file": "app/api/crm.py", - "source_location": "L710", + "source_location": "L712", "_origin": "ast", - "id": "app_api_crm_rationale_710", - "community": 45, + "id": "app_api_crm_rationale_712", + "community": 7, "norm_label": "\u5220\u9664\u4ea7\u54c1(\u652f\u6301\u5355\u6761 body.id \u548c\u6279\u91cf body.ids)" }, { "label": "\u5206\u9875\u67e5\u8be2\u4f9b\u65b9\u5217\u8868 \u2014 Java: CrmSupplierInfoController.list", "file_type": "rationale", "source_file": "app/api/crm.py", - "source_location": "L3112", + "source_location": "L3116", "_origin": "ast", - "id": "app_api_crm_rationale_3112", - "community": 7, + "id": "app_api_crm_rationale_3116", + "community": 60, "norm_label": "\u5206\u9875\u67e5\u8be2\u4f9b\u65b9\u5217\u8868 \u2014 java: crmsupplierinfocontroller.list" }, { "label": "\u4f9b\u65b9\u5168\u91cf\u5217\u8868\uff08\u4e0b\u62c9\uff09\u2014 Java: CrmSupplierInfoController.listAll", "file_type": "rationale", "source_file": "app/api/crm.py", - "source_location": "L3147", + "source_location": "L3151", "_origin": "ast", - "id": "app_api_crm_rationale_3147", + "id": "app_api_crm_rationale_3151", "community": 60, "norm_label": "\u4f9b\u65b9\u5168\u91cf\u5217\u8868(\u4e0b\u62c9)\u2014 java: crmsupplierinfocontroller.listall" }, @@ -3607,19 +3607,19 @@ "label": "\u4f9b\u65b9\u8be6\u60c5 \u2014 Java: CrmSupplierInfoController.getInfo", "file_type": "rationale", "source_file": "app/api/crm.py", - "source_location": "L3172", + "source_location": "L3176", "_origin": "ast", - "id": "app_api_crm_rationale_3172", - "community": 60, + "id": "app_api_crm_rationale_3176", + "community": 99, "norm_label": "\u4f9b\u65b9\u8be6\u60c5 \u2014 java: crmsupplierinfocontroller.getinfo" }, { "label": "\u65b0\u589e\u4f9b\u65b9 \u2014 Java: CrmSupplierInfoController.add", "file_type": "rationale", "source_file": "app/api/crm.py", - "source_location": "L3195", + "source_location": "L3199", "_origin": "ast", - "id": "app_api_crm_rationale_3195", + "id": "app_api_crm_rationale_3199", "community": 60, "norm_label": "\u65b0\u589e\u4f9b\u65b9 \u2014 java: crmsupplierinfocontroller.add" }, @@ -3627,9 +3627,9 @@ "label": "\u4fee\u6539\u4f9b\u65b9 \u2014 Java: CrmSupplierInfoController.edit", "file_type": "rationale", "source_file": "app/api/crm.py", - "source_location": "L3221", + "source_location": "L3225", "_origin": "ast", - "id": "app_api_crm_rationale_3221", + "id": "app_api_crm_rationale_3225", "community": 60, "norm_label": "\u4fee\u6539\u4f9b\u65b9 \u2014 java: crmsupplierinfocontroller.edit" }, @@ -3637,9 +3637,9 @@ "label": "\u5220\u9664\u4f9b\u65b9 \u2014 Java: CrmSupplierInfoController.remove", "file_type": "rationale", "source_file": "app/api/crm.py", - "source_location": "L3249", + "source_location": "L3253", "_origin": "ast", - "id": "app_api_crm_rationale_3249", + "id": "app_api_crm_rationale_3253", "community": 60, "norm_label": "\u5220\u9664\u4f9b\u65b9 \u2014 java: crmsupplierinfocontroller.remove" }, @@ -3647,20 +3647,20 @@ "label": "\u5bfc\u51fa\u4f9b\u65b9\u5217\u8868 \u2014 Java: CrmSupplierInfoController.export", "file_type": "rationale", "source_file": "app/api/crm.py", - "source_location": "L3278", + "source_location": "L3282", "_origin": "ast", - "id": "app_api_crm_rationale_3278", - "community": 7, + "id": "app_api_crm_rationale_3282", + "community": 60, "norm_label": "\u5bfc\u51fa\u4f9b\u65b9\u5217\u8868 \u2014 java: crmsupplierinfocontroller.export" }, { "label": "\u6309\u5ba2\u6237ID\u67e5\u8be2\u5f00\u7968\u4fe1\u606f\uff08\u4e0e by-customer \u7b49\u4ef7\uff09", "file_type": "rationale", "source_file": "app/api/crm.py", - "source_location": "L3329", + "source_location": "L3333", "_origin": "ast", - "id": "app_api_crm_rationale_3329", - "community": 81, + "id": "app_api_crm_rationale_3333", + "community": 97, "norm_label": "\u6309\u5ba2\u6237id\u67e5\u8be2\u5f00\u7968\u4fe1\u606f(\u4e0e by-customer \u7b49\u4ef7)" }, { @@ -3680,7 +3680,7 @@ "source_location": "L78", "_origin": "ast", "id": "app_api_crm_contract_routes_register_contract_routes", - "community": 0, + "community": 29, "norm_label": "register_contract_routes()" }, { @@ -3700,7 +3700,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_crm_contract_sub_routes", - "community": 29, + "community": 83, "norm_label": "crm_contract_sub_routes.py" }, { @@ -3710,7 +3710,7 @@ "source_location": "L68", "_origin": "ast", "id": "app_api_crm_contract_sub_routes_register_contract_sub_routes", - "community": 29, + "community": 83, "norm_label": "register_contract_sub_routes()" }, { @@ -3720,7 +3720,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_crm_contract_sub_routes_rationale_1", - "community": 29, + "community": 83, "norm_label": "crm \u5408\u540c\u5b50\u6a21\u5757\u8def\u7531 \u2014 \u53d8\u66f4/\u6a21\u677f/\u5ba1\u6279\u72ec\u7acb\u9875" }, { @@ -3740,7 +3740,7 @@ "source_location": "L85", "_origin": "ast", "id": "app_api_crm_quote_routes_register_quote_routes", - "community": 20, + "community": 8, "norm_label": "register_quote_routes()" }, { @@ -3760,7 +3760,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_db_init", - "community": 10, + "community": 120, "norm_label": "__init__.py" }, { @@ -3770,7 +3770,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_api_db_init_db_health", - "community": 10, + "community": 120, "norm_label": "db_health()" }, { @@ -3780,7 +3780,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_db_init_rationale_1", - "community": 10, + "community": 120, "norm_label": "\u5730\u78c5 api \u8def\u7531\u805a\u5408 \u2014 rest \u98ce\u683c,\u534f\u8bae\u5bf9\u9f50\u539f simple-dibang-xiaoshou\u3002" }, { @@ -3910,7 +3910,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_db_inventory", - "community": 40, + "community": 10, "norm_label": "inventory.py" }, { @@ -3920,7 +3920,7 @@ "source_location": "L48", "_origin": "ast", "id": "app_api_db_inventory_base_query", - "community": 40, + "community": 10, "norm_label": "_base_query()" }, { @@ -3930,7 +3930,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_db_inventory_py_session", - "community": 40, + "community": 10, "norm_label": "session" }, { @@ -3940,7 +3940,7 @@ "source_location": "L55", "_origin": "ast", "id": "app_api_db_inventory_generate_batch_no", - "community": 40, + "community": 10, "norm_label": "_generate_batch_no()" }, { @@ -3950,7 +3950,7 @@ "source_location": "L75", "_origin": "ast", "id": "app_api_db_inventory_resolve_tenant_no", - "community": 40, + "community": 10, "norm_label": "_resolve_tenant_no()" }, { @@ -3960,7 +3960,7 @@ "source_location": "L93", "_origin": "ast", "id": "app_api_db_inventory_get_inventory_by_id", - "community": 40, + "community": 10, "norm_label": "_get_inventory_by_id()" }, { @@ -3970,7 +3970,7 @@ "source_location": "L107", "_origin": "ast", "id": "app_api_db_inventory_get_inventory", - "community": 40, + "community": 10, "norm_label": "_get_inventory()" }, { @@ -3980,7 +3980,7 @@ "source_location": "L124", "_origin": "ast", "id": "app_api_db_inventory_apply_inventory_product_update", - "community": 40, + "community": 10, "norm_label": "_apply_inventory_product_update()" }, { @@ -3990,7 +3990,7 @@ "source_location": "L140", "_origin": "ast", "id": "app_api_db_inventory_apply_inventory_update", - "community": 40, + "community": 10, "norm_label": "_apply_inventory_update()" }, { @@ -4000,7 +4000,7 @@ "source_location": "L158", "_origin": "ast", "id": "app_api_db_inventory_maybe_promote_third_party_status", - "community": 40, + "community": 10, "norm_label": "_maybe_promote_third_party_status()" }, { @@ -4010,7 +4010,7 @@ "source_location": "L169", "_origin": "ast", "id": "app_api_db_inventory_list_inventory", - "community": 40, + "community": 10, "norm_label": "list_inventory()" }, { @@ -4020,7 +4020,7 @@ "source_location": "L276", "_origin": "ast", "id": "app_api_db_inventory_create_inventory", - "community": 40, + "community": 10, "norm_label": "create_inventory()" }, { @@ -4030,7 +4030,7 @@ "source_location": "L324", "_origin": "ast", "id": "app_api_db_inventory_create_link_for_plan", - "community": 40, + "community": 10, "norm_label": "create_link_for_plan()" }, { @@ -4040,7 +4040,7 @@ "source_location": "L375", "_origin": "ast", "id": "app_api_db_inventory_get_inventory_site_url", - "community": 40, + "community": 10, "norm_label": "get_inventory_site_url()" }, { @@ -4050,7 +4050,7 @@ "source_location": "L408", "_origin": "ast", "id": "app_api_db_inventory_update_inventory", - "community": 40, + "community": 10, "norm_label": "update_inventory()" }, { @@ -4060,7 +4060,7 @@ "source_location": "L426", "_origin": "ast", "id": "app_api_db_inventory_delete_inventory", - "community": 78, + "community": 10, "norm_label": "delete_inventory()" }, { @@ -4070,7 +4070,7 @@ "source_location": "L446", "_origin": "ast", "id": "app_api_db_inventory_inventoryrelateddata", - "community": 40, + "community": 10, "norm_label": "inventoryrelateddata" }, { @@ -4080,7 +4080,7 @@ "source_location": "L452", "_origin": "ast", "id": "app_api_db_inventory_get_inventory_related", - "community": 40, + "community": 10, "norm_label": "get_inventory_related()" }, { @@ -4090,7 +4090,7 @@ "source_location": "L392", "_origin": "ast", "id": "app_api_db_inventory_rationale_392", - "community": 40, + "community": 10, "norm_label": "\u5355\u6761\u67e5\u8be2(\u4e09\u65b9 h5 \u586b\u5199\u9875\u65e0\u9700\u95e8\u6237\u767b\u5f55)\u3002" }, { @@ -4430,7 +4430,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_db_public_vehicles", - "community": 10, + "community": 120, "norm_label": "public_vehicles.py" }, { @@ -4440,7 +4440,7 @@ "source_location": "L16", "_origin": "ast", "id": "app_api_db_public_vehicles_resolve_tenant_no", - "community": 10, + "community": 120, "norm_label": "_resolve_tenant_no()" }, { @@ -4450,7 +4450,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_db_public_vehicles_py_session", - "community": 10, + "community": 120, "norm_label": "session" }, { @@ -4460,7 +4460,7 @@ "source_location": "L43", "_origin": "ast", "id": "app_api_db_public_vehicles_list_public_vehicle_plates", - "community": 10, + "community": 120, "norm_label": "list_public_vehicle_plates()" }, { @@ -4470,7 +4470,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_db_public_vehicles_rationale_1", - "community": 10, + "community": 120, "norm_label": "\u5730\u78c5\u516c\u5171\u53ea\u8bfb:\u514d\u767b\u8f66\u724c options(\u73b0\u573a\u586b\u5199\u9875)" }, { @@ -4480,7 +4480,7 @@ "source_location": "L49", "_origin": "ast", "id": "app_api_db_public_vehicles_rationale_49", - "community": 10, + "community": 120, "norm_label": "\u514d\u767b:\u6309\u51fa\u5165\u5e93/\u8ba1\u5212\u89e3\u6790 tenant_no,\u8fd4\u56de pl_vehicle \u8f66\u724c(self + carrier)\u3002" }, { @@ -4620,7 +4620,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_duty", - "community": 57, + "community": 121, "norm_label": "duty.py" }, { @@ -4630,7 +4630,7 @@ "source_location": "L21", "_origin": "ast", "id": "app_api_duty_enrich_assign_names", - "community": 57, + "community": 121, "norm_label": "_enrich_assign_names()" }, { @@ -4640,7 +4640,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_duty_py_session", - "community": 57, + "community": 121, "norm_label": "session" }, { @@ -4650,7 +4650,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_api_duty_month_summary", - "community": 57, + "community": 121, "norm_label": "month_summary()" }, { @@ -4660,7 +4660,7 @@ "source_location": "L51", "_origin": "ast", "id": "app_api_duty_day_detail", - "community": 57, + "community": 121, "norm_label": "day_detail()" }, { @@ -4670,7 +4670,7 @@ "source_location": "L65", "_origin": "ast", "id": "app_api_duty_duty_user_options", - "community": 57, + "community": 121, "norm_label": "duty_user_options()" }, { @@ -4680,7 +4680,7 @@ "source_location": "L77", "_origin": "ast", "id": "app_api_duty_ensure_duty_dict", - "community": 57, + "community": 121, "norm_label": "ensure_duty_dict()" }, { @@ -4690,7 +4690,7 @@ "source_location": "L100", "_origin": "ast", "id": "app_api_duty_save_day", - "community": 57, + "community": 121, "norm_label": "save_day()" }, { @@ -4700,7 +4700,7 @@ "source_location": "L115", "_origin": "ast", "id": "app_api_duty_set_link", - "community": 57, + "community": 121, "norm_label": "set_link()" }, { @@ -4710,7 +4710,7 @@ "source_location": "L131", "_origin": "ast", "id": "app_api_duty_delete_assignment", - "community": 57, + "community": 121, "norm_label": "delete_assignment()" }, { @@ -4720,7 +4720,7 @@ "source_location": "L22", "_origin": "ast", "id": "app_api_duty_rationale_22", - "community": 57, + "community": 121, "norm_label": "\u6307\u5b9a\u7528\u6237\u65f6\u8865\u5168 personname(\u7528 nick_name)\u3002" }, { @@ -4730,7 +4730,7 @@ "source_location": "L69", "_origin": "ast", "id": "app_api_duty_rationale_69", - "community": 57, + "community": 121, "norm_label": "\u503c\u73ed\u53ef\u5b89\u6392\u4eba\u5458:\u4ec5\u300c\u503c\u73ed\u4eba\u5458\u300d\u89d2\u8272\u4e0b\u7684\u542f\u7528\u7528\u6237\u3002" }, { @@ -4740,7 +4740,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_leave", - "community": 121, + "community": 57, "norm_label": "leave.py" }, { @@ -4750,7 +4750,7 @@ "source_location": "L24", "_origin": "ast", "id": "app_api_leave_leave_local_callback", - "community": 121, + "community": 57, "norm_label": "_leave_local_callback()" }, { @@ -4760,7 +4760,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_leave_py_session", - "community": 121, + "community": 57, "norm_label": "session" }, { @@ -4770,7 +4770,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_api_leave_list_leaves", - "community": 121, + "community": 57, "norm_label": "list_leaves()" }, { @@ -4780,7 +4780,7 @@ "source_location": "L62", "_origin": "ast", "id": "app_api_leave_create_leave", - "community": 121, + "community": 57, "norm_label": "create_leave()" }, { @@ -4790,7 +4790,7 @@ "source_location": "L87", "_origin": "ast", "id": "app_api_leave_submit_leave", - "community": 121, + "community": 57, "norm_label": "submit_leave()" }, { @@ -4800,7 +4800,7 @@ "source_location": "L142", "_origin": "ast", "id": "app_api_leave_leave_workflow_callback", - "community": 121, + "community": 57, "norm_label": "leave_workflow_callback()" }, { @@ -4810,7 +4810,7 @@ "source_location": "L161", "_origin": "ast", "id": "app_api_leave_get_leave", - "community": 121, + "community": 57, "norm_label": "get_leave()" }, { @@ -4820,7 +4820,7 @@ "source_location": "L174", "_origin": "ast", "id": "app_api_leave_delete_leave", - "community": 121, + "community": 57, "norm_label": "delete_leave()" }, { @@ -4830,7 +4830,7 @@ "source_location": "L191", "_origin": "ast", "id": "app_api_leave_update_leave", - "community": 121, + "community": 57, "norm_label": "update_leave()" }, { @@ -4840,7 +4840,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_menu", - "community": 121, + "community": 81, "norm_label": "menu.py" }, { @@ -4850,7 +4850,7 @@ "source_location": "L695", "_origin": "ast", "id": "app_api_menu_get_menu_list", - "community": 121, + "community": 81, "norm_label": "get_menu_list()" }, { @@ -4860,7 +4860,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_menu_rationale_1", - "community": 121, + "community": 81, "norm_label": "\u8fd0\u8425\u7aef\u83dc\u5355\u63a5\u53e3(\u4e0e web-admin \u524d\u7aef\u9759\u6001\u8def\u7531 sqxp.ts \u5bf9\u9f50,14 \u4e2a\u4e00\u7ea7\u83dc\u5355)" }, { @@ -4870,7 +4870,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_monitor", - "community": 121, + "community": 41, "norm_label": "monitor.py" }, { @@ -4880,7 +4880,7 @@ "source_location": "L16", "_origin": "ast", "id": "app_api_monitor_user_info", - "community": 121, + "community": 41, "norm_label": "_user_info()" }, { @@ -4890,7 +4890,7 @@ "source_location": "L28", "_origin": "ast", "id": "app_api_monitor_operlog_list", - "community": 121, + "community": 41, "norm_label": "operlog_list()" }, { @@ -4900,7 +4900,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_monitor_py_session", - "community": 121, + "community": 41, "norm_label": "session" }, { @@ -4910,7 +4910,7 @@ "source_location": "L67", "_origin": "ast", "id": "app_api_monitor_operlog_detail", - "community": 121, + "community": 41, "norm_label": "operlog_detail()" }, { @@ -4920,7 +4920,7 @@ "source_location": "L33", "_origin": "ast", "id": "app_api_monitor_rationale_33", - "community": 121, + "community": 41, "norm_label": "\u64cd\u4f5c\u65e5\u5fd7\u5206\u9875\u5217\u8868(\u57fa\u4e8e api \u8bf7\u6c42\u65e5\u5fd7\u9002\u914d ruoyi operlog \u7ed3\u6784)" }, { @@ -4930,7 +4930,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_init", - "community": 10, + "community": 120, "norm_label": "__init__.py" }, { @@ -4940,7 +4940,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_base_data", - "community": 115, + "community": 62, "norm_label": "base_data.py" }, { @@ -4950,7 +4950,7 @@ "source_location": "L74", "_origin": "ast", "id": "app_api_pl_base_data_list_carriers", - "community": 115, + "community": 62, "norm_label": "list_carriers()" }, { @@ -4960,7 +4960,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_base_data_py_session", - "community": 115, + "community": 62, "norm_label": "session" }, { @@ -5000,7 +5000,7 @@ "source_location": "L188", "_origin": "ast", "id": "app_api_pl_base_data_delete_carrier", - "community": 115, + "community": 78, "norm_label": "delete_carrier()" }, { @@ -5020,7 +5020,7 @@ "source_location": "L211", "_origin": "ast", "id": "app_api_pl_base_data_reject_carrier", - "community": 115, + "community": 62, "norm_label": "reject_carrier()" }, { @@ -5030,7 +5030,7 @@ "source_location": "L240", "_origin": "ast", "id": "app_api_pl_base_data_vehicle_to_read", - "community": 103, + "community": 102, "norm_label": "_vehicle_to_read()" }, { @@ -5040,7 +5040,7 @@ "source_location": "L257", "_origin": "ast", "id": "app_api_pl_base_data_vehicle_to_detail", - "community": 82, + "community": 74, "norm_label": "_vehicle_to_detail()" }, { @@ -5050,7 +5050,7 @@ "source_location": "L275", "_origin": "ast", "id": "app_api_pl_base_data_list_vehicles", - "community": 103, + "community": 102, "norm_label": "list_vehicles()" }, { @@ -5060,7 +5060,7 @@ "source_location": "L380", "_origin": "ast", "id": "app_api_pl_base_data_create_vehicle", - "community": 82, + "community": 74, "norm_label": "create_vehicle()" }, { @@ -5070,7 +5070,7 @@ "source_location": "L457", "_origin": "ast", "id": "app_api_pl_base_data_get_vehicle", - "community": 82, + "community": 75, "norm_label": "get_vehicle()" }, { @@ -5080,7 +5080,7 @@ "source_location": "L468", "_origin": "ast", "id": "app_api_pl_base_data_update_vehicle", - "community": 82, + "community": 74, "norm_label": "update_vehicle()" }, { @@ -5090,7 +5090,7 @@ "source_location": "L542", "_origin": "ast", "id": "app_api_pl_base_data_delete_vehicle", - "community": 75, + "community": 62, "norm_label": "delete_vehicle()" }, { @@ -5100,7 +5100,7 @@ "source_location": "L575", "_origin": "ast", "id": "app_api_pl_base_data_personnel_to_read", - "community": 115, + "community": 62, "norm_label": "_personnel_to_read()" }, { @@ -5110,7 +5110,7 @@ "source_location": "L590", "_origin": "ast", "id": "app_api_pl_base_data_personnel_to_detail", - "community": 115, + "community": 62, "norm_label": "_personnel_to_detail()" }, { @@ -5120,7 +5120,7 @@ "source_location": "L604", "_origin": "ast", "id": "app_api_pl_base_data_list_personnel", - "community": 115, + "community": 62, "norm_label": "list_personnel()" }, { @@ -5130,7 +5130,7 @@ "source_location": "L666", "_origin": "ast", "id": "app_api_pl_base_data_create_personnel", - "community": 115, + "community": 62, "norm_label": "create_personnel()" }, { @@ -5140,7 +5140,7 @@ "source_location": "L718", "_origin": "ast", "id": "app_api_pl_base_data_get_personnel", - "community": 115, + "community": 62, "norm_label": "get_personnel()" }, { @@ -5150,7 +5150,7 @@ "source_location": "L729", "_origin": "ast", "id": "app_api_pl_base_data_update_personnel", - "community": 115, + "community": 62, "norm_label": "update_personnel()" }, { @@ -5160,7 +5160,7 @@ "source_location": "L785", "_origin": "ast", "id": "app_api_pl_base_data_delete_personnel", - "community": 75, + "community": 62, "norm_label": "delete_personnel()" }, { @@ -5170,7 +5170,7 @@ "source_location": "L818", "_origin": "ast", "id": "app_api_pl_base_data_personnel_to_driver_read", - "community": 115, + "community": 62, "norm_label": "_personnel_to_driver_read()" }, { @@ -5180,7 +5180,7 @@ "source_location": "L837", "_origin": "ast", "id": "app_api_pl_base_data_list_drivers", - "community": 115, + "community": 62, "norm_label": "list_drivers()" }, { @@ -5190,7 +5190,7 @@ "source_location": "L873", "_origin": "ast", "id": "app_api_pl_base_data_create_driver", - "community": 115, + "community": 62, "norm_label": "create_driver()" }, { @@ -5200,7 +5200,7 @@ "source_location": "L898", "_origin": "ast", "id": "app_api_pl_base_data_get_driver", - "community": 115, + "community": 62, "norm_label": "get_driver()" }, { @@ -5210,7 +5210,7 @@ "source_location": "L909", "_origin": "ast", "id": "app_api_pl_base_data_update_driver", - "community": 115, + "community": 62, "norm_label": "update_driver()" }, { @@ -5220,7 +5220,7 @@ "source_location": "L934", "_origin": "ast", "id": "app_api_pl_base_data_delete_driver", - "community": 75, + "community": 62, "norm_label": "delete_driver()" }, { @@ -5230,7 +5230,7 @@ "source_location": "L953", "_origin": "ast", "id": "app_api_pl_base_data_bind_vehicle_driver", - "community": 115, + "community": 62, "norm_label": "bind_vehicle_driver()" }, { @@ -5240,7 +5240,7 @@ "source_location": "L985", "_origin": "ast", "id": "app_api_pl_base_data_unbind_vehicle_driver", - "community": 115, + "community": 78, "norm_label": "unbind_vehicle_driver()" }, { @@ -5260,7 +5260,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_base_data_rationale_1", - "community": 115, + "community": 62, "norm_label": "\u8fd0\u8f93\u8ba1\u5212\u7ba1\u7406 - \u57fa\u7840\u6570\u636e api(\u627f\u8fd0\u5546\u3001\u8f66\u8f86\u3001\u4eba\u5458)" }, { @@ -5270,7 +5270,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_freight", - "community": 28, + "community": 20, "norm_label": "freight.py" }, { @@ -5280,7 +5280,7 @@ "source_location": "L30", "_origin": "ast", "id": "app_api_pl_freight_generate_settlement_no", - "community": 28, + "community": 20, "norm_label": "_generate_settlement_no()" }, { @@ -5290,7 +5290,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_freight_py_session", - "community": 28, + "community": 20, "norm_label": "session" }, { @@ -5300,7 +5300,7 @@ "source_location": "L49", "_origin": "ast", "id": "app_api_pl_freight_list_unsettled_plans", - "community": 28, + "community": 20, "norm_label": "list_unsettled_plans()" }, { @@ -5310,7 +5310,7 @@ "source_location": "L75", "_origin": "ast", "id": "app_api_pl_freight_list_settlements", - "community": 28, + "community": 20, "norm_label": "list_settlements()" }, { @@ -5320,7 +5320,7 @@ "source_location": "L105", "_origin": "ast", "id": "app_api_pl_freight_get_settlement_by_transport", - "community": 28, + "community": 20, "norm_label": "get_settlement_by_transport()" }, { @@ -5330,7 +5330,7 @@ "source_location": "L120", "_origin": "ast", "id": "app_api_pl_freight_create_settlement", - "community": 28, + "community": 20, "norm_label": "create_settlement()" }, { @@ -5340,7 +5340,7 @@ "source_location": "L139", "_origin": "ast", "id": "app_api_pl_freight_get_settlement", - "community": 28, + "community": 20, "norm_label": "get_settlement()" }, { @@ -5350,7 +5350,7 @@ "source_location": "L152", "_origin": "ast", "id": "app_api_pl_freight_update_settlement", - "community": 28, + "community": 20, "norm_label": "update_settlement()" }, { @@ -5360,7 +5360,7 @@ "source_location": "L170", "_origin": "ast", "id": "app_api_pl_freight_cancel_settlement", - "community": 28, + "community": 20, "norm_label": "cancel_settlement()" }, { @@ -5370,7 +5370,7 @@ "source_location": "L182", "_origin": "ast", "id": "app_api_pl_freight_delete_settlement", - "community": 28, + "community": 20, "norm_label": "delete_settlement()" }, { @@ -5380,7 +5380,7 @@ "source_location": "L194", "_origin": "ast", "id": "app_api_pl_freight_submit_settlement_approval", - "community": 28, + "community": 20, "norm_label": "submit_settlement_approval()" }, { @@ -5390,7 +5390,7 @@ "source_location": "L213", "_origin": "ast", "id": "app_api_pl_freight_process_settlement_approval", - "community": 28, + "community": 20, "norm_label": "process_settlement_approval()" }, { @@ -5400,7 +5400,7 @@ "source_location": "L233", "_origin": "ast", "id": "app_api_pl_freight_withdraw_settlement_approval", - "community": 28, + "community": 20, "norm_label": "withdraw_settlement_approval()" }, { @@ -5410,7 +5410,7 @@ "source_location": "L245", "_origin": "ast", "id": "app_api_pl_freight_get_settlement_approval_flow", - "community": 28, + "community": 20, "norm_label": "get_settlement_approval_flow()" }, { @@ -5420,7 +5420,7 @@ "source_location": "L256", "_origin": "ast", "id": "app_api_pl_freight_disburse_settlement", - "community": 28, + "community": 20, "norm_label": "disburse_settlement()" }, { @@ -5430,7 +5430,7 @@ "source_location": "L276", "_origin": "ast", "id": "app_api_pl_freight_submit_settlement_legacy", - "community": 28, + "community": 20, "norm_label": "submit_settlement_legacy()" }, { @@ -5440,7 +5440,7 @@ "source_location": "L285", "_origin": "ast", "id": "app_api_pl_freight_approve_settlement_legacy", - "community": 28, + "community": 20, "norm_label": "approve_settlement_legacy()" }, { @@ -5450,7 +5450,7 @@ "source_location": "L294", "_origin": "ast", "id": "app_api_pl_freight_list_vouchers", - "community": 28, + "community": 20, "norm_label": "list_vouchers()" }, { @@ -5590,7 +5590,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_io_order", - "community": 54, + "community": 50, "norm_label": "io_order.py" }, { @@ -5600,7 +5600,7 @@ "source_location": "L34", "_origin": "ast", "id": "app_api_pl_io_order_models", - "community": 54, + "community": 50, "norm_label": "_models()" }, { @@ -5610,7 +5610,7 @@ "source_location": "L40", "_origin": "ast", "id": "app_api_pl_io_order_get_order", - "community": 54, + "community": 50, "norm_label": "_get_order()" }, { @@ -5620,7 +5620,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_io_order_py_session", - "community": 54, + "community": 50, "norm_label": "session" }, { @@ -5630,7 +5630,7 @@ "source_location": "L58", "_origin": "ast", "id": "app_api_pl_io_order_to_read", - "community": 54, + "community": 50, "norm_label": "_to_read()" }, { @@ -5640,7 +5640,7 @@ "source_location": "L64", "_origin": "ast", "id": "app_api_pl_io_order_list_orders", - "community": 54, + "community": 50, "norm_label": "_list_orders()" }, { @@ -5650,7 +5650,7 @@ "source_location": "L125", "_origin": "ast", "id": "app_api_pl_io_order_patch_order", - "community": 54, + "community": 50, "norm_label": "_patch_order()" }, { @@ -5660,7 +5660,7 @@ "source_location": "L182", "_origin": "ast", "id": "app_api_pl_io_order_get_by_plan", - "community": 54, + "community": 50, "norm_label": "_get_by_plan()" }, { @@ -5670,7 +5670,7 @@ "source_location": "L207", "_origin": "ast", "id": "app_api_pl_io_order_get_inbound_by_plan", - "community": 54, + "community": 50, "norm_label": "get_inbound_by_plan()" }, { @@ -5680,7 +5680,7 @@ "source_location": "L220", "_origin": "ast", "id": "app_api_pl_io_order_list_inbound", - "community": 54, + "community": 50, "norm_label": "list_inbound()" }, { @@ -5690,7 +5690,7 @@ "source_location": "L252", "_origin": "ast", "id": "app_api_pl_io_order_get_inbound", - "community": 54, + "community": 50, "norm_label": "get_inbound()" }, { @@ -5700,7 +5700,7 @@ "source_location": "L263", "_origin": "ast", "id": "app_api_pl_io_order_patch_inbound", - "community": 54, + "community": 50, "norm_label": "patch_inbound()" }, { @@ -5710,7 +5710,7 @@ "source_location": "L273", "_origin": "ast", "id": "app_api_pl_io_order_inbound_site_url", - "community": 54, + "community": 50, "norm_label": "inbound_site_url()" }, { @@ -5720,7 +5720,7 @@ "source_location": "L285", "_origin": "ast", "id": "app_api_pl_io_order_get_outbound_by_plan", - "community": 54, + "community": 50, "norm_label": "get_outbound_by_plan()" }, { @@ -5730,7 +5730,7 @@ "source_location": "L298", "_origin": "ast", "id": "app_api_pl_io_order_list_outbound", - "community": 54, + "community": 50, "norm_label": "list_outbound()" }, { @@ -5740,7 +5740,7 @@ "source_location": "L330", "_origin": "ast", "id": "app_api_pl_io_order_get_outbound", - "community": 54, + "community": 50, "norm_label": "get_outbound()" }, { @@ -5750,7 +5750,7 @@ "source_location": "L341", "_origin": "ast", "id": "app_api_pl_io_order_patch_outbound", - "community": 54, + "community": 50, "norm_label": "patch_outbound()" }, { @@ -5760,7 +5760,7 @@ "source_location": "L351", "_origin": "ast", "id": "app_api_pl_io_order_outbound_site_url", - "community": 54, + "community": 50, "norm_label": "outbound_site_url()" }, { @@ -5770,7 +5770,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_io_order_rationale_1", - "community": 54, + "community": 50, "norm_label": "\u8fd0\u8f93\u8ba1\u5212 \u00b7 \u5165\u5e93\u5355 / \u51fa\u5e93\u5355\u7ba1\u7406\u7aef api" }, { @@ -5780,7 +5780,7 @@ "source_location": "L183", "_origin": "ast", "id": "app_api_pl_io_order_rationale_183", - "community": 54, + "community": 50, "norm_label": "\u6309\u8ba1\u5212\u67e5\u627e\u5165\u5e93/\u51fa\u5e93\u5355;\u672a\u843d\u5355\u65f6\u8fd4\u56de (none, []),\u4e0e\u8fd0\u8d39 by-transport \u4e00\u81f4\u3002" }, { @@ -5790,7 +5790,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_menu_badges", - "community": 10, + "community": 120, "norm_label": "menu_badges.py" }, { @@ -5800,7 +5800,7 @@ "source_location": "L17", "_origin": "ast", "id": "app_api_pl_menu_badges_menu_badge_stats", - "community": 10, + "community": 120, "norm_label": "menu_badge_stats()" }, { @@ -5810,7 +5810,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_menu_badges_py_session", - "community": 10, + "community": 120, "norm_label": "session" }, { @@ -5820,7 +5820,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_ocr", - "community": 10, + "community": 120, "norm_label": "ocr.py" }, { @@ -5830,7 +5830,7 @@ "source_location": "L15", "_origin": "ast", "id": "app_api_pl_ocr_recognizecertbody", - "community": 91, + "community": 46, "norm_label": "recognizecertbody" }, { @@ -5840,7 +5840,7 @@ "source_location": "L23", "_origin": "ast", "id": "app_api_pl_ocr_recognizecertresult", - "community": 10, + "community": 12, "norm_label": "recognizecertresult" }, { @@ -5850,7 +5850,7 @@ "source_location": "L34", "_origin": "ast", "id": "app_api_pl_ocr_recognize_cert", - "community": 91, + "community": 46, "norm_label": "recognize_cert()" }, { @@ -5860,7 +5860,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_ocr_py_session", - "community": 91, + "community": 46, "norm_label": "session" }, { @@ -5880,7 +5880,7 @@ "source_location": "L108", "_origin": "ast", "id": "app_api_pl_plan_resolve_list_product_name", - "community": 31, + "community": 123, "norm_label": "_resolve_list_product_name()" }, { @@ -6010,7 +6010,7 @@ "source_location": "L277", "_origin": "ast", "id": "app_api_pl_plan_plan_plate_match", - "community": 5, + "community": 123, "norm_label": "_plan_plate_match()" }, { @@ -6020,7 +6020,7 @@ "source_location": "L287", "_origin": "ast", "id": "app_api_pl_plan_list_plans", - "community": 5, + "community": 123, "norm_label": "list_plans()" }, { @@ -6100,7 +6100,7 @@ "source_location": "L990", "_origin": "ast", "id": "app_api_pl_plan_update_plan", - "community": 5, + "community": 23, "norm_label": "update_plan()" }, { @@ -6130,7 +6130,7 @@ "source_location": "L1237", "_origin": "ast", "id": "app_api_pl_plan_build_driver_url", - "community": 173, + "community": 5, "norm_label": "_build_driver_url()" }, { @@ -6280,7 +6280,7 @@ "source_location": "L1797", "_origin": "ast", "id": "app_api_pl_plan_delete_plan", - "community": 5, + "community": 78, "norm_label": "delete_plan()" }, { @@ -6290,7 +6290,7 @@ "source_location": "L114", "_origin": "ast", "id": "app_api_pl_plan_rationale_114", - "community": 31, + "community": 123, "norm_label": "\u5217\u8868\u5c55\u793a\u7528:\u4f18\u5148 crm \u6807\u51c6\u540d(\u8be6\u60c5\u4ecd\u8fd4\u56de\u5e93\u5185 product_name,\u4ee5\u4fbf\u7f16\u8f91\u53cd\u63a8\u522b\u540d)\u3002" }, { @@ -6380,27 +6380,27 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_public_io_order", - "community": 145, + "community": 54, "norm_label": "public_io_order.py" }, { "label": "_models()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L31", + "source_location": "L42", "_origin": "ast", "id": "app_api_pl_public_io_order_models", - "community": 145, + "community": 54, "norm_label": "_models()" }, { "label": "_get_by_token()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L37", + "source_location": "L48", "_origin": "ast", "id": "app_api_pl_public_io_order_get_by_token", - "community": 145, + "community": 54, "norm_label": "_get_by_token()" }, { @@ -6410,47 +6410,97 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_public_io_order_py_session", - "community": 145, + "community": 54, "norm_label": "session" }, { "label": "_resolve_io_order_link_flags()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L55", + "source_location": "L66", "_origin": "ast", "id": "app_api_pl_public_io_order_resolve_io_order_link_flags", - "community": 79, + "community": 31, "norm_label": "_resolve_io_order_link_flags()" }, + { + "label": "_parse_history_date()", + "file_type": "code", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L73", + "_origin": "ast", + "id": "app_api_pl_public_io_order_parse_history_date", + "community": 54, + "norm_label": "_parse_history_date()" + }, + { + "label": "date", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "app_api_pl_public_io_order_py_date", + "community": 54, + "norm_label": "date" + }, + { + "label": "_history_status_label()", + "file_type": "code", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L83", + "_origin": "ast", + "id": "app_api_pl_public_io_order_history_status_label", + "community": 54, + "norm_label": "_history_status_label()" + }, + { + "label": "_query_kind_history()", + "file_type": "code", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L93", + "_origin": "ast", + "id": "app_api_pl_public_io_order_query_kind_history", + "community": 54, + "norm_label": "_query_kind_history()" + }, + { + "label": "_build_history_page()", + "file_type": "code", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L155", + "_origin": "ast", + "id": "app_api_pl_public_io_order_build_history_page", + "community": 54, + "norm_label": "_build_history_page()" + }, { "label": "_build_page()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L62", + "source_location": "L191", "_origin": "ast", "id": "app_api_pl_public_io_order_build_page", - "community": 145, + "community": 54, "norm_label": "_build_page()" }, { "label": "_format_file_size()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L74", + "source_location": "L203", "_origin": "ast", "id": "app_api_pl_public_io_order_format_file_size", - "community": 145, + "community": 54, "norm_label": "_format_file_size()" }, { "label": "_make_handlers()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L82", + "source_location": "L211", "_origin": "ast", "id": "app_api_pl_public_io_order_make_handlers", - "community": 3, + "community": 54, "norm_label": "_make_handlers()" }, { @@ -6460,19 +6510,29 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_public_io_order_rationale_1", - "community": 145, + "community": 54, "norm_label": "\u8fd0\u8f93\u8ba1\u5212 \u00b7 \u5165\u5e93/\u51fa\u5e93\u5355\u73b0\u573a\u514d\u767b\u5f55\u516c\u5171 api" }, { "label": "\u8fd4\u56de (\u4f5c\u5e9f, \u5f52\u6863)\u3002\u73b0\u573a\u94fe\u63a5\u5b9e\u9645\u8d70\u5165\u5e93/\u51fa\u5e93\u5355\u516c\u5171\u9875\u3002", "file_type": "rationale", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L56", + "source_location": "L67", "_origin": "ast", - "id": "app_api_pl_public_io_order_rationale_56", - "community": 79, + "id": "app_api_pl_public_io_order_rationale_67", + "community": 31, "norm_label": "\u8fd4\u56de (\u4f5c\u5e9f, \u5f52\u6863)\u3002\u73b0\u573a\u94fe\u63a5\u5b9e\u9645\u8d70\u5165\u5e93/\u51fa\u5e93\u5355\u516c\u5171\u9875\u3002" }, + { + "label": "\u8fd4\u56de [(create_time, PublicIoOrderHistoryRecordRead), ...]\u3002", + "file_type": "rationale", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L101", + "_origin": "ast", + "id": "app_api_pl_public_io_order_rationale_101", + "community": 54, + "norm_label": "\u8fd4\u56de [(create_time, publicioorderhistoryrecordread), ...]\u3002" + }, { "label": "public_site.py", "file_type": "code", @@ -6480,7 +6540,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_public_site", - "community": 31, + "community": 111, "norm_label": "public_site.py" }, { @@ -6490,7 +6550,7 @@ "source_location": "L33", "_origin": "ast", "id": "app_api_pl_public_site_parse_feedback_images", - "community": 31, + "community": 111, "norm_label": "_parse_feedback_images()" }, { @@ -6500,7 +6560,7 @@ "source_location": "L45", "_origin": "ast", "id": "app_api_pl_public_site_get_site_link_by_token", - "community": 31, + "community": 111, "norm_label": "_get_site_link_by_token()" }, { @@ -6510,7 +6570,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_public_site_py_session", - "community": 31, + "community": 111, "norm_label": "session" }, { @@ -6520,7 +6580,7 @@ "source_location": "L59", "_origin": "ast", "id": "app_api_pl_public_site_resolve_site_link_flags", - "community": 79, + "community": 31, "norm_label": "_resolve_site_link_flags()" }, { @@ -6530,7 +6590,7 @@ "source_location": "L66", "_origin": "ast", "id": "app_api_pl_public_site_resolve_unit_label", - "community": 31, + "community": 111, "norm_label": "_resolve_unit_label()" }, { @@ -6540,7 +6600,7 @@ "source_location": "L73", "_origin": "ast", "id": "app_api_pl_public_site_resolve_plan_product", - "community": 31, + "community": 111, "norm_label": "_resolve_plan_product()" }, { @@ -6550,7 +6610,7 @@ "source_location": "L86", "_origin": "ast", "id": "app_api_pl_public_site_build_site_product_read", - "community": 31, + "community": 111, "norm_label": "_build_site_product_read()" }, { @@ -6560,7 +6620,7 @@ "source_location": "L145", "_origin": "ast", "id": "app_api_pl_public_site_build_public_page", - "community": 31, + "community": 111, "norm_label": "_build_public_page()" }, { @@ -6570,7 +6630,7 @@ "source_location": "L187", "_origin": "ast", "id": "app_api_pl_public_site_get_public_site", - "community": 31, + "community": 111, "norm_label": "get_public_site()" }, { @@ -6580,7 +6640,7 @@ "source_location": "L194", "_origin": "ast", "id": "app_api_pl_public_site_save_public_site_feedback", - "community": 31, + "community": 111, "norm_label": "save_public_site_feedback()" }, { @@ -6590,7 +6650,7 @@ "source_location": "L217", "_origin": "ast", "id": "app_api_pl_public_site_format_file_size", - "community": 31, + "community": 111, "norm_label": "_format_file_size()" }, { @@ -6600,7 +6660,7 @@ "source_location": "L226", "_origin": "ast", "id": "app_api_pl_public_site_upload_public_site_attachment", - "community": 31, + "community": 111, "norm_label": "upload_public_site_attachment()" }, { @@ -6610,7 +6670,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_public_site_py_uploadfile", - "community": 31, + "community": 111, "norm_label": "uploadfile" }, { @@ -6620,7 +6680,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_public_site_rationale_1", - "community": 31, + "community": 111, "norm_label": "\u8fd0\u8f93\u8ba1\u5212 \u00b7 \u5de5\u5382\u73b0\u573a\u4eba\u5458\u514d\u767b\u5f55\u516c\u5171 api(pl_transport_site_link)" }, { @@ -6630,7 +6690,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_public_transport", - "community": 79, + "community": 31, "norm_label": "public_transport.py" }, { @@ -6640,7 +6700,7 @@ "source_location": "L50", "_origin": "ast", "id": "app_api_pl_public_transport_resolve_unit_label", - "community": 79, + "community": 31, "norm_label": "_resolve_unit_label()" }, { @@ -6650,7 +6710,7 @@ "source_location": "L57", "_origin": "ast", "id": "app_api_pl_public_transport_get_transport_by_token", - "community": 79, + "community": 31, "norm_label": "_get_transport_by_token()" }, { @@ -6660,7 +6720,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_public_transport_py_session", - "community": 79, + "community": 31, "norm_label": "session" }, { @@ -6670,7 +6730,7 @@ "source_location": "L71", "_origin": "ast", "id": "app_api_pl_public_transport_parse_feedback_images", - "community": 79, + "community": 31, "norm_label": "_parse_feedback_images()" }, { @@ -6680,7 +6740,7 @@ "source_location": "L83", "_origin": "ast", "id": "app_api_pl_public_transport_format_plan_date", - "community": 79, + "community": 31, "norm_label": "_format_plan_date()" }, { @@ -6690,7 +6750,7 @@ "source_location": "L93", "_origin": "ast", "id": "app_api_pl_public_transport_normalize_main_plate", - "community": 79, + "community": 31, "norm_label": "_normalize_main_plate()" }, { @@ -6700,7 +6760,7 @@ "source_location": "L97", "_origin": "ast", "id": "app_api_pl_public_transport_parse_history_date", - "community": 79, + "community": 31, "norm_label": "_parse_history_date()" }, { @@ -6710,7 +6770,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_public_transport_py_date", - "community": 79, + "community": 31, "norm_label": "date" }, { @@ -6720,7 +6780,7 @@ "source_location": "L107", "_origin": "ast", "id": "app_api_pl_public_transport_as_date", - "community": 79, + "community": 31, "norm_label": "_as_date()" }, { @@ -6730,7 +6790,7 @@ "source_location": "L117", "_origin": "ast", "id": "app_api_pl_public_transport_history_matches_date", - "community": 79, + "community": 31, "norm_label": "_history_matches_date()" }, { @@ -6740,7 +6800,7 @@ "source_location": "L121", "_origin": "ast", "id": "app_api_pl_public_transport_history_status_label", - "community": 79, + "community": 31, "norm_label": "_history_status_label()" }, { @@ -6750,7 +6810,7 @@ "source_location": "L129", "_origin": "ast", "id": "app_api_pl_public_transport_build_driver_url", - "community": 79, + "community": 31, "norm_label": "_build_driver_url()" }, { @@ -6760,7 +6820,7 @@ "source_location": "L134", "_origin": "ast", "id": "app_api_pl_public_transport_resolve_driver_link_flags", - "community": 79, + "community": 31, "norm_label": "_resolve_driver_link_flags()" }, { @@ -6770,7 +6830,7 @@ "source_location": "L146", "_origin": "ast", "id": "app_api_pl_public_transport_resolve_other_personnel", - "community": 79, + "community": 31, "norm_label": "_resolve_other_personnel()" }, { @@ -6780,7 +6840,7 @@ "source_location": "L175", "_origin": "ast", "id": "app_api_pl_public_transport_build_public_page", - "community": 79, + "community": 31, "norm_label": "_build_public_page()" }, { @@ -6790,7 +6850,7 @@ "source_location": "L332", "_origin": "ast", "id": "app_api_pl_public_transport_get_public_transport", - "community": 79, + "community": 31, "norm_label": "get_public_transport()" }, { @@ -6800,7 +6860,7 @@ "source_location": "L339", "_origin": "ast", "id": "app_api_pl_public_transport_get_public_transport_history", - "community": 79, + "community": 31, "norm_label": "get_public_transport_history()" }, { @@ -6810,7 +6870,7 @@ "source_location": "L426", "_origin": "ast", "id": "app_api_pl_public_transport_save_public_feedback", - "community": 79, + "community": 31, "norm_label": "save_public_feedback()" }, { @@ -6820,7 +6880,7 @@ "source_location": "L484", "_origin": "ast", "id": "app_api_pl_public_transport_format_file_size", - "community": 79, + "community": 31, "norm_label": "_format_file_size()" }, { @@ -6830,7 +6890,7 @@ "source_location": "L493", "_origin": "ast", "id": "app_api_pl_public_transport_upload_public_attachment", - "community": 79, + "community": 31, "norm_label": "upload_public_attachment()" }, { @@ -6840,7 +6900,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_public_transport_py_uploadfile", - "community": 79, + "community": 31, "norm_label": "uploadfile" }, { @@ -7400,7 +7460,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_pl_vehicle_recharge", - "community": 16, + "community": 46, "norm_label": "vehicle_recharge.py" }, { @@ -7410,7 +7470,7 @@ "source_location": "L30", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_list_applies", - "community": 16, + "community": 46, "norm_label": "list_applies()" }, { @@ -7420,7 +7480,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_py_date", - "community": 16, + "community": 46, "norm_label": "date" }, { @@ -7430,7 +7490,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_py_session", - "community": 16, + "community": 46, "norm_label": "session" }, { @@ -7440,7 +7500,7 @@ "source_location": "L62", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_pending_apply_options", - "community": 16, + "community": 46, "norm_label": "pending_apply_options()" }, { @@ -7450,7 +7510,7 @@ "source_location": "L72", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_get_apply", - "community": 16, + "community": 46, "norm_label": "get_apply()" }, { @@ -7460,7 +7520,7 @@ "source_location": "L82", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_create_apply", - "community": 16, + "community": 46, "norm_label": "create_apply()" }, { @@ -7470,7 +7530,7 @@ "source_location": "L92", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_update_apply", - "community": 16, + "community": 46, "norm_label": "update_apply()" }, { @@ -7480,7 +7540,7 @@ "source_location": "L103", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_cancel_apply", - "community": 16, + "community": 46, "norm_label": "cancel_apply()" }, { @@ -7490,7 +7550,7 @@ "source_location": "L113", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_delete_applies", - "community": 16, + "community": 46, "norm_label": "delete_applies()" }, { @@ -7500,7 +7560,7 @@ "source_location": "L124", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_list_records", - "community": 16, + "community": 46, "norm_label": "list_records()" }, { @@ -7510,7 +7570,7 @@ "source_location": "L156", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_list_disburse_board", - "community": 16, + "community": 46, "norm_label": "list_disburse_board()" }, { @@ -7520,7 +7580,7 @@ "source_location": "L190", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_get_record", - "community": 16, + "community": 46, "norm_label": "get_record()" }, { @@ -7530,7 +7590,7 @@ "source_location": "L200", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_create_record", - "community": 16, + "community": 46, "norm_label": "create_record()" }, { @@ -7540,7 +7600,7 @@ "source_location": "L210", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_update_record", - "community": 16, + "community": 46, "norm_label": "update_record()" }, { @@ -7550,7 +7610,7 @@ "source_location": "L221", "_origin": "ast", "id": "app_api_pl_vehicle_recharge_delete_records", - "community": 16, + "community": 46, "norm_label": "delete_records()" }, { @@ -7710,7 +7770,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_api_public_avatar_url_field", - "community": 164, + "community": 76, "norm_label": "_avatar_url_field()" }, { @@ -7720,7 +7780,7 @@ "source_location": "L47", "_origin": "ast", "id": "app_api_public_web_role_list", - "community": 164, + "community": 76, "norm_label": "_web_role_list()" }, { @@ -7730,7 +7790,7 @@ "source_location": "L53", "_origin": "ast", "id": "app_api_public_build_user_info_payload", - "community": 164, + "community": 76, "norm_label": "_build_user_info_payload()" }, { @@ -7750,7 +7810,7 @@ "source_location": "L84", "_origin": "ast", "id": "app_api_public_web_login_rsa_public_key", - "community": 164, + "community": 115, "norm_label": "web_login_rsa_public_key()" }, { @@ -7860,7 +7920,7 @@ "source_location": "L48", "_origin": "ast", "id": "app_api_public_rationale_48", - "community": 164, + "community": 76, "norm_label": "\u4e0e web-admin \u9759\u6001\u8def\u7531 meta.roles(admin/super_admin)\u5bf9\u9f50\u7684\u5355\u5143\u7d20\u6570\u7ec4\u3002" }, { @@ -7870,7 +7930,7 @@ "source_location": "L54", "_origin": "ast", "id": "app_api_public_rationale_54", - "community": 164, + "community": 76, "norm_label": "\u4e0e web-admin `userinfo` \u5b57\u6bb5\u7ea6\u5b9a\u4e00\u81f4\u3002" }, { @@ -7880,7 +7940,7 @@ "source_location": "L85", "_origin": "ast", "id": "app_api_public_rationale_85", - "community": 164, + "community": 115, "norm_label": "web \u7aef\u767b\u5f55\u7528 rsa \u516c\u94a5(pkcs#1 v1.5,\u4e0e jsencrypt \u4e00\u81f4)" }, { @@ -7980,7 +8040,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_workflow", - "community": 34, + "community": 44, "norm_label": "workflow.py" }, { @@ -7990,7 +8050,7 @@ "source_location": "L27", "_origin": "ast", "id": "app_api_workflow_business_type_label", - "community": 34, + "community": 44, "norm_label": "_business_type_label()" }, { @@ -8000,7 +8060,7 @@ "source_location": "L33", "_origin": "ast", "id": "app_api_workflow_portal_user_info", - "community": 34, + "community": 44, "norm_label": "_portal_user_info()" }, { @@ -8010,7 +8070,7 @@ "source_location": "L44", "_origin": "ast", "id": "app_api_workflow_assert_wf_instance_in_scope", - "community": 34, + "community": 44, "norm_label": "_assert_wf_instance_in_scope()" }, { @@ -8020,7 +8080,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_workflow_py_session", - "community": 34, + "community": 44, "norm_label": "session" }, { @@ -8030,7 +8090,7 @@ "source_location": "L66", "_origin": "ast", "id": "app_api_workflow_leave_form_fields", - "community": 34, + "community": 44, "norm_label": "_leave_form_fields()" }, { @@ -8040,7 +8100,7 @@ "source_location": "L90", "_origin": "ast", "id": "app_api_workflow_get_business_form_fields", - "community": 34, + "community": 44, "norm_label": "_get_business_form_fields()" }, { @@ -8050,7 +8110,7 @@ "source_location": "L103", "_origin": "ast", "id": "app_api_workflow_enrich_task_list", - "community": 34, + "community": 44, "norm_label": "_enrich_task_list()" }, { @@ -8060,7 +8120,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_workflow_py_any", - "community": 34, + "community": 44, "norm_label": "any" }, { @@ -8070,7 +8130,7 @@ "source_location": "L120", "_origin": "ast", "id": "app_api_workflow_processdefcreatebody", - "community": 74, + "community": 44, "norm_label": "processdefcreatebody" }, { @@ -8080,7 +8140,7 @@ "source_location": "L130", "_origin": "ast", "id": "app_api_workflow_processdefupdatebody", - "community": 74, + "community": 44, "norm_label": "processdefupdatebody" }, { @@ -8090,7 +8150,7 @@ "source_location": "L140", "_origin": "ast", "id": "app_api_workflow_publishversionbody", - "community": 74, + "community": 44, "norm_label": "publishversionbody" }, { @@ -8100,7 +8160,7 @@ "source_location": "L149", "_origin": "ast", "id": "app_api_workflow_startinstancebody", - "community": 74, + "community": 44, "norm_label": "startinstancebody" }, { @@ -8110,7 +8170,7 @@ "source_location": "L159", "_origin": "ast", "id": "app_api_workflow_taskactionbody", - "community": 34, + "community": 44, "norm_label": "taskactionbody" }, { @@ -8120,7 +8180,7 @@ "source_location": "L176", "_origin": "ast", "id": "app_api_workflow_list_process_defs", - "community": 34, + "community": 44, "norm_label": "list_process_defs()" }, { @@ -8130,7 +8190,7 @@ "source_location": "L193", "_origin": "ast", "id": "app_api_workflow_create_process_def", - "community": 34, + "community": 44, "norm_label": "create_process_def()" }, { @@ -8140,7 +8200,7 @@ "source_location": "L216", "_origin": "ast", "id": "app_api_workflow_update_process_def", - "community": 34, + "community": 44, "norm_label": "update_process_def()" }, { @@ -8150,7 +8210,7 @@ "source_location": "L241", "_origin": "ast", "id": "app_api_workflow_delete_process_def", - "community": 34, + "community": 44, "norm_label": "delete_process_def()" }, { @@ -8160,7 +8220,7 @@ "source_location": "L259", "_origin": "ast", "id": "app_api_workflow_publish_version", - "community": 34, + "community": 44, "norm_label": "publish_version()" }, { @@ -8170,7 +8230,7 @@ "source_location": "L283", "_origin": "ast", "id": "app_api_workflow_list_versions", - "community": 34, + "community": 44, "norm_label": "list_versions()" }, { @@ -8180,7 +8240,7 @@ "source_location": "L294", "_origin": "ast", "id": "app_api_workflow_get_designer_data", - "community": 34, + "community": 44, "norm_label": "get_designer_data()" }, { @@ -8190,7 +8250,7 @@ "source_location": "L325", "_origin": "ast", "id": "app_api_workflow_start_instance", - "community": 34, + "community": 44, "norm_label": "start_instance()" }, { @@ -8200,7 +8260,7 @@ "source_location": "L363", "_origin": "ast", "id": "app_api_workflow_list_my_instances", - "community": 34, + "community": 44, "norm_label": "list_my_instances()" }, { @@ -8210,7 +8270,7 @@ "source_location": "L383", "_origin": "ast", "id": "app_api_workflow_get_instance_detail", - "community": 34, + "community": 44, "norm_label": "get_instance_detail()" }, { @@ -8220,7 +8280,7 @@ "source_location": "L447", "_origin": "ast", "id": "app_api_workflow_list_pending_tasks", - "community": 34, + "community": 44, "norm_label": "list_pending_tasks()" }, { @@ -8230,7 +8290,7 @@ "source_location": "L465", "_origin": "ast", "id": "app_api_workflow_list_completed_tasks", - "community": 34, + "community": 44, "norm_label": "list_completed_tasks()" }, { @@ -8240,7 +8300,7 @@ "source_location": "L488", "_origin": "ast", "id": "app_api_workflow_approve_task", - "community": 34, + "community": 44, "norm_label": "approve_task()" }, { @@ -8250,7 +8310,7 @@ "source_location": "L513", "_origin": "ast", "id": "app_api_workflow_reject_task", - "community": 34, + "community": 44, "norm_label": "reject_task()" }, { @@ -8260,7 +8320,7 @@ "source_location": "L543", "_origin": "ast", "id": "app_api_workflow_get_business_all_tasks", - "community": 34, + "community": 44, "norm_label": "get_business_all_tasks()" }, { @@ -8270,7 +8330,7 @@ "source_location": "L160", "_origin": "ast", "id": "app_api_workflow_rationale_160", - "community": 34, + "community": 44, "norm_label": "\u5ba1\u6279\u610f\u89c1:\u524d\u7aef\u4f20 commenttext,\u517c\u5bb9 comment\u3002" }, { @@ -8280,7 +8340,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_init", - "community": 38, + "community": 111, "norm_label": "__init__.py" }, { @@ -8580,7 +8640,7 @@ "source_location": "L141", "_origin": "ast", "id": "app_core_api_crypto_middleware_apicryptomiddleware", - "community": 120, + "community": 220, "norm_label": "apicryptomiddleware" }, { @@ -8590,7 +8650,7 @@ "source_location": "", "_origin": "ast", "id": "basehttpmiddleware", - "community": 120, + "community": 66, "norm_label": "basehttpmiddleware" }, { @@ -8630,7 +8690,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_api_request_log_middleware", - "community": 71, + "community": 66, "norm_label": "api_request_log_middleware.py" }, { @@ -8640,7 +8700,7 @@ "source_location": "L37", "_origin": "ast", "id": "app_core_api_request_log_middleware_truncate", - "community": 71, + "community": 66, "norm_label": "_truncate()" }, { @@ -8650,7 +8710,7 @@ "source_location": "L49", "_origin": "ast", "id": "app_core_api_request_log_middleware_truncate_utf8_bytes", - "community": 71, + "community": 66, "norm_label": "_truncate_utf8_bytes()" }, { @@ -8660,7 +8720,7 @@ "source_location": "L65", "_origin": "ast", "id": "app_core_api_request_log_middleware_redact_obj", - "community": 71, + "community": 66, "norm_label": "_redact_obj()" }, { @@ -8670,7 +8730,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_api_request_log_middleware_py_any", - "community": 71, + "community": 66, "norm_label": "any" }, { @@ -8680,7 +8740,7 @@ "source_location": "L84", "_origin": "ast", "id": "app_core_api_request_log_middleware_format_body_bytes", - "community": 71, + "community": 66, "norm_label": "_format_body_bytes()" }, { @@ -8690,7 +8750,7 @@ "source_location": "L111", "_origin": "ast", "id": "app_core_api_request_log_middleware_claims_from_auth", - "community": 71, + "community": 66, "norm_label": "_claims_from_auth()" }, { @@ -8700,7 +8760,7 @@ "source_location": "L137", "_origin": "ast", "id": "app_core_api_request_log_middleware_should_skip_exclude", - "community": 71, + "community": 66, "norm_label": "_should_skip_exclude()" }, { @@ -8710,7 +8770,7 @@ "source_location": "L150", "_origin": "ast", "id": "app_core_api_request_log_middleware_should_skip", - "community": 71, + "community": 66, "norm_label": "_should_skip()" }, { @@ -8720,7 +8780,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_api_request_log_middleware_py_request", - "community": 71, + "community": 66, "norm_label": "request" }, { @@ -8730,7 +8790,7 @@ "source_location": "L163", "_origin": "ast", "id": "app_core_api_request_log_middleware_persist_log", - "community": 71, + "community": 66, "norm_label": "_persist_log()" }, { @@ -8740,7 +8800,7 @@ "source_location": "L224", "_origin": "ast", "id": "app_core_api_request_log_middleware_schedule_persist_log", - "community": 71, + "community": 66, "norm_label": "_schedule_persist_log()" }, { @@ -8750,7 +8810,7 @@ "source_location": "L247", "_origin": "ast", "id": "app_core_api_request_log_middleware_apirequestlogmiddleware", - "community": 120, + "community": 66, "norm_label": "apirequestlogmiddleware" }, { @@ -8760,7 +8820,7 @@ "source_location": "L248", "_origin": "ast", "id": "app_core_api_request_log_middleware_apirequestlogmiddleware_dispatch", - "community": 71, + "community": 66, "norm_label": ".dispatch()" }, { @@ -8770,7 +8830,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_api_request_log_middleware_rationale_1", - "community": 71, + "community": 66, "norm_label": "\u7edf\u4e00\u8bb0\u5f55 api \u8bf7\u6c42/\u54cd\u5e94\u51fa\u5165\u53c2\u7684\u4e2d\u95f4\u4ef6" }, { @@ -8780,7 +8840,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_attachment_biz", - "community": 3, + "community": 111, "norm_label": "attachment_biz.py" }, { @@ -8790,7 +8850,7 @@ "source_location": "L21", "_origin": "ast", "id": "app_core_attachment_biz_resolve_upload_folder", - "community": 3, + "community": 111, "norm_label": "resolve_upload_folder()" }, { @@ -8800,7 +8860,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_attachment_biz_rationale_1", - "community": 3, + "community": 111, "norm_label": "\u9644\u4ef6\u4e0a\u4f20 biztype \u4e0e minio \u76ee\u5f55\u6620\u5c04(\u5bf9\u9f50\u539f crm oss \u4e0a\u4f20\u8bed\u4e49)" }, { @@ -8810,7 +8870,7 @@ "source_location": "L22", "_origin": "ast", "id": "app_core_attachment_biz_rationale_22", - "community": 3, + "community": 111, "norm_label": "\u4f18\u5148\u4f7f\u7528\u663e\u5f0f folder;\u5426\u5219\u6309 biztype \u6620\u5c04\u9ed8\u8ba4\u76ee\u5f55\u3002" }, { @@ -8970,7 +9030,7 @@ "source_location": "L148", "_origin": "ast", "id": "app_core_auth_get_current_user_by_token", - "community": 164, + "community": 76, "norm_label": "get_current_user_by_token()" }, { @@ -8980,7 +9040,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_auth_py_session", - "community": 164, + "community": 76, "norm_label": "session" }, { @@ -8990,7 +9050,7 @@ "source_location": "L206", "_origin": "ast", "id": "app_core_auth_get_current_user", - "community": 164, + "community": 76, "norm_label": "get_current_user()" }, { @@ -9010,7 +9070,7 @@ "source_location": "L233", "_origin": "ast", "id": "app_core_auth_get_client_ip", - "community": 164, + "community": 117, "norm_label": "get_client_ip()" }, { @@ -9020,7 +9080,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_auth_py_request", - "community": 164, + "community": 117, "norm_label": "request" }, { @@ -9060,7 +9120,7 @@ "source_location": "L149", "_origin": "ast", "id": "app_core_auth_rationale_149", - "community": 164, + "community": 76, "norm_label": "\u6839\u636e token \u83b7\u53d6\u5f53\u524d\u7528\u6237(\u5305\u542b redis \u4f1a\u8bdd\u6821\u9a8c;\u4f1a\u8bdd\u6ed1\u52a8\u7eed\u671f)" }, { @@ -9070,7 +9130,7 @@ "source_location": "L210", "_origin": "ast", "id": "app_core_auth_rationale_210", - "community": 164, + "community": 76, "norm_label": "\u83b7\u53d6\u5f53\u524d\u7528\u6237(sync \u4f9d\u8d56,\u914d\u5408 sync \u8def\u7531\u5728\u7ebf\u7a0b\u6c60\u6267\u884c,\u907f\u514d\u963b\u585e\u4e8b\u4ef6\u5faa\u73af)\u3002" }, { @@ -9080,7 +9140,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_bx_auth", - "community": 24, + "community": 14, "norm_label": "bx_auth.py" }, { @@ -9100,7 +9160,7 @@ "source_location": "L22", "_origin": "ast", "id": "app_core_bx_auth_bxusercontext_to_tenant_user_dict", - "community": 112, + "community": 130, "norm_label": ".to_tenant_user_dict()" }, { @@ -9110,7 +9170,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_bx_auth_py_any", - "community": 112, + "community": 130, "norm_label": "any" }, { @@ -9120,7 +9180,7 @@ "source_location": "L30", "_origin": "ast", "id": "app_core_bx_auth_bxusercontext_to_user_info", - "community": 112, + "community": 130, "norm_label": ".to_user_info()" }, { @@ -9140,7 +9200,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_bx_auth_rationale_1", - "community": 24, + "community": 14, "norm_label": "\u62a5\u9500\u6a21\u5757\u8ba4\u8bc1\u9002\u914d:\u95e8\u6237 jwt \u7528\u6237 \u2192 bx \u4e1a\u52a1\u4e0a\u4e0b\u6587\u3002" }, { @@ -9160,7 +9220,7 @@ "source_location": "L23", "_origin": "ast", "id": "app_core_bx_auth_rationale_23", - "community": 112, + "community": 130, "norm_label": "\u4f9b get_tenant_no \u7b49\u95e8\u6237\u5de5\u5177\u4f7f\u7528\u3002" }, { @@ -9170,7 +9230,7 @@ "source_location": "L31", "_origin": "ast", "id": "app_core_bx_auth_rationale_31", - "community": 112, + "community": 130, "norm_label": "\u4e0e\u95e8\u6237 jwt / apply_data_scope \u6240\u9700\u7684 user_info \u5b57\u6bb5\u5bf9\u9f50\u3002" }, { @@ -9180,7 +9240,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_config", - "community": 38, + "community": 111, "norm_label": "config.py" }, { @@ -9210,7 +9270,7 @@ "source_location": "L185", "_origin": "ast", "id": "app_core_config_config", - "community": 38, + "community": 111, "norm_label": "config" }, { @@ -9220,7 +9280,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_context", - "community": 164, + "community": 132, "norm_label": "context.py" }, { @@ -9230,7 +9290,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_context_rationale_1", - "community": 164, + "community": 132, "norm_label": "\u8bf7\u6c42\u7ea7\u522b\u7684\u7528\u6237\u4e0a\u4e0b\u6587\u53d8\u91cf \u901a\u8fc7 contextvars \u5728\u8bf7\u6c42\u5904\u7406\u94fe\u8def\u4e2d\u4f20\u9012\u5f53\u524d\u7528\u6237\u4fe1\u606f, \u4f9b sqlalchemy \u4e8b\u4ef6\u76d1\u542c\u5668\u7b49\u5e95\u5c42\u673a\u5236\u4f7f\u7528,\u907f\u514d\u9010\u5c42\u624b\u52a8\u4f20" }, { @@ -9280,7 +9340,7 @@ "source_location": "L62", "_origin": "ast", "id": "app_core_data_scope_resolve_user_role_scopes", - "community": 69, + "community": 41, "norm_label": "_resolve_user_role_scopes()" }, { @@ -9370,7 +9430,7 @@ "source_location": "L65", "_origin": "ast", "id": "app_core_data_scope_rationale_65", - "community": 69, + "community": 41, "norm_label": "\u83b7\u53d6\u7528\u6237\u6240\u6709\u89d2\u8272\u7684\u6570\u636e\u6743\u9650\u914d\u7f6e\u3002 \u8fd4\u56de: [{\"data_scope\": str, \"details\": [sysroledatascopedetai" }, { @@ -9410,7 +9470,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_database", - "community": 10, + "community": 120, "norm_label": "database.py" }, { @@ -9420,7 +9480,7 @@ "source_location": "L28", "_origin": "ast", "id": "app_core_database_get_db", - "community": 10, + "community": 120, "norm_label": "get_db()" }, { @@ -9430,7 +9490,7 @@ "source_location": "L38", "_origin": "ast", "id": "app_core_database_auto_fill_create_dept_id", - "community": 10, + "community": 120, "norm_label": "_auto_fill_create_dept_id()" }, { @@ -9440,7 +9500,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_core_database_rationale_39", - "community": 10, + "community": 120, "norm_label": "orm before_insert \u94a9\u5b50:\u5f53 create_dept_id \u4e3a\u7a7a\u65f6,\u81ea\u52a8\u4ece\u8bf7\u6c42\u4e0a\u4e0b\u6587\u586b\u5145\u5f53\u524d\u7528\u6237\u90e8\u95e8 id" }, { @@ -9450,7 +9510,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_db_auth", - "community": 10, + "community": 120, "norm_label": "db_auth.py" }, { @@ -9460,7 +9520,7 @@ "source_location": "L22", "_origin": "ast", "id": "app_core_db_auth_dbusercontext", - "community": 5, + "community": 46, "norm_label": "dbusercontext" }, { @@ -9470,7 +9530,7 @@ "source_location": "L31", "_origin": "ast", "id": "app_core_db_auth_dbusercontext_to_tenant_user_dict", - "community": 5, + "community": 46, "norm_label": ".to_tenant_user_dict()" }, { @@ -9480,7 +9540,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_db_auth_py_any", - "community": 5, + "community": 46, "norm_label": "any" }, { @@ -9490,7 +9550,7 @@ "source_location": "L38", "_origin": "ast", "id": "app_core_db_auth_dbusercontext_to_user_info", - "community": 5, + "community": 46, "norm_label": ".to_user_info()" }, { @@ -9500,7 +9560,7 @@ "source_location": "L49", "_origin": "ast", "id": "app_core_db_auth_get_db_current_user", - "community": 10, + "community": 120, "norm_label": "get_db_current_user()" }, { @@ -9510,7 +9570,7 @@ "source_location": "L61", "_origin": "ast", "id": "app_core_db_auth_get_db_current_user_optional", - "community": 10, + "community": 120, "norm_label": "get_db_current_user_optional()" }, { @@ -9520,7 +9580,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_db_auth_py_session", - "community": 10, + "community": 120, "norm_label": "session" }, { @@ -9530,7 +9590,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_db_auth_rationale_1", - "community": 10, + "community": 120, "norm_label": "\u5730\u78c5\u6a21\u5757\u8ba4\u8bc1\u9002\u914d:\u95e8\u6237 jwt \u7528\u6237 \u2192 db \u4e1a\u52a1\u4e0a\u4e0b\u6587\u3002" }, { @@ -9540,7 +9600,7 @@ "source_location": "L23", "_origin": "ast", "id": "app_core_db_auth_rationale_23", - "community": 5, + "community": 46, "norm_label": "db router/service \u4f7f\u7528\u7684\u5f53\u524d\u7528\u6237\u4e0a\u4e0b\u6587\u3002" }, { @@ -9550,7 +9610,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_core_db_auth_rationale_39", - "community": 5, + "community": 46, "norm_label": "\u4e0e\u95e8\u6237 jwt / apply_data_scope \u6240\u9700\u7684 user_info \u5b57\u6bb5\u5bf9\u9f50\u3002" }, { @@ -9560,7 +9620,7 @@ "source_location": "L65", "_origin": "ast", "id": "app_core_db_auth_rationale_65", - "community": 10, + "community": 120, "norm_label": "\u6709 bearer \u4e14\u4e3a admin/super_admin \u65f6\u8fd4\u56de\u4e0a\u4e0b\u6587,\u5426\u5219 none(\u4f9b\u4e09\u65b9 h5 \u65e0\u767b\u5f55\u8c03\u7528)\u3002" }, { @@ -9990,7 +10050,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_id_card", - "community": 82, + "community": 86, "norm_label": "id_card.py" }, { @@ -10000,7 +10060,7 @@ "source_location": "L11", "_origin": "ast", "id": "app_core_id_card_calc_age_from_chinese_id_card", - "community": 82, + "community": 86, "norm_label": "calc_age_from_chinese_id_card()" }, { @@ -10010,7 +10070,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_id_card_py_date", - "community": 82, + "community": 86, "norm_label": "date" }, { @@ -10020,7 +10080,7 @@ "source_location": "L16", "_origin": "ast", "id": "app_core_id_card_rationale_16", - "community": 82, + "community": 86, "norm_label": "\u4ece 18 \u4f4d\u8eab\u4efd\u8bc1\u53f7\u8ba1\u7b97\u5468\u5c81\u3002\u53f7\u7801\u4e0d\u5b8c\u6574\u6216\u51fa\u751f\u65e5\u671f\u65e0\u6548\u65f6\u8fd4\u56de none\u3002" }, { @@ -10130,7 +10190,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_menu_guard", - "community": 10, + "community": 159, "norm_label": "menu_guard.py" }, { @@ -10140,7 +10200,7 @@ "source_location": "L15", "_origin": "ast", "id": "app_core_menu_guard_require_admin_or_super_admin", - "community": 121, + "community": 1, "norm_label": "require_admin_or_super_admin()" }, { @@ -10150,7 +10210,7 @@ "source_location": "L23", "_origin": "ast", "id": "app_core_menu_guard_get_user_menu_codes", - "community": 5, + "community": 159, "norm_label": "get_user_menu_codes()" }, { @@ -10160,7 +10220,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_menu_guard_py_session", - "community": 5, + "community": 159, "norm_label": "session" }, { @@ -10170,7 +10230,7 @@ "source_location": "L28", "_origin": "ast", "id": "app_core_menu_guard_require_menu_code", - "community": 20, + "community": 1, "norm_label": "require_menu_code()" }, { @@ -10180,7 +10240,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_menu_guard_rationale_1", - "community": 10, + "community": 159, "norm_label": "\u83dc\u5355 code \u6743\u9650\u5b88\u536b(v0.3:\u901a\u8fc7 sys_user_role \u2192 sys_role_menu \u2192 sys_menu.perms)" }, { @@ -10190,7 +10250,7 @@ "source_location": "L16", "_origin": "ast", "id": "app_core_menu_guard_rationale_16", - "community": 121, + "community": 1, "norm_label": "\u8fd0\u8425\u7aef\u89d2\u8272\u5b88\u536b:admin / super_admin \u53ef\u8bbf\u95ee\u3002" }, { @@ -10200,7 +10260,7 @@ "source_location": "L24", "_origin": "ast", "id": "app_core_menu_guard_rationale_24", - "community": 5, + "community": 159, "norm_label": "\u8bfb\u53d6\u7528\u6237\u6388\u6743\u7684\u83dc\u5355\u6743\u9650\u6807\u8bc6\u96c6\u5408(\u4e0e\u524d\u7aef meta.menucode / perms \u5bf9\u9f50)\u3002" }, { @@ -10210,7 +10270,7 @@ "source_location": "L29", "_origin": "ast", "id": "app_core_menu_guard_rationale_29", - "community": 20, + "community": 1, "norm_label": "\u63a5\u53e3\u83dc\u5355\u6743\u9650\u5b88\u536b\u3002super_admin \u76f4\u63a5\u653e\u884c\u3002" }, { @@ -10220,7 +10280,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_oper_log_context", - "community": 66, + "community": 85, "norm_label": "oper_log_context.py" }, { @@ -10230,7 +10290,7 @@ "source_location": "L10", "_origin": "ast", "id": "app_core_oper_log_context_operlogmeta", - "community": 66, + "community": 85, "norm_label": "operlogmeta" }, { @@ -10240,7 +10300,7 @@ "source_location": "L20", "_origin": "ast", "id": "app_core_oper_log_context_set_oper_log_meta", - "community": 66, + "community": 85, "norm_label": "set_oper_log_meta()" }, { @@ -10250,7 +10310,7 @@ "source_location": "L24", "_origin": "ast", "id": "app_core_oper_log_context_get_oper_log_meta", - "community": 66, + "community": 85, "norm_label": "get_oper_log_meta()" }, { @@ -10260,7 +10320,7 @@ "source_location": "L28", "_origin": "ast", "id": "app_core_oper_log_context_clear_oper_log_meta", - "community": 71, + "community": 66, "norm_label": "clear_oper_log_meta()" }, { @@ -10270,7 +10330,7 @@ "source_location": "L32", "_origin": "ast", "id": "app_core_oper_log_context_snapshot_oper_log_meta", - "community": 66, + "community": 85, "norm_label": "snapshot_oper_log_meta()" }, { @@ -10280,7 +10340,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_oper_log_context_rationale_1", - "community": 66, + "community": 85, "norm_label": "\u8bf7\u6c42\u7ea7\u64cd\u4f5c\u65e5\u5fd7\u5143\u6570\u636e(contextvar)" }, { @@ -10290,7 +10350,7 @@ "source_location": "L33", "_origin": "ast", "id": "app_core_oper_log_context_rationale_33", - "community": 66, + "community": 85, "norm_label": "\u4f9b\u5f02\u6b65\u843d\u5e93\u7ebf\u7a0b\u4f7f\u7528,\u907f\u514d contextvar \u8de8\u7ebf\u7a0b\u4e22\u5931\u3002" }, { @@ -10300,7 +10360,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_oper_log_decorator", - "community": 66, + "community": 85, "norm_label": "oper_log_decorator.py" }, { @@ -10310,7 +10370,7 @@ "source_location": "L23", "_origin": "ast", "id": "app_core_oper_log_decorator_to_dict", - "community": 66, + "community": 85, "norm_label": "_to_dict()" }, { @@ -10320,7 +10380,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_oper_log_decorator_py_any", - "community": 66, + "community": 85, "norm_label": "any" }, { @@ -10330,7 +10390,7 @@ "source_location": "L36", "_origin": "ast", "id": "app_core_oper_log_decorator_pick_field", - "community": 66, + "community": 85, "norm_label": "_pick_field()" }, { @@ -10340,7 +10400,7 @@ "source_location": "L49", "_origin": "ast", "id": "app_core_oper_log_decorator_resolve_business_id", - "community": 66, + "community": 85, "norm_label": "_resolve_business_id()" }, { @@ -10350,7 +10410,7 @@ "source_location": "L73", "_origin": "ast", "id": "app_core_oper_log_decorator_format_summary", - "community": 66, + "community": 85, "norm_label": "_format_summary()" }, { @@ -10360,7 +10420,7 @@ "source_location": "L95", "_origin": "ast", "id": "app_core_oper_log_decorator_preserve_fastapi_signature", - "community": 66, + "community": 85, "norm_label": "_preserve_fastapi_signature()" }, { @@ -10370,7 +10430,7 @@ "source_location": "L118", "_origin": "ast", "id": "app_core_oper_log_decorator_oper_log", - "community": 66, + "community": 1, "norm_label": "oper_log()" }, { @@ -10380,7 +10440,7 @@ "source_location": "", "_origin": "ast", "id": "f", - "community": 66, + "community": 1, "norm_label": "f" }, { @@ -10390,7 +10450,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_oper_log_decorator_rationale_1", - "community": 66, + "community": 85, "norm_label": "\u8def\u7531\u64cd\u4f5c\u65e5\u5fd7\u88c5\u9970\u5668:\u5199\u5165 contextvar \u4f9b\u4e2d\u95f4\u4ef6\u843d\u5e93" }, { @@ -10400,7 +10460,7 @@ "source_location": "L96", "_origin": "ast", "id": "app_core_oper_log_decorator_rationale_96", - "community": 66, + "community": 85, "norm_label": "fastapi \u901a\u8fc7 inspect.signature + wrapper.__globals__ \u89e3\u6790\u7c7b\u578b;\u9700\u5728\u539f\u51fd\u6570\u547d\u540d\u7a7a\u95f4\u4e0b\u89e3\u6790\u540e\u5199\u56de\u3002" }, { @@ -10410,7 +10470,7 @@ "source_location": "L125", "_origin": "ast", "id": "app_core_oper_log_decorator_rationale_125", - "community": 66, + "community": 1, "norm_label": "\u5728 handler \u6267\u884c\u524d\u8bbe\u7f6e\u64cd\u4f5c\u65e5\u5fd7\u5143\u6570\u636e\u3002" }, { @@ -10420,7 +10480,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_oper_log_infer", - "community": 53, + "community": 41, "norm_label": "oper_log_infer.py" }, { @@ -10430,7 +10490,7 @@ "source_location": "L42", "_origin": "ast", "id": "app_core_oper_log_infer_title_from_path", - "community": 53, + "community": 41, "norm_label": "title_from_path()" }, { @@ -10440,7 +10500,7 @@ "source_location": "L50", "_origin": "ast", "id": "app_core_oper_log_infer_business_type_from_path", - "community": 53, + "community": 41, "norm_label": "business_type_from_path()" }, { @@ -10530,7 +10590,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_redis_client", - "community": 220, + "community": 110, "norm_label": "redis_client.py" }, { @@ -10540,7 +10600,7 @@ "source_location": "L15", "_origin": "ast", "id": "app_core_redis_client_redis_enabled", - "community": 220, + "community": 110, "norm_label": "redis_enabled()" }, { @@ -10550,7 +10610,7 @@ "source_location": "L19", "_origin": "ast", "id": "app_core_redis_client_redis_common_kwargs", - "community": 220, + "community": 110, "norm_label": "_redis_common_kwargs()" }, { @@ -10560,7 +10620,7 @@ "source_location": "L32", "_origin": "ast", "id": "app_core_redis_client_get_sync_redis_client", - "community": 220, + "community": 110, "norm_label": "get_sync_redis_client()" }, { @@ -10570,7 +10630,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_redis_client_py_redis", - "community": 220, + "community": 110, "norm_label": "redis" }, { @@ -10580,7 +10640,7 @@ "source_location": "L45", "_origin": "ast", "id": "app_core_redis_client_get_redis_client", - "community": 220, + "community": 110, "norm_label": "get_redis_client()" }, { @@ -10590,7 +10650,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_redis_client_rationale_1", - "community": 220, + "community": 110, "norm_label": "\u5171\u4eab redis \u5ba2\u6237\u7aef(\u540c\u6b65:\u4f1a\u8bdd\u9274\u6743;\u5f02\u6b65:api \u52a0\u5bc6 nonce)\u3002" }, { @@ -10600,7 +10660,7 @@ "source_location": "L33", "_origin": "ast", "id": "app_core_redis_client_rationale_33", - "community": 220, + "community": 110, "norm_label": "\u540c\u6b65 redis(auth \u4f1a\u8bdd\u7b49,\u5728\u7ebf\u7a0b\u6c60\u4e2d\u8c03\u7528)\u3002" }, { @@ -10610,7 +10670,7 @@ "source_location": "L46", "_origin": "ast", "id": "app_core_redis_client_rationale_46", - "community": 220, + "community": 110, "norm_label": "\u5f02\u6b65 redis(api \u52a0\u5bc6 nonce \u7b49\u4e2d\u95f4\u4ef6)\u3002" }, { @@ -10660,7 +10720,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_response", - "community": 121, + "community": 81, "norm_label": "response.py" }, { @@ -10670,7 +10730,7 @@ "source_location": "L8", "_origin": "ast", "id": "app_core_response_responsemodel", - "community": 121, + "community": 81, "norm_label": "responsemodel" }, { @@ -10680,7 +10740,7 @@ "source_location": "L15", "_origin": "ast", "id": "app_core_response_config", - "community": 121, + "community": 81, "norm_label": "config" }, { @@ -10690,7 +10750,7 @@ "source_location": "L19", "_origin": "ast", "id": "app_core_response_pageresult", - "community": 121, + "community": 81, "norm_label": "pageresult" }, { @@ -10700,7 +10760,7 @@ "source_location": "L28", "_origin": "ast", "id": "app_core_response_success_response", - "community": 3, + "community": 7, "norm_label": "success_response()" }, { @@ -10720,7 +10780,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_core_response_format_api_error_message", - "community": 121, + "community": 81, "norm_label": "format_api_error_message()" }, { @@ -10730,7 +10790,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_response_py_exception", - "community": 121, + "community": 81, "norm_label": "exception" }, { @@ -10750,7 +10810,7 @@ "source_location": "L40", "_origin": "ast", "id": "app_core_response_rationale_40", - "community": 121, + "community": 81, "norm_label": "\u5c06 http/sqlalchemy \u7b49\u5f02\u5e38\u8f6c\u4e3a\u53ef\u5c55\u793a\u7684\u9519\u8bef\u6587\u6848(\u907f\u514d str([]) \u7a7a\u5217\u8868)\u3002" }, { @@ -10800,7 +10860,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_storage", - "community": 125, + "community": 170, "norm_label": "storage.py" }, { @@ -10810,7 +10870,7 @@ "source_location": "L34", "_origin": "ast", "id": "app_core_storage_guess_preview_content_type", - "community": 125, + "community": 154, "norm_label": "_guess_preview_content_type()" }, { @@ -10820,7 +10880,7 @@ "source_location": "L61", "_origin": "ast", "id": "app_core_storage_convert_heic_to_jpeg", - "community": 125, + "community": 170, "norm_label": "convert_heic_to_jpeg()" }, { @@ -10830,7 +10890,7 @@ "source_location": "L76", "_origin": "ast", "id": "app_core_storage_process_image_content", - "community": 93, + "community": 170, "norm_label": "process_image_content()" }, { @@ -10840,7 +10900,7 @@ "source_location": "L85", "_origin": "ast", "id": "app_core_storage_basestorage", - "community": 170, + "community": 88, "norm_label": "basestorage" }, { @@ -10850,7 +10910,7 @@ "source_location": "L88", "_origin": "ast", "id": "app_core_storage_basestorage_upload_file", - "community": 170, + "community": 88, "norm_label": ".upload_file()" }, { @@ -10860,7 +10920,7 @@ "source_location": "L92", "_origin": "ast", "id": "app_core_storage_basestorage_upload_base64", - "community": 170, + "community": 88, "norm_label": ".upload_base64()" }, { @@ -10870,7 +10930,7 @@ "source_location": "L96", "_origin": "ast", "id": "app_core_storage_basestorage_delete_file", - "community": 170, + "community": 88, "norm_label": ".delete_file()" }, { @@ -10880,7 +10940,7 @@ "source_location": "L100", "_origin": "ast", "id": "app_core_storage_basestorage_get_url", - "community": 170, + "community": 88, "norm_label": ".get_url()" }, { @@ -10890,7 +10950,7 @@ "source_location": "L104", "_origin": "ast", "id": "app_core_storage_basestorage_presigned_download_url", - "community": 170, + "community": 88, "norm_label": ".presigned_download_url()" }, { @@ -10900,7 +10960,7 @@ "source_location": "L110", "_origin": "ast", "id": "app_core_storage_basestorage_presigned_preview_url", - "community": 170, + "community": 88, "norm_label": ".presigned_preview_url()" }, { @@ -10910,7 +10970,7 @@ "source_location": "L115", "_origin": "ast", "id": "app_core_storage_localstorage", - "community": 85, + "community": 93, "norm_label": "localstorage" }, { @@ -10920,7 +10980,7 @@ "source_location": "L118", "_origin": "ast", "id": "app_core_storage_localstorage_init", - "community": 85, + "community": 93, "norm_label": ".__init__()" }, { @@ -10930,7 +10990,7 @@ "source_location": "L122", "_origin": "ast", "id": "app_core_storage_localstorage_ensure_dir", - "community": 85, + "community": 93, "norm_label": "._ensure_dir()" }, { @@ -10940,7 +11000,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_storage_py_path", - "community": 85, + "community": 93, "norm_label": "path" }, { @@ -10950,7 +11010,7 @@ "source_location": "L128", "_origin": "ast", "id": "app_core_storage_localstorage_generate_filename", - "community": 85, + "community": 93, "norm_label": "._generate_filename()" }, { @@ -10960,7 +11020,7 @@ "source_location": "L134", "_origin": "ast", "id": "app_core_storage_localstorage_upload_file", - "community": 85, + "community": 93, "norm_label": ".upload_file()" }, { @@ -10970,7 +11030,7 @@ "source_location": "L149", "_origin": "ast", "id": "app_core_storage_localstorage_upload_base64", - "community": 93, + "community": 170, "norm_label": ".upload_base64()" }, { @@ -10980,7 +11040,7 @@ "source_location": "L158", "_origin": "ast", "id": "app_core_storage_localstorage_delete_file", - "community": 85, + "community": 93, "norm_label": ".delete_file()" }, { @@ -10990,7 +11050,7 @@ "source_location": "L175", "_origin": "ast", "id": "app_core_storage_localstorage_get_url", - "community": 85, + "community": 93, "norm_label": ".get_url()" }, { @@ -11000,7 +11060,7 @@ "source_location": "L180", "_origin": "ast", "id": "app_core_storage_qiniustorage", - "community": 125, + "community": 170, "norm_label": "qiniustorage" }, { @@ -11010,7 +11070,7 @@ "source_location": "L183", "_origin": "ast", "id": "app_core_storage_qiniustorage_init", - "community": 125, + "community": 170, "norm_label": ".__init__()" }, { @@ -11020,7 +11080,7 @@ "source_location": "L192", "_origin": "ast", "id": "app_core_storage_qiniustorage_generate_filename", - "community": 125, + "community": 170, "norm_label": "._generate_filename()" }, { @@ -11030,7 +11090,7 @@ "source_location": "L198", "_origin": "ast", "id": "app_core_storage_qiniustorage_upload_file", - "community": 93, + "community": 170, "norm_label": ".upload_file()" }, { @@ -11040,7 +11100,7 @@ "source_location": "L213", "_origin": "ast", "id": "app_core_storage_qiniustorage_upload_base64", - "community": 93, + "community": 170, "norm_label": ".upload_base64()" }, { @@ -11050,7 +11110,7 @@ "source_location": "L221", "_origin": "ast", "id": "app_core_storage_qiniustorage_delete_file", - "community": 125, + "community": 170, "norm_label": ".delete_file()" }, { @@ -11060,7 +11120,7 @@ "source_location": "L232", "_origin": "ast", "id": "app_core_storage_qiniustorage_get_url", - "community": 125, + "community": 170, "norm_label": ".get_url()" }, { @@ -11070,7 +11130,7 @@ "source_location": "L237", "_origin": "ast", "id": "app_core_storage_ossstorage", - "community": 93, + "community": 170, "norm_label": "ossstorage" }, { @@ -11080,7 +11140,7 @@ "source_location": "L240", "_origin": "ast", "id": "app_core_storage_ossstorage_init", - "community": 93, + "community": 170, "norm_label": ".__init__()" }, { @@ -11090,7 +11150,7 @@ "source_location": "L250", "_origin": "ast", "id": "app_core_storage_ossstorage_generate_filename", - "community": 93, + "community": 170, "norm_label": "._generate_filename()" }, { @@ -11100,7 +11160,7 @@ "source_location": "L256", "_origin": "ast", "id": "app_core_storage_ossstorage_upload_file", - "community": 93, + "community": 170, "norm_label": ".upload_file()" }, { @@ -11110,7 +11170,7 @@ "source_location": "L267", "_origin": "ast", "id": "app_core_storage_ossstorage_upload_base64", - "community": 93, + "community": 170, "norm_label": ".upload_base64()" }, { @@ -11120,7 +11180,7 @@ "source_location": "L275", "_origin": "ast", "id": "app_core_storage_ossstorage_delete_file", - "community": 93, + "community": 170, "norm_label": ".delete_file()" }, { @@ -11130,7 +11190,7 @@ "source_location": "L284", "_origin": "ast", "id": "app_core_storage_ossstorage_get_url", - "community": 93, + "community": 170, "norm_label": ".get_url()" }, { @@ -11180,7 +11240,7 @@ "source_location": "L334", "_origin": "ast", "id": "app_core_storage_miniostorage_generate_filename", - "community": 93, + "community": 170, "norm_label": "._generate_filename()" }, { @@ -11190,7 +11250,7 @@ "source_location": "L340", "_origin": "ast", "id": "app_core_storage_miniostorage_upload_file", - "community": 93, + "community": 170, "norm_label": ".upload_file()" }, { @@ -11200,7 +11260,7 @@ "source_location": "L357", "_origin": "ast", "id": "app_core_storage_miniostorage_upload_base64", - "community": 93, + "community": 170, "norm_label": ".upload_base64()" }, { @@ -11220,7 +11280,7 @@ "source_location": "L374", "_origin": "ast", "id": "app_core_storage_miniostorage_get_url", - "community": 93, + "community": 88, "norm_label": ".get_url()" }, { @@ -11270,7 +11330,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_storage_rationale_1", - "community": 125, + "community": 170, "norm_label": "\u6587\u4ef6\u5b58\u50a8\u5de5\u5177\u6a21\u5757 \u652f\u6301\u591a\u79cd\u5b58\u50a8\u65b9\u5f0f: 1. \u672c\u5730\u5b58\u50a8 (local) - \u9ed8\u8ba4 2. \u4e03\u725b\u4e91\u5b58\u50a8 (qiniu) - \u63a8\u8350\u751f\u4ea7\u73af\u5883\u4f7f\u7528 3. \u963f\u91cc\u4e91oss (" }, { @@ -11280,7 +11340,7 @@ "source_location": "L35", "_origin": "ast", "id": "app_core_storage_rationale_35", - "community": 125, + "community": 154, "norm_label": "\u6309\u5bf9\u8c61\u952e\u540e\u7f00\u63a8\u65ad\u5185\u8054\u9884\u89c8 content-type(\u7ea0\u6b63\u4e0a\u4f20\u65f6\u672a\u5199\u5165 mime \u7684\u60c5\u51b5)\u3002" }, { @@ -11290,7 +11350,7 @@ "source_location": "L62", "_origin": "ast", "id": "app_core_storage_rationale_62", - "community": 125, + "community": 170, "norm_label": "\u5c06 heic/heif \u683c\u5f0f\u8f6c\u6362\u4e3a jpeg \u683c\u5f0f" }, { @@ -11300,7 +11360,7 @@ "source_location": "L77", "_origin": "ast", "id": "app_core_storage_rationale_77", - "community": 93, + "community": 170, "norm_label": "\u5904\u7406\u56fe\u7247\u5185\u5bb9,\u5982\u679c\u662f heic \u683c\u5f0f\u5219\u8f6c\u6362\u4e3a jpeg" }, { @@ -11310,7 +11370,7 @@ "source_location": "L107", "_origin": "ast", "id": "app_core_storage_rationale_107", - "community": 170, + "community": 88, "norm_label": "\u5e26\u4e0b\u8f7d\u6587\u4ef6\u540d\u7684\u8bbf\u95ee url;\u9ed8\u8ba4\u5b9e\u73b0\u4e3a\u666e\u901a\u8bbf\u95ee\u5730\u5740\u3002" }, { @@ -11320,7 +11380,7 @@ "source_location": "L111", "_origin": "ast", "id": "app_core_storage_rationale_111", - "community": 170, + "community": 88, "norm_label": "\u6d4f\u89c8\u5668\u5185\u8054\u9884\u89c8 url;\u9ed8\u8ba4\u5b9e\u73b0\u4e3a\u666e\u901a\u8bbf\u95ee\u5730\u5740\u3002" }, { @@ -11360,7 +11420,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_tenant_context", - "community": 24, + "community": 13, "norm_label": "tenant_context.py" }, { @@ -11400,7 +11460,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_utils", - "community": 55, + "community": 145, "norm_label": "utils.py" }, { @@ -11410,7 +11470,7 @@ "source_location": "L9", "_origin": "ast", "id": "app_core_utils_generate_uuid", - "community": 55, + "community": 74, "norm_label": "generate_uuid()" }, { @@ -11420,7 +11480,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_core_utils_generate_id", - "community": 26, + "community": 66, "norm_label": "generate_id()" }, { @@ -11430,7 +11490,7 @@ "source_location": "L20", "_origin": "ast", "id": "app_core_utils_generate_random_password", - "community": 55, + "community": 145, "norm_label": "generate_random_password()" }, { @@ -11440,7 +11500,7 @@ "source_location": "L26", "_origin": "ast", "id": "app_core_utils_get_current_time", - "community": 55, + "community": 145, "norm_label": "get_current_time()" }, { @@ -11450,7 +11510,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_utils_py_datetime", - "community": 55, + "community": 145, "norm_label": "datetime" }, { @@ -11470,7 +11530,7 @@ "source_location": "L38", "_origin": "ast", "id": "app_core_utils_parse_datetime", - "community": 55, + "community": 145, "norm_label": "parse_datetime()" }, { @@ -11480,7 +11540,7 @@ "source_location": "L48", "_origin": "ast", "id": "app_core_utils_get_file_size_display", - "community": 55, + "community": 145, "norm_label": "get_file_size_display()" }, { @@ -11490,7 +11550,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_wechat_message", - "community": 38, + "community": 90, "norm_label": "wechat_message.py" }, { @@ -11600,7 +11660,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_wechat_message_rationale_1", - "community": 38, + "community": 90, "norm_label": "\u5fae\u4fe1\u6d88\u606f\u901a\u77e5\u670d\u52a1 \u652f\u6301\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6a21\u677f\u6d88\u606f\u63a8\u9001 \u4f7f\u7528\u65b9\u5f0f: from app.core.wechat_message import wechatmes" }, { @@ -12000,7 +12060,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_init", - "community": 26, + "community": 71, "norm_label": "__init__.py" }, { @@ -12010,7 +12070,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_api_request_log", - "community": 101, + "community": 66, "norm_label": "api_request_log.py" }, { @@ -12020,7 +12080,7 @@ "source_location": "L12", "_origin": "ast", "id": "app_crud_api_request_log_apirequestlogcrud", - "community": 101, + "community": 66, "norm_label": "apirequestlogcrud" }, { @@ -12030,7 +12090,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_crud_api_request_log_apirequestlogcrud_get_multi_with_filters", - "community": 101, + "community": 66, "norm_label": ".get_multi_with_filters()" }, { @@ -12040,7 +12100,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_api_request_log_py_session", - "community": 101, + "community": 66, "norm_label": "session" }, { @@ -12050,7 +12110,7 @@ "source_location": "L85", "_origin": "ast", "id": "app_crud_api_request_log_apirequestlogcrud_get", - "community": 101, + "community": 66, "norm_label": ".get()" }, { @@ -12060,7 +12120,7 @@ "source_location": "L91", "_origin": "ast", "id": "app_crud_api_request_log_apirequestlogcrud_delete", - "community": 101, + "community": 66, "norm_label": ".delete()" }, { @@ -12070,7 +12130,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_base", - "community": 26, + "community": 71, "norm_label": "base.py" }, { @@ -12080,7 +12140,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_crud_base_camel_to_snake", - "community": 26, + "community": 71, "norm_label": "camel_to_snake()" }, { @@ -12090,7 +12150,7 @@ "source_location": "L20", "_origin": "ast", "id": "app_crud_base_get_model_attr", - "community": 26, + "community": 71, "norm_label": "get_model_attr()" }, { @@ -12100,7 +12160,7 @@ "source_location": "L33", "_origin": "ast", "id": "app_crud_base_crudbase", - "community": 26, + "community": 71, "norm_label": "crudbase" }, { @@ -12110,7 +12170,7 @@ "source_location": "L36", "_origin": "ast", "id": "app_crud_base_crudbase_init", - "community": 26, + "community": 71, "norm_label": ".__init__()" }, { @@ -12120,7 +12180,7 @@ "source_location": "", "_origin": "ast", "id": "modeltype", - "community": 26, + "community": 71, "norm_label": "modeltype" }, { @@ -12130,7 +12190,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_crud_base_crudbase_get", - "community": 26, + "community": 71, "norm_label": ".get()" }, { @@ -12140,7 +12200,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_base_py_session", - "community": 26, + "community": 71, "norm_label": "session" }, { @@ -12150,7 +12210,7 @@ "source_location": "L43", "_origin": "ast", "id": "app_crud_base_crudbase_get_multi", - "community": 26, + "community": 71, "norm_label": ".get_multi()" }, { @@ -12160,7 +12220,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_base_py_any", - "community": 26, + "community": 71, "norm_label": "any" }, { @@ -12170,7 +12230,7 @@ "source_location": "L67", "_origin": "ast", "id": "app_crud_base_crudbase_get_all", - "community": 26, + "community": 71, "norm_label": ".get_all()" }, { @@ -12180,7 +12240,7 @@ "source_location": "L74", "_origin": "ast", "id": "app_crud_base_crudbase_create", - "community": 26, + "community": 71, "norm_label": ".create()" }, { @@ -12190,7 +12250,7 @@ "source_location": "L95", "_origin": "ast", "id": "app_crud_base_crudbase_update", - "community": 26, + "community": 71, "norm_label": ".update()" }, { @@ -12200,7 +12260,7 @@ "source_location": "L114", "_origin": "ast", "id": "app_crud_base_crudbase_delete", - "community": 26, + "community": 71, "norm_label": ".delete()" }, { @@ -12210,7 +12270,7 @@ "source_location": "L126", "_origin": "ast", "id": "app_crud_base_crudbase_hard_delete", - "community": 26, + "community": 71, "norm_label": ".hard_delete()" }, { @@ -12220,7 +12280,7 @@ "source_location": "L135", "_origin": "ast", "id": "app_crud_base_crudbase_count", - "community": 26, + "community": 71, "norm_label": ".count()" }, { @@ -12230,7 +12290,7 @@ "source_location": "L142", "_origin": "ast", "id": "app_crud_base_crudbase_exists", - "community": 26, + "community": 71, "norm_label": ".exists()" }, { @@ -12240,7 +12300,7 @@ "source_location": "L150", "_origin": "ast", "id": "app_crud_base_historycrud", - "community": 26, + "community": 71, "norm_label": "historycrud" }, { @@ -12250,7 +12310,7 @@ "source_location": "L153", "_origin": "ast", "id": "app_crud_base_historycrud_create_history", - "community": 26, + "community": 71, "norm_label": ".create_history()" }, { @@ -13030,7 +13090,7 @@ "source_location": "L53", "_origin": "ast", "id": "app_crud_crm_contract_ensure_contract_in_scope", - "community": 0, + "community": 29, "norm_label": "_ensure_contract_in_scope()" }, { @@ -13040,7 +13100,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_contract_py_session", - "community": 0, + "community": 29, "norm_label": "session" }, { @@ -13050,7 +13110,7 @@ "source_location": "L57", "_origin": "ast", "id": "app_crud_crm_contract_get_contract_row_in_scope", - "community": 0, + "community": 29, "norm_label": "_get_contract_row_in_scope()" }, { @@ -13060,7 +13120,7 @@ "source_location": "L74", "_origin": "ast", "id": "app_crud_crm_contract_total_pages", - "community": 29, + "community": 83, "norm_label": "total_pages()" }, { @@ -13070,7 +13130,7 @@ "source_location": "L80", "_origin": "ast", "id": "app_crud_crm_contract_decimal_value", - "community": 37, + "community": 29, "norm_label": "_decimal_value()" }, { @@ -13090,7 +13150,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_contract_py_decimal", - "community": 37, + "community": 29, "norm_label": "decimal" }, { @@ -13100,7 +13160,7 @@ "source_location": "L88", "_origin": "ast", "id": "app_crud_crm_contract_parse_optional_date", - "community": 37, + "community": 29, "norm_label": "_parse_optional_date()" }, { @@ -13120,7 +13180,7 @@ "source_location": "L106", "_origin": "ast", "id": "app_crud_crm_contract_parse_optional_datetime", - "community": 37, + "community": 29, "norm_label": "_parse_optional_datetime()" }, { @@ -13130,7 +13190,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_contract_py_datetime", - "community": 37, + "community": 29, "norm_label": "datetime" }, { @@ -13140,7 +13200,7 @@ "source_location": "L122", "_origin": "ast", "id": "app_crud_crm_contract_get_field", - "community": 37, + "community": 29, "norm_label": "_get_field()" }, { @@ -13150,7 +13210,7 @@ "source_location": "L129", "_origin": "ast", "id": "app_crud_crm_contract_resolve_user_display_name", - "community": 44, + "community": 29, "norm_label": "_resolve_user_display_name()" }, { @@ -13160,7 +13220,7 @@ "source_location": "L139", "_origin": "ast", "id": "app_crud_crm_contract_is_blank", - "community": 44, + "community": 29, "norm_label": "_is_blank()" }, { @@ -13170,7 +13230,7 @@ "source_location": "L143", "_origin": "ast", "id": "app_crud_crm_contract_first_non_blank", - "community": 44, + "community": 29, "norm_label": "_first_non_blank()" }, { @@ -13180,7 +13240,7 @@ "source_location": "L151", "_origin": "ast", "id": "app_crud_crm_contract_get_default_invoice_info", - "community": 44, + "community": 29, "norm_label": "_get_default_invoice_info()" }, { @@ -13190,7 +13250,7 @@ "source_location": "L161", "_origin": "ast", "id": "app_crud_crm_contract_build_customer_address", - "community": 44, + "community": 29, "norm_label": "_build_customer_address()" }, { @@ -13220,7 +13280,7 @@ "source_location": "L256", "_origin": "ast", "id": "app_crud_crm_contract_build_contract_filters", - "community": 37, + "community": 29, "norm_label": "_build_contract_filters()" }, { @@ -13230,7 +13290,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_contract_py_query", - "community": 37, + "community": 29, "norm_label": "query" }, { @@ -13240,7 +13300,7 @@ "source_location": "L434", "_origin": "ast", "id": "app_crud_crm_contract_list_contracts", - "community": 83, + "community": 29, "norm_label": "list_contracts()" }, { @@ -13250,7 +13310,7 @@ "source_location": "L475", "_origin": "ast", "id": "app_crud_crm_contract_get_contract", - "community": 44, + "community": 29, "norm_label": "get_contract()" }, { @@ -13260,7 +13320,7 @@ "source_location": "L580", "_origin": "ast", "id": "app_crud_crm_contract_get_contract_detail", - "community": 0, + "community": 29, "norm_label": "get_contract_detail()" }, { @@ -13270,7 +13330,7 @@ "source_location": "L600", "_origin": "ast", "id": "app_crud_crm_contract_get_contract_row", - "community": 0, + "community": 29, "norm_label": "get_contract_row()" }, { @@ -13280,7 +13340,7 @@ "source_location": "L617", "_origin": "ast", "id": "app_crud_crm_contract_get_supplier_short_name", - "community": 44, + "community": 29, "norm_label": "_get_supplier_short_name()" }, { @@ -13290,7 +13350,7 @@ "source_location": "L630", "_origin": "ast", "id": "app_crud_crm_contract_build_contract_name_from_parties", - "community": 44, + "community": 29, "norm_label": "_build_contract_name_from_parties()" }, { @@ -13310,7 +13370,7 @@ "source_location": "L723", "_origin": "ast", "id": "app_crud_crm_contract_contract_no_exists", - "community": 70, + "community": 29, "norm_label": "contract_no_exists()" }, { @@ -13390,7 +13450,7 @@ "source_location": "L951", "_origin": "ast", "id": "app_crud_crm_contract_is_framework_contract_type", - "community": 37, + "community": 29, "norm_label": "is_framework_contract_type()" }, { @@ -13400,7 +13460,7 @@ "source_location": "L955", "_origin": "ast", "id": "app_crud_crm_contract_validate_contract_type_and_products", - "community": 37, + "community": 29, "norm_label": "_validate_contract_type_and_products()" }, { @@ -13410,7 +13470,7 @@ "source_location": "L963", "_origin": "ast", "id": "app_crud_crm_contract_normalize_framework_contract_data", - "community": 37, + "community": 29, "norm_label": "_normalize_framework_contract_data()" }, { @@ -13420,7 +13480,7 @@ "source_location": "L984", "_origin": "ast", "id": "app_crud_crm_contract_validate_product_prices_by_contract_type", - "community": 37, + "community": 29, "norm_label": "_validate_product_prices_by_contract_type()" }, { @@ -13430,7 +13490,7 @@ "source_location": "L998", "_origin": "ast", "id": "app_crud_crm_contract_validate_sale_purchase_contract_amount", - "community": 37, + "community": 29, "norm_label": "_validate_sale_purchase_contract_amount()" }, { @@ -13440,7 +13500,7 @@ "source_location": "L1007", "_origin": "ast", "id": "app_crud_crm_contract_resolve_contract_product_ids", - "community": 37, + "community": 29, "norm_label": "_resolve_contract_product_ids()" }, { @@ -13450,7 +13510,7 @@ "source_location": "L1025", "_origin": "ast", "id": "app_crud_crm_contract_calc_amount_with_tax", - "community": 44, + "community": 29, "norm_label": "_calc_amount_with_tax()" }, { @@ -13460,7 +13520,7 @@ "source_location": "L1031", "_origin": "ast", "id": "app_crud_crm_contract_apply_contract_entity_fields", - "community": 44, + "community": 29, "norm_label": "_apply_contract_entity_fields()" }, { @@ -13470,7 +13530,7 @@ "source_location": "L1211", "_origin": "ast", "id": "app_crud_crm_contract_create_contract", - "community": 37, + "community": 29, "norm_label": "create_contract()" }, { @@ -13490,7 +13550,7 @@ "source_location": "L1326", "_origin": "ast", "id": "app_crud_crm_contract_update_contract", - "community": 37, + "community": 29, "norm_label": "update_contract()" }, { @@ -13500,7 +13560,7 @@ "source_location": "L1438", "_origin": "ast", "id": "app_crud_crm_contract_soft_delete_contracts", - "community": 0, + "community": 29, "norm_label": "soft_delete_contracts()" }, { @@ -13510,7 +13570,7 @@ "source_location": "L1462", "_origin": "ast", "id": "app_crud_crm_contract_validate_framework_contract_for_submit_approval", - "community": 0, + "community": 29, "norm_label": "validate_framework_contract_for_submit_approval()" }, { @@ -13520,7 +13580,7 @@ "source_location": "L1481", "_origin": "ast", "id": "app_crud_crm_contract_submit_contract_approval", - "community": 0, + "community": 29, "norm_label": "submit_contract_approval()" }, { @@ -13530,7 +13590,7 @@ "source_location": "L1526", "_origin": "ast", "id": "app_crud_crm_contract_batch_submit_contract_approval", - "community": 0, + "community": 29, "norm_label": "batch_submit_contract_approval()" }, { @@ -13540,7 +13600,7 @@ "source_location": "L1556", "_origin": "ast", "id": "app_crud_crm_contract_withdraw_contract_approval", - "community": 0, + "community": 29, "norm_label": "withdraw_contract_approval()" }, { @@ -13550,7 +13610,7 @@ "source_location": "L1583", "_origin": "ast", "id": "app_crud_crm_contract_start_execute", - "community": 0, + "community": 29, "norm_label": "start_execute()" }, { @@ -13560,7 +13620,7 @@ "source_location": "L1606", "_origin": "ast", "id": "app_crud_crm_contract_finish_contract", - "community": 0, + "community": 29, "norm_label": "finish_contract()" }, { @@ -13570,7 +13630,7 @@ "source_location": "L1629", "_origin": "ast", "id": "app_crud_crm_contract_invalid_contract", - "community": 0, + "community": 29, "norm_label": "invalid_contract()" }, { @@ -13580,7 +13640,7 @@ "source_location": "L1657", "_origin": "ast", "id": "app_crud_crm_contract_save_template", - "community": 0, + "community": 29, "norm_label": "save_template()" }, { @@ -13590,7 +13650,7 @@ "source_location": "L1685", "_origin": "ast", "id": "app_crud_crm_contract_get_template", - "community": 0, + "community": 29, "norm_label": "get_template()" }, { @@ -13600,7 +13660,7 @@ "source_location": "L1698", "_origin": "ast", "id": "app_crud_crm_contract_upload_file", - "community": 0, + "community": 29, "norm_label": "upload_file()" }, { @@ -13610,7 +13670,7 @@ "source_location": "L1715", "_origin": "ast", "id": "app_crud_crm_contract_upload_attachments", - "community": 0, + "community": 29, "norm_label": "upload_attachments()" }, { @@ -13620,7 +13680,7 @@ "source_location": "L1740", "_origin": "ast", "id": "app_crud_crm_contract_upload_attachments_with_category", - "community": 0, + "community": 29, "norm_label": "upload_attachments_with_category()" }, { @@ -13630,7 +13690,7 @@ "source_location": "L1771", "_origin": "ast", "id": "app_crud_crm_contract_statistics_overview", - "community": 37, + "community": 29, "norm_label": "statistics_overview()" }, { @@ -13640,7 +13700,7 @@ "source_location": "L1834", "_origin": "ast", "id": "app_crud_crm_contract_statistics_by_status", - "community": 37, + "community": 29, "norm_label": "statistics_by_status()" }, { @@ -13650,7 +13710,7 @@ "source_location": "L1868", "_origin": "ast", "id": "app_crud_crm_contract_statistics_by_type", - "community": 37, + "community": 29, "norm_label": "statistics_by_type()" }, { @@ -13660,7 +13720,7 @@ "source_location": "L1905", "_origin": "ast", "id": "app_crud_crm_contract_contract_period_key", - "community": 37, + "community": 29, "norm_label": "_contract_period_key()" }, { @@ -13670,7 +13730,7 @@ "source_location": "L1914", "_origin": "ast", "id": "app_crud_crm_contract_statistics_trend", - "community": 37, + "community": 29, "norm_label": "statistics_trend()" }, { @@ -13690,7 +13750,7 @@ "source_location": "L1987", "_origin": "ast", "id": "app_crud_crm_contract_quote_products_to_contract_products", - "community": 0, + "community": 29, "norm_label": "_quote_products_to_contract_products()" }, { @@ -13700,7 +13760,7 @@ "source_location": "L2018", "_origin": "ast", "id": "app_crud_crm_contract_create_from_quote", - "community": 0, + "community": 29, "norm_label": "create_from_quote()" }, { @@ -13710,7 +13770,7 @@ "source_location": "L2081", "_origin": "ast", "id": "app_crud_crm_contract_renew_contract", - "community": 0, + "community": 29, "norm_label": "renew_contract()" }, { @@ -13720,7 +13780,7 @@ "source_location": "L2135", "_origin": "ast", "id": "app_crud_crm_contract_export_contracts", - "community": 0, + "community": 29, "norm_label": "export_contracts()" }, { @@ -13790,7 +13850,7 @@ "source_location": "L2305", "_origin": "ast", "id": "app_crud_crm_contract_opportunity_products_to_contract_products", - "community": 37, + "community": 29, "norm_label": "_opportunity_products_to_contract_products()" }, { @@ -13800,7 +13860,7 @@ "source_location": "L2330", "_origin": "ast", "id": "app_crud_crm_contract_create_from_opportunity", - "community": 37, + "community": 29, "norm_label": "create_from_opportunity()" }, { @@ -13810,7 +13870,7 @@ "source_location": "L2383", "_origin": "ast", "id": "app_crud_crm_contract_sign_contract", - "community": 0, + "community": 29, "norm_label": "sign_contract()" }, { @@ -13820,7 +13880,7 @@ "source_location": "L2414", "_origin": "ast", "id": "app_crud_crm_contract_batch_assign_owner", - "community": 0, + "community": 29, "norm_label": "batch_assign_owner()" }, { @@ -13830,7 +13890,7 @@ "source_location": "L2448", "_origin": "ast", "id": "app_crud_crm_contract_download_contract_pdf", - "community": 0, + "community": 29, "norm_label": "download_contract_pdf()" }, { @@ -13850,7 +13910,7 @@ "source_location": "L2497", "_origin": "ast", "id": "app_crud_crm_contract_get_change_row", - "community": 29, + "community": 83, "norm_label": "_get_change_row()" }, { @@ -13890,7 +13950,7 @@ "source_location": "L2613", "_origin": "ast", "id": "app_crud_crm_contract_soft_delete_contract_changes", - "community": 29, + "community": 83, "norm_label": "soft_delete_contract_changes()" }, { @@ -13900,7 +13960,7 @@ "source_location": "L2639", "_origin": "ast", "id": "app_crud_crm_contract_submit_change_approval", - "community": 29, + "community": 83, "norm_label": "submit_change_approval()" }, { @@ -13910,7 +13970,7 @@ "source_location": "L2662", "_origin": "ast", "id": "app_crud_crm_contract_withdraw_change", - "community": 29, + "community": 83, "norm_label": "withdraw_change()" }, { @@ -13920,7 +13980,7 @@ "source_location": "L2675", "_origin": "ast", "id": "app_crud_crm_contract_execute_change", - "community": 29, + "community": 83, "norm_label": "execute_change()" }, { @@ -13960,7 +14020,7 @@ "source_location": "L2810", "_origin": "ast", "id": "app_crud_crm_contract_soft_delete_contract_templates", - "community": 0, + "community": 29, "norm_label": "soft_delete_contract_templates()" }, { @@ -13970,7 +14030,7 @@ "source_location": "L2844", "_origin": "ast", "id": "app_crud_crm_contract_toggle_contract_template_active", - "community": 0, + "community": 29, "norm_label": "toggle_contract_template_active()" }, { @@ -14010,7 +14070,7 @@ "source_location": "L263", "_origin": "ast", "id": "app_crud_crm_contract_rationale_263", - "community": 37, + "community": 29, "norm_label": "java: buildquerywrapper" }, { @@ -14020,7 +14080,7 @@ "source_location": "L643", "_origin": "ast", "id": "app_crud_crm_contract_rationale_643", - "community": 44, + "community": 29, "norm_label": "\u6839\u636e\u4f9b\u9700\u65b9\u9762\u677f\u4e0e\u4e3b\u6570\u636e\u751f\u6210/\u6821\u6b63\u5408\u540c\u540d\u79f0\u3002" }, { @@ -14040,7 +14100,7 @@ "source_location": "L730", "_origin": "ast", "id": "app_crud_crm_contract_rationale_730", - "community": 70, + "community": 29, "norm_label": "\u79df\u6237\u5185\u5408\u540c\u7f16\u53f7\u662f\u5426\u5df2\u5360\u7528(\u542b\u8f6f\u5220,\u4fdd\u8bc1\u5168\u5c40\u552f\u4e00)\u3002" }, { @@ -14100,7 +14160,7 @@ "source_location": "L1446", "_origin": "ast", "id": "app_crud_crm_contract_rationale_1446", - "community": 0, + "community": 29, "norm_label": "java: deletewithvalidbyids \u2014 \u8f6f\u5220\u9664" }, { @@ -14110,7 +14170,7 @@ "source_location": "L1469", "_origin": "ast", "id": "app_crud_crm_contract_rationale_1469", - "community": 0, + "community": 29, "norm_label": "\u6846\u67b6\u5408\u540c\u63d0\u4ea4\u5ba1\u6279\u6821\u9a8c:\u4ec5\u8981\u6c42\u6709\u4ea7\u54c1\u660e\u7ec6;\u8c03\u4ef7\u533a\u95f4\u4e3a\u53ef\u9009,\u4e0d\u5f3a\u5236\u3002" }, { @@ -14120,7 +14180,7 @@ "source_location": "L1537", "_origin": "ast", "id": "app_crud_crm_contract_rationale_1537", - "community": 0, + "community": 29, "norm_label": "java: batchsubmitapproval" }, { @@ -14130,7 +14190,7 @@ "source_location": "L1565", "_origin": "ast", "id": "app_crud_crm_contract_rationale_1565", - "community": 0, + "community": 29, "norm_label": "java: withdrawapproval" }, { @@ -14140,7 +14200,7 @@ "source_location": "L1748", "_origin": "ast", "id": "app_crud_crm_contract_rationale_1748", - "community": 0, + "community": 29, "norm_label": "\u6309\u5165\u53c2\u6574\u8868\u8986\u76d6\u5408\u540c\u626b\u63cf\u4ef6;attachments=[] \u8868\u793a\u6e05\u7a7a\u3002" }, { @@ -14150,7 +14210,7 @@ "source_location": "L2028", "_origin": "ast", "id": "app_crud_crm_contract_rationale_2028", - "community": 0, + "community": 29, "norm_label": "java: createfromquote \u2014 \u8fd4\u56de\u5408\u540c id" }, { @@ -14160,7 +14220,7 @@ "source_location": "L2091", "_origin": "ast", "id": "app_crud_crm_contract_rationale_2091", - "community": 0, + "community": 29, "norm_label": "java: renewcontract \u2014 \u57fa\u7840\u7eed\u7b7e" }, { @@ -14170,7 +14230,7 @@ "source_location": "L2142", "_origin": "ast", "id": "app_crud_crm_contract_rationale_2142", - "community": 0, + "community": 29, "norm_label": "java: querylist for export" }, { @@ -14180,7 +14240,7 @@ "source_location": "L2340", "_origin": "ast", "id": "app_crud_crm_contract_rationale_2340", - "community": 37, + "community": 29, "norm_label": "java: createfromopportunity \u2014 \u8fd4\u56de\u5408\u540c id" }, { @@ -14190,7 +14250,7 @@ "source_location": "L2424", "_origin": "ast", "id": "app_crud_crm_contract_rationale_2424", - "community": 0, + "community": 29, "norm_label": "java: batchassignowner" }, { @@ -14200,7 +14260,7 @@ "source_location": "L2455", "_origin": "ast", "id": "app_crud_crm_contract_rationale_2455", - "community": 0, + "community": 29, "norm_label": "java: downloadcontractpdf \u2014 \u8fd4\u56de\u5408\u540c\u6587\u4ef6 url/\u8def\u5f84" }, { @@ -14220,7 +14280,7 @@ "source_location": "L2648", "_origin": "ast", "id": "app_crud_crm_contract_rationale_2648", - "community": 29, + "community": 83, "norm_label": "java controller todo \u2014 \u4fdd\u6301 pending,\u8bb0\u5f55\u5907\u6ce8" }, { @@ -15030,7 +15090,7 @@ "source_location": "L417", "_origin": "ast", "id": "app_crud_crm_customer_customer_name_exists", - "community": 7, + "community": 6, "norm_label": "customer_name_exists()" }, { @@ -15310,7 +15370,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_crm_customer_pool", - "community": 55, + "community": 109, "norm_label": "customer_pool.py" }, { @@ -15320,7 +15380,7 @@ "source_location": "L17", "_origin": "ast", "id": "app_crud_crm_customer_pool_total_pages", - "community": 55, + "community": 109, "norm_label": "total_pages()" }, { @@ -15330,7 +15390,7 @@ "source_location": "L23", "_origin": "ast", "id": "app_crud_crm_customer_pool_row_to_dict", - "community": 55, + "community": 109, "norm_label": "_row_to_dict()" }, { @@ -15340,7 +15400,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_customer_pool_py_any", - "community": 55, + "community": 109, "norm_label": "any" }, { @@ -15360,7 +15420,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_customer_pool_py_session", - "community": 55, + "community": 109, "norm_label": "session" }, { @@ -15370,7 +15430,7 @@ "source_location": "L82", "_origin": "ast", "id": "app_crud_crm_customer_pool_list_pool_records", - "community": 55, + "community": 109, "norm_label": "list_pool_records()" }, { @@ -15380,7 +15440,7 @@ "source_location": "L119", "_origin": "ast", "id": "app_crud_crm_customer_pool_get_pool_record", - "community": 55, + "community": 109, "norm_label": "get_pool_record()" }, { @@ -15420,7 +15480,7 @@ "source_location": "L25", "_origin": "ast", "id": "app_crud_crm_data_scope_helpers_apply_crm_owner_scope", - "community": 37, + "community": 29, "norm_label": "apply_crm_owner_scope()" }, { @@ -15440,7 +15500,7 @@ "source_location": "L33", "_origin": "ast", "id": "app_crud_crm_data_scope_helpers_apply_crm_create_by_scope", - "community": 33, + "community": 60, "norm_label": "apply_crm_create_by_scope()" }, { @@ -15460,7 +15520,7 @@ "source_location": "L48", "_origin": "ast", "id": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", - "community": 55, + "community": 99, "norm_label": "ensure_crm_create_by_row_in_scope()" }, { @@ -16380,7 +16440,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_crm_pool_rule", - "community": 55, + "community": 99, "norm_label": "pool_rule.py" }, { @@ -16390,7 +16450,7 @@ "source_location": "L25", "_origin": "ast", "id": "app_crud_crm_pool_rule_total_pages", - "community": 55, + "community": 99, "norm_label": "total_pages()" }, { @@ -16400,7 +16460,7 @@ "source_location": "L31", "_origin": "ast", "id": "app_crud_crm_pool_rule_row_to_dict", - "community": 55, + "community": 99, "norm_label": "_row_to_dict()" }, { @@ -16410,7 +16470,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_pool_rule_py_any", - "community": 55, + "community": 99, "norm_label": "any" }, { @@ -16420,7 +16480,7 @@ "source_location": "L48", "_origin": "ast", "id": "app_crud_crm_pool_rule_list_pool_rules", - "community": 55, + "community": 99, "norm_label": "list_pool_rules()" }, { @@ -16430,7 +16490,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_pool_rule_py_session", - "community": 55, + "community": 99, "norm_label": "session" }, { @@ -16440,7 +16500,7 @@ "source_location": "L81", "_origin": "ast", "id": "app_crud_crm_pool_rule_get_pool_rule", - "community": 55, + "community": 99, "norm_label": "get_pool_rule()" }, { @@ -16450,7 +16510,7 @@ "source_location": "L93", "_origin": "ast", "id": "app_crud_crm_pool_rule_create_pool_rule", - "community": 55, + "community": 99, "norm_label": "create_pool_rule()" }, { @@ -16460,7 +16520,7 @@ "source_location": "L125", "_origin": "ast", "id": "app_crud_crm_pool_rule_update_pool_rule", - "community": 55, + "community": 99, "norm_label": "update_pool_rule()" }, { @@ -16470,7 +16530,7 @@ "source_location": "L165", "_origin": "ast", "id": "app_crud_crm_pool_rule_delete_pool_rules", - "community": 55, + "community": 99, "norm_label": "delete_pool_rules()" }, { @@ -16480,7 +16540,7 @@ "source_location": "L184", "_origin": "ast", "id": "app_crud_crm_pool_rule_update_pool_rule_status", - "community": 55, + "community": 99, "norm_label": "update_pool_rule_status()" }, { @@ -16490,7 +16550,7 @@ "source_location": "L204", "_origin": "ast", "id": "app_crud_crm_pool_rule_execute_pool_rules", - "community": 7, + "community": 99, "norm_label": "execute_pool_rules()" }, { @@ -16500,7 +16560,7 @@ "source_location": "L231", "_origin": "ast", "id": "app_crud_crm_pool_rule_execute_single_rule", - "community": 55, + "community": 99, "norm_label": "_execute_single_rule()" }, { @@ -16510,7 +16570,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_crm_pool_rule_rationale_1", - "community": 55, + "community": 99, "norm_label": "crm \u516c\u6d77\u6c60\u89c4\u5219 crud + \u89c4\u5219\u6267\u884c\u903b\u8f91" }, { @@ -16680,7 +16740,7 @@ "source_location": "L43", "_origin": "ast", "id": "app_crud_crm_product_category_row_to_dict", - "community": 50, + "community": 108, "norm_label": "_category_row_to_dict()" }, { @@ -16690,7 +16750,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_product_py_any", - "community": 50, + "community": 108, "norm_label": "any" }, { @@ -16700,7 +16760,7 @@ "source_location": "L59", "_origin": "ast", "id": "app_crud_crm_product_list_categories", - "community": 50, + "community": 108, "norm_label": "list_categories()" }, { @@ -16720,7 +16780,7 @@ "source_location": "L86", "_origin": "ast", "id": "app_crud_crm_product_build_category_tree", - "community": 50, + "community": 108, "norm_label": "_build_category_tree()" }, { @@ -16730,7 +16790,7 @@ "source_location": "L97", "_origin": "ast", "id": "app_crud_crm_product_collect_category_with_ancestors", - "community": 50, + "community": 108, "norm_label": "_collect_category_with_ancestors()" }, { @@ -16740,7 +16800,7 @@ "source_location": "L113", "_origin": "ast", "id": "app_crud_crm_product_list_category_tree", - "community": 50, + "community": 108, "norm_label": "list_category_tree()" }, { @@ -16800,7 +16860,7 @@ "source_location": "L294", "_origin": "ast", "id": "app_crud_crm_product_brand_row_to_dict", - "community": 50, + "community": 108, "norm_label": "_brand_row_to_dict()" }, { @@ -16810,7 +16870,7 @@ "source_location": "L303", "_origin": "ast", "id": "app_crud_crm_product_alias_row_to_dict", - "community": 50, + "community": 108, "norm_label": "_alias_row_to_dict()" }, { @@ -16820,7 +16880,7 @@ "source_location": "L311", "_origin": "ast", "id": "app_crud_crm_product_load_brands_aliases_maps", - "community": 50, + "community": 108, "norm_label": "_load_brands_aliases_maps()" }, { @@ -16860,7 +16920,7 @@ "source_location": "L514", "_origin": "ast", "id": "app_crud_crm_product_product_row_to_dict", - "community": 50, + "community": 108, "norm_label": "_product_row_to_dict()" }, { @@ -16870,7 +16930,7 @@ "source_location": "L553", "_origin": "ast", "id": "app_crud_crm_product_product_to_dict", - "community": 50, + "community": 108, "norm_label": "product_to_dict()" }, { @@ -16880,14 +16940,14 @@ "source_location": "L563", "_origin": "ast", "id": "app_crud_crm_product_list_products", - "community": 86, + "community": 108, "norm_label": "list_products()" }, { "label": "get_product()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L644", + "source_location": "L651", "_origin": "ast", "id": "app_crud_crm_product_get_product", "community": 21, @@ -16897,17 +16957,17 @@ "label": "get_product_by_no()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L656", + "source_location": "L663", "_origin": "ast", "id": "app_crud_crm_product_get_product_by_no", - "community": 50, + "community": 21, "norm_label": "get_product_by_no()" }, { "label": "_max_sxwl_product_seq()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L675", + "source_location": "L682", "_origin": "ast", "id": "app_crud_crm_product_max_sxwl_product_seq", "community": 21, @@ -16917,7 +16977,7 @@ "label": "generate_product_no()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L696", + "source_location": "L703", "_origin": "ast", "id": "app_crud_crm_product_generate_product_no", "community": 21, @@ -16927,7 +16987,7 @@ "label": "generate_barcode()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L709", + "source_location": "L716", "_origin": "ast", "id": "app_crud_crm_product_generate_barcode", "community": 21, @@ -16937,7 +16997,7 @@ "label": "create_product()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L737", + "source_location": "L744", "_origin": "ast", "id": "app_crud_crm_product_create_product", "community": 21, @@ -16947,7 +17007,7 @@ "label": "update_product()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L822", + "source_location": "L829", "_origin": "ast", "id": "app_crud_crm_product_update_product", "community": 21, @@ -16957,7 +17017,7 @@ "label": "soft_delete_product()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L918", + "source_location": "L925", "_origin": "ast", "id": "app_crud_crm_product_soft_delete_product", "community": 21, @@ -16967,7 +17027,7 @@ "label": "product_no_exists()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L931", + "source_location": "L938", "_origin": "ast", "id": "app_crud_crm_product_product_no_exists", "community": 21, @@ -16977,7 +17037,7 @@ "label": "barcode_exists()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L948", + "source_location": "L955", "_origin": "ast", "id": "app_crud_crm_product_barcode_exists", "community": 21, @@ -16987,47 +17047,47 @@ "label": "list_product_options()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L965", + "source_location": "L972", "_origin": "ast", "id": "app_crud_crm_product_list_product_options", - "community": 88, + "community": 131, "norm_label": "list_product_options()" }, { "label": "_oss_row_to_dict()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L1018", + "source_location": "L1025", "_origin": "ast", "id": "app_crud_crm_product_oss_row_to_dict", - "community": 50, + "community": 108, "norm_label": "_oss_row_to_dict()" }, { "label": "list_oss_by_biz()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L1036", + "source_location": "L1043", "_origin": "ast", "id": "app_crud_crm_product_list_oss_by_biz", - "community": 50, + "community": 108, "norm_label": "list_oss_by_biz()" }, { "label": "create_oss()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L1052", + "source_location": "L1059", "_origin": "ast", "id": "app_crud_crm_product_create_oss", - "community": 72, + "community": 21, "norm_label": "create_oss()" }, { "label": "soft_delete_oss()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L1084", + "source_location": "L1091", "_origin": "ast", "id": "app_crud_crm_product_soft_delete_oss", "community": 21, @@ -17037,7 +17097,7 @@ "label": "_normalize_text()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L1095", + "source_location": "L1102", "_origin": "ast", "id": "app_crud_crm_product_normalize_text", "community": 21, @@ -17047,7 +17107,7 @@ "label": "_get_quote_item_field()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L1102", + "source_location": "L1109", "_origin": "ast", "id": "app_crud_crm_product_get_quote_item_field", "community": 21, @@ -17057,7 +17117,7 @@ "label": "generate_auto_product_no()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L1109", + "source_location": "L1116", "_origin": "ast", "id": "app_crud_crm_product_generate_auto_product_no", "community": 21, @@ -17067,7 +17127,7 @@ "label": "resolve_product_id_for_quote_item()", "file_type": "code", "source_file": "app/crud/crm/product.py", - "source_location": "L1114", + "source_location": "L1121", "_origin": "ast", "id": "app_crud_crm_product_resolve_product_id_for_quote_item", "community": 21, @@ -17090,7 +17150,7 @@ "source_location": "L44", "_origin": "ast", "id": "app_crud_crm_product_rationale_44", - "community": 50, + "community": 108, "norm_label": "\u5206\u7c7b orm \u5bf9\u8c61\u8f6c dict(camelcase \u952e\u540d)" }, { @@ -17100,7 +17160,7 @@ "source_location": "L67", "_origin": "ast", "id": "app_crud_crm_product_rationale_67", - "community": 50, + "community": 108, "norm_label": "\u83b7\u53d6\u5206\u7c7b(\u6241\u5e73\u5217\u8868,\u652f\u6301\u540d\u79f0\u6a21\u7cca\u4e0e\u72b6\u6001\u7b5b\u9009)" }, { @@ -17110,7 +17170,7 @@ "source_location": "L89", "_origin": "ast", "id": "app_crud_crm_product_rationale_89", - "community": 50, + "community": 108, "norm_label": "\u6309 parentid \u5c06\u6241\u5e73\u5206\u7c7b\u5217\u8868\u7ec4\u88c5\u4e3a\u5d4c\u5957\u6811" }, { @@ -17120,7 +17180,7 @@ "source_location": "L100", "_origin": "ast", "id": "app_crud_crm_product_rationale_100", - "community": 50, + "community": 108, "norm_label": "\u4fdd\u7559\u5339\u914d\u8282\u70b9\u53ca\u5176\u5168\u90e8\u4e0a\u7ea7,\u4f9b\u68c0\u7d22\u540e\u4ecd\u80fd\u6b63\u786e\u7ec4\u6811\u3002" }, { @@ -17130,7 +17190,7 @@ "source_location": "L121", "_origin": "ast", "id": "app_crud_crm_product_rationale_121", - "community": 50, + "community": 108, "norm_label": "\u83b7\u53d6\u4ea7\u54c1\u5206\u7c7b\u6811(\u5d4c\u5957 children,\u4f9b\u6811\u5f62\u8868\u683c/\u6811\u9009\u62e9\u5668\u4f7f\u7528)" }, { @@ -17140,16 +17200,26 @@ "source_location": "L520", "_origin": "ast", "id": "app_crud_crm_product_rationale_520", - "community": 50, + "community": 108, "norm_label": "\u4ea7\u54c1 orm \u5bf9\u8c61\u8f6c dict(camelcase \u952e\u540d)" }, + { + "label": "\u5206\u9875\u67e5\u8be2\u4ea7\u54c1\u5217\u8868 keyword \u9ed8\u8ba4\u5339\u914d\uff1a\u540d\u79f0 / \u7f16\u53f7 / \u62fc\u97f3\u9996\u5b57\u6bcd\u3002 \u9009\u62e9\u5668\u573a\u666f\u53ef\u5173\u95ed\u7f16\u53f7\u5339\u914d\u3001\u5f00\u542f\u89c4\u683c\u578b\u53f7\u5339\u914d\uff08\u907f\u514d\u77ed\u6570\u5b57\u8bef\u547d\u4e2d\u4ea7\u54c1", + "file_type": "rationale", + "source_file": "app/crud/crm/product.py", + "source_location": "L577", + "_origin": "ast", + "id": "app_crud_crm_product_rationale_577", + "community": 108, + "norm_label": "\u5206\u9875\u67e5\u8be2\u4ea7\u54c1\u5217\u8868 keyword \u9ed8\u8ba4\u5339\u914d:\u540d\u79f0 / \u7f16\u53f7 / \u62fc\u97f3\u9996\u5b57\u6bcd\u3002 \u9009\u62e9\u5668\u573a\u666f\u53ef\u5173\u95ed\u7f16\u53f7\u5339\u914d\u3001\u5f00\u542f\u89c4\u683c\u578b\u53f7\u5339\u914d(\u907f\u514d\u77ed\u6570\u5b57\u8bef\u547d\u4e2d\u4ea7\u54c1" + }, { "label": "\u53d6\u5f53\u524d\u79df\u6237\u4e0b SXWL \u524d\u7f00\u4e14\u540e\u7f00\u4e3a\u7eaf\u6570\u5b57\u7684\u4ea7\u54c1\u7f16\u53f7\u6700\u5927\u6d41\u6c34\u503c", "file_type": "rationale", "source_file": "app/crud/crm/product.py", - "source_location": "L676", + "source_location": "L683", "_origin": "ast", - "id": "app_crud_crm_product_rationale_676", + "id": "app_crud_crm_product_rationale_683", "community": 21, "norm_label": "\u53d6\u5f53\u524d\u79df\u6237\u4e0b sxwl \u524d\u7f00\u4e14\u540e\u7f00\u4e3a\u7eaf\u6570\u5b57\u7684\u4ea7\u54c1\u7f16\u53f7\u6700\u5927\u6d41\u6c34\u503c" }, @@ -17157,9 +17227,9 @@ "label": "\u751f\u6210\u4ea7\u54c1\u7f16\u53f7\uff08\u683c\u5f0f\uff1aSXWL + 6\u4f4d\u9012\u589e\u6d41\u6c34\u53f7\uff0c\u5982 SXWL000001\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", - "source_location": "L697", + "source_location": "L704", "_origin": "ast", - "id": "app_crud_crm_product_rationale_697", + "id": "app_crud_crm_product_rationale_704", "community": 21, "norm_label": "\u751f\u6210\u4ea7\u54c1\u7f16\u53f7(\u683c\u5f0f:sxwl + 6\u4f4d\u9012\u589e\u6d41\u6c34\u53f7,\u5982 sxwl000001)" }, @@ -17167,9 +17237,9 @@ "label": "\u751f\u6210\u552f\u4e00\u6761\u7801\uff08\u7eaf\u6570\u5b57\uff1ayyyyMMdd + 6\u4f4d\u5e8f\u53f7\uff0c\u5982 20260606000001\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", - "source_location": "L710", + "source_location": "L717", "_origin": "ast", - "id": "app_crud_crm_product_rationale_710", + "id": "app_crud_crm_product_rationale_717", "community": 21, "norm_label": "\u751f\u6210\u552f\u4e00\u6761\u7801(\u7eaf\u6570\u5b57:yyyymmdd + 6\u4f4d\u5e8f\u53f7,\u5982 20260606000001)" }, @@ -17177,9 +17247,9 @@ "label": "\u62a5\u4ef7\u81ea\u52a8\u5efa\u6863\u65f6\u751f\u6210\u4ea7\u54c1\u7f16\u53f7\uff08\u4e0e\u4ea7\u54c1\u7ba1\u7406\u65b0\u589e\u89c4\u5219\u4e00\u81f4\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", - "source_location": "L1110", + "source_location": "L1117", "_origin": "ast", - "id": "app_crud_crm_product_rationale_1110", + "id": "app_crud_crm_product_rationale_1117", "community": 21, "norm_label": "\u62a5\u4ef7\u81ea\u52a8\u5efa\u6863\u65f6\u751f\u6210\u4ea7\u54c1\u7f16\u53f7(\u4e0e\u4ea7\u54c1\u7ba1\u7406\u65b0\u589e\u89c4\u5219\u4e00\u81f4)" }, @@ -17187,9 +17257,9 @@ "label": "Java: resolveProductIdForQuoteItem\uff08CrmProduct \u65e0 tax_rate\uff0c\u8df3\u8fc7\u7a0e\u7387\u5339\u914d\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", - "source_location": "L1121", + "source_location": "L1128", "_origin": "ast", - "id": "app_crud_crm_product_rationale_1121", + "id": "app_crud_crm_product_rationale_1128", "community": 21, "norm_label": "java: resolveproductidforquoteitem(crmproduct \u65e0 tax_rate,\u8df3\u8fc7\u7a0e\u7387\u5339\u914d)" }, @@ -17220,7 +17290,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_quote_py_session", - "community": 20, + "community": 8, "norm_label": "session" }, { @@ -17230,7 +17300,7 @@ "source_location": "L47", "_origin": "ast", "id": "app_crud_crm_quote_get_quote_in_scope", - "community": 20, + "community": 8, "norm_label": "_get_quote_in_scope()" }, { @@ -17240,7 +17310,7 @@ "source_location": "L61", "_origin": "ast", "id": "app_crud_crm_quote_total_pages", - "community": 20, + "community": 8, "norm_label": "total_pages()" }, { @@ -17260,7 +17330,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_quote_py_any", - "community": 8, + "community": 56, "norm_label": "any" }, { @@ -17300,7 +17370,7 @@ "source_location": "L93", "_origin": "ast", "id": "app_crud_crm_quote_parse_optional_datetime", - "community": 8, + "community": 56, "norm_label": "_parse_optional_datetime()" }, { @@ -17310,7 +17380,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_quote_py_datetime", - "community": 8, + "community": 56, "norm_label": "datetime" }, { @@ -17340,7 +17410,7 @@ "source_location": "L126", "_origin": "ast", "id": "app_crud_crm_quote_row_to_dict", - "community": 8, + "community": 56, "norm_label": "_row_to_dict()" }, { @@ -17350,7 +17420,7 @@ "source_location": "L178", "_origin": "ast", "id": "app_crud_crm_quote_quote_row_to_dict", - "community": 8, + "community": 56, "norm_label": "quote_row_to_dict()" }, { @@ -17360,7 +17430,7 @@ "source_location": "L182", "_origin": "ast", "id": "app_crud_crm_quote_build_quote_filters", - "community": 8, + "community": 56, "norm_label": "_build_quote_filters()" }, { @@ -17370,7 +17440,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_quote_py_query", - "community": 8, + "community": 56, "norm_label": "query" }, { @@ -17380,7 +17450,7 @@ "source_location": "L339", "_origin": "ast", "id": "app_crud_crm_quote_fill_contract_linked_count", - "community": 8, + "community": 56, "norm_label": "_fill_contract_linked_count()" }, { @@ -17480,7 +17550,7 @@ "source_location": "L559", "_origin": "ast", "id": "app_crud_crm_quote_list_quotes", - "community": 8, + "community": 56, "norm_label": "list_quotes()" }, { @@ -17520,7 +17590,7 @@ "source_location": "L866", "_origin": "ast", "id": "app_crud_crm_quote_soft_delete_quotes", - "community": 20, + "community": 8, "norm_label": "soft_delete_quotes()" }, { @@ -17530,7 +17600,7 @@ "source_location": "L893", "_origin": "ast", "id": "app_crud_crm_quote_submit_quote", - "community": 20, + "community": 8, "norm_label": "submit_quote()" }, { @@ -17540,7 +17610,7 @@ "source_location": "L939", "_origin": "ast", "id": "app_crud_crm_quote_save_template", - "community": 20, + "community": 8, "norm_label": "save_template()" }, { @@ -17550,7 +17620,7 @@ "source_location": "L957", "_origin": "ast", "id": "app_crud_crm_quote_get_template", - "community": 20, + "community": 8, "norm_label": "get_template()" }, { @@ -17560,7 +17630,7 @@ "source_location": "L971", "_origin": "ast", "id": "app_crud_crm_quote_generate_pdf", - "community": 20, + "community": 8, "norm_label": "generate_pdf()" }, { @@ -17570,7 +17640,7 @@ "source_location": "L991", "_origin": "ast", "id": "app_crud_crm_quote_generate_share", - "community": 20, + "community": 8, "norm_label": "generate_share()" }, { @@ -17580,7 +17650,7 @@ "source_location": "L1020", "_origin": "ast", "id": "app_crud_crm_quote_view_by_share_code", - "community": 8, + "community": 56, "norm_label": "view_by_share_code()" }, { @@ -17590,7 +17660,7 @@ "source_location": "L1072", "_origin": "ast", "id": "app_crud_crm_quote_accept_quote", - "community": 20, + "community": 8, "norm_label": "accept_quote()" }, { @@ -17600,7 +17670,7 @@ "source_location": "L1092", "_origin": "ast", "id": "app_crud_crm_quote_reject_quote", - "community": 20, + "community": 8, "norm_label": "reject_quote()" }, { @@ -17630,7 +17700,7 @@ "source_location": "L1262", "_origin": "ast", "id": "app_crud_crm_quote_query_versions", - "community": 8, + "community": 56, "norm_label": "query_versions()" }, { @@ -17640,7 +17710,7 @@ "source_location": "L1283", "_origin": "ast", "id": "app_crud_crm_quote_withdraw_quote_approval", - "community": 20, + "community": 8, "norm_label": "withdraw_quote_approval()" }, { @@ -17650,7 +17720,7 @@ "source_location": "L1310", "_origin": "ast", "id": "app_crud_crm_quote_invalid_quote", - "community": 20, + "community": 8, "norm_label": "invalid_quote()" }, { @@ -17670,7 +17740,7 @@ "source_location": "L1393", "_origin": "ast", "id": "app_crud_crm_quote_statistics_status", - "community": 20, + "community": 8, "norm_label": "statistics_status()" }, { @@ -17680,7 +17750,7 @@ "source_location": "L1426", "_origin": "ast", "id": "app_crud_crm_quote_period_key", - "community": 8, + "community": 56, "norm_label": "_period_key()" }, { @@ -17690,7 +17760,7 @@ "source_location": "L1435", "_origin": "ast", "id": "app_crud_crm_quote_statistics_trend", - "community": 8, + "community": 56, "norm_label": "statistics_trend()" }, { @@ -17710,7 +17780,7 @@ "source_location": "L127", "_origin": "ast", "id": "app_crud_crm_quote_rationale_127", - "community": 8, + "community": 56, "norm_label": "orm \u2192 camelcase(\u5355\u70b9\u771f\u76f8)" }, { @@ -17720,7 +17790,7 @@ "source_location": "L189", "_origin": "ast", "id": "app_crud_crm_quote_rationale_189", - "community": 8, + "community": 56, "norm_label": "java: buildquerywrapper" }, { @@ -17730,7 +17800,7 @@ "source_location": "L340", "_origin": "ast", "id": "app_crud_crm_quote_rationale_340", - "community": 8, + "community": 56, "norm_label": "java: fillcontractlinkedcount" }, { @@ -17770,7 +17840,7 @@ "source_location": "L874", "_origin": "ast", "id": "app_crud_crm_quote_rationale_874", - "community": 20, + "community": 8, "norm_label": "java: deletewithvalidbyids" }, { @@ -17780,7 +17850,7 @@ "source_location": "L1028", "_origin": "ast", "id": "app_crud_crm_quote_rationale_1028", - "community": 8, + "community": 56, "norm_label": "java: viewbysharecode" }, { @@ -17810,7 +17880,7 @@ "source_location": "L1292", "_origin": "ast", "id": "app_crud_crm_quote_rationale_1292", - "community": 20, + "community": 8, "norm_label": "java: crmquoteserviceimpl.withdrawapproval(\u6821\u9a8c\u521b\u5efa\u4eba)" }, { @@ -17830,7 +17900,7 @@ "source_location": "L1398", "_origin": "ast", "id": "app_crud_crm_quote_rationale_1398", - "community": 20, + "community": 8, "norm_label": "java: statisticsstatus" }, { @@ -17840,7 +17910,7 @@ "source_location": "L1444", "_origin": "ast", "id": "app_crud_crm_quote_rationale_1444", - "community": 8, + "community": 56, "norm_label": "java: statisticstrend" }, { @@ -18310,7 +18380,7 @@ "source_location": "L132", "_origin": "ast", "id": "app_crud_crm_quote_product_list_quote_products", - "community": 8, + "community": 116, "norm_label": "list_quote_products()" }, { @@ -18370,7 +18440,7 @@ "source_location": "L369", "_origin": "ast", "id": "app_crud_crm_quote_product_batch_insert_quote_products", - "community": 8, + "community": 116, "norm_label": "batch_insert_quote_products()" }, { @@ -18420,7 +18490,7 @@ "source_location": "L139", "_origin": "ast", "id": "app_crud_crm_quote_product_rationale_139", - "community": 8, + "community": 116, "norm_label": "java: querylistbyquoteid" }, { @@ -18580,7 +18650,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_crm_statistics", - "community": 108, + "community": 112, "norm_label": "statistics.py" }, { @@ -18590,7 +18660,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_crud_crm_statistics_customer_base_query", - "community": 108, + "community": 112, "norm_label": "_customer_base_query()" }, { @@ -18600,7 +18670,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_statistics_py_session", - "community": 108, + "community": 112, "norm_label": "session" }, { @@ -18610,7 +18680,7 @@ "source_location": "L24", "_origin": "ast", "id": "app_crud_crm_statistics_get_overview_statistics", - "community": 108, + "community": 112, "norm_label": "get_overview_statistics()" }, { @@ -18620,7 +18690,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_statistics_py_any", - "community": 108, + "community": 112, "norm_label": "any" }, { @@ -18630,7 +18700,7 @@ "source_location": "L46", "_origin": "ast", "id": "app_crud_crm_statistics_get_source_statistics", - "community": 108, + "community": 112, "norm_label": "get_source_statistics()" }, { @@ -18640,7 +18710,7 @@ "source_location": "L59", "_origin": "ast", "id": "app_crud_crm_statistics_get_level_statistics", - "community": 108, + "community": 112, "norm_label": "get_level_statistics()" }, { @@ -18650,7 +18720,7 @@ "source_location": "L72", "_origin": "ast", "id": "app_crud_crm_statistics_get_industry_statistics", - "community": 108, + "community": 112, "norm_label": "get_industry_statistics()" }, { @@ -18660,7 +18730,7 @@ "source_location": "L85", "_origin": "ast", "id": "app_crud_crm_statistics_get_trend_statistics", - "community": 108, + "community": 112, "norm_label": "get_trend_statistics()" }, { @@ -18670,7 +18740,7 @@ "source_location": "L108", "_origin": "ast", "id": "app_crud_crm_statistics_get_owner_statistics", - "community": 108, + "community": 112, "norm_label": "get_owner_statistics()" }, { @@ -18680,7 +18750,7 @@ "source_location": "L124", "_origin": "ast", "id": "app_crud_crm_statistics_get_follow_statistics", - "community": 108, + "community": 112, "norm_label": "get_follow_statistics()" }, { @@ -18690,7 +18760,7 @@ "source_location": "L27", "_origin": "ast", "id": "app_crud_crm_statistics_rationale_27", - "community": 108, + "community": 112, "norm_label": "\u5ba2\u6237\u7edf\u8ba1\u6982\u89c8:\u5ba2\u6237\u603b\u6570\u3001\u516c\u6d77\u6c60\u6570\u3001\u672c\u6708\u65b0\u589e\u3001\u6210\u4ea4\u6570" }, { @@ -18700,7 +18770,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_crm_supplier_info", - "community": 33, + "community": 60, "norm_label": "supplier_info.py" }, { @@ -18710,7 +18780,7 @@ "source_location": "L38", "_origin": "ast", "id": "app_crud_crm_supplier_info_total_pages", - "community": 33, + "community": 60, "norm_label": "total_pages()" }, { @@ -18720,7 +18790,7 @@ "source_location": "L44", "_origin": "ast", "id": "app_crud_crm_supplier_info_row_to_dict", - "community": 33, + "community": 60, "norm_label": "_row_to_dict()" }, { @@ -18730,7 +18800,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_supplier_info_py_any", - "community": 33, + "community": 60, "norm_label": "any" }, { @@ -18740,7 +18810,7 @@ "source_location": "L69", "_origin": "ast", "id": "app_crud_crm_supplier_info_apply_list_filters", - "community": 33, + "community": 60, "norm_label": "_apply_list_filters()" }, { @@ -18750,7 +18820,7 @@ "source_location": "L78", "_origin": "ast", "id": "app_crud_crm_supplier_info_list_supplier_info", - "community": 33, + "community": 60, "norm_label": "list_supplier_info()" }, { @@ -18760,7 +18830,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_supplier_info_py_session", - "community": 44, + "community": 60, "norm_label": "session" }, { @@ -18770,7 +18840,7 @@ "source_location": "L106", "_origin": "ast", "id": "app_crud_crm_supplier_info_list_all_supplier_info", - "community": 33, + "community": 60, "norm_label": "list_all_supplier_info()" }, { @@ -18780,7 +18850,7 @@ "source_location": "L126", "_origin": "ast", "id": "app_crud_crm_supplier_info_get_supplier_info", - "community": 44, + "community": 8, "norm_label": "get_supplier_info()" }, { @@ -18790,7 +18860,7 @@ "source_location": "L142", "_origin": "ast", "id": "app_crud_crm_supplier_info_create_supplier_info", - "community": 33, + "community": 60, "norm_label": "create_supplier_info()" }, { @@ -18800,7 +18870,7 @@ "source_location": "L182", "_origin": "ast", "id": "app_crud_crm_supplier_info_update_supplier_info", - "community": 44, + "community": 60, "norm_label": "update_supplier_info()" }, { @@ -18810,7 +18880,7 @@ "source_location": "L218", "_origin": "ast", "id": "app_crud_crm_supplier_info_soft_delete_supplier_info", - "community": 44, + "community": 60, "norm_label": "soft_delete_supplier_info()" }, { @@ -18820,7 +18890,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_crm_supplier_info_rationale_1", - "community": 33, + "community": 60, "norm_label": "crm \u4f9b\u65b9\u4fe1\u606f crud \u2014 \u5bf9\u7167 crmsupplierinfoserviceimpl.java" }, { @@ -18830,7 +18900,7 @@ "source_location": "L45", "_origin": "ast", "id": "app_crud_crm_supplier_info_rationale_45", - "community": 33, + "community": 60, "norm_label": "orm \u2192 camelcase(\u5355\u70b9\u771f\u76f8)" }, { @@ -18840,7 +18910,7 @@ "source_location": "L70", "_origin": "ast", "id": "app_crud_crm_supplier_info_rationale_70", - "community": 33, + "community": 60, "norm_label": "java: buildquerywrapper" }, { @@ -18850,7 +18920,7 @@ "source_location": "L114", "_origin": "ast", "id": "app_crud_crm_supplier_info_rationale_114", - "community": 33, + "community": 60, "norm_label": "java: querylist(\u4e0d\u5206\u9875,\u62a5\u4ef7\u5355\u4e0b\u62c9)" }, { @@ -18860,7 +18930,7 @@ "source_location": "L226", "_origin": "ast", "id": "app_crud_crm_supplier_info_rationale_226", - "community": 44, + "community": 60, "norm_label": "java: deletewithvalidbyids(\u95e8\u6237\u8f6f\u5220)" }, { @@ -19260,7 +19330,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_ethnic", - "community": 101, + "community": 103, "norm_label": "ethnic.py" }, { @@ -19270,7 +19340,7 @@ "source_location": "L9", "_origin": "ast", "id": "app_crud_ethnic_row_to_dict", - "community": 101, + "community": 103, "norm_label": "_row_to_dict()" }, { @@ -19280,7 +19350,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_ethnic_py_any", - "community": 101, + "community": 103, "norm_label": "any" }, { @@ -19290,7 +19360,7 @@ "source_location": "L18", "_origin": "ast", "id": "app_crud_ethnic_list_ethnics", - "community": 101, + "community": 103, "norm_label": "list_ethnics()" }, { @@ -19300,7 +19370,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_ethnic_py_session", - "community": 101, + "community": 103, "norm_label": "session" }, { @@ -19310,7 +19380,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_ethnic_rationale_1", - "community": 101, + "community": 103, "norm_label": "\u6c11\u65cf\u7801\u8868 crud(\u5168\u5c40 sys_ethnic)" }, { @@ -19320,7 +19390,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_leave", - "community": 78, + "community": 91, "norm_label": "leave.py" }, { @@ -19330,7 +19400,7 @@ "source_location": "L15", "_origin": "ast", "id": "app_crud_leave_total_pages", - "community": 121, + "community": 57, "norm_label": "total_pages()" }, { @@ -19340,7 +19410,7 @@ "source_location": "L19", "_origin": "ast", "id": "app_crud_leave_row_to_dict", - "community": 78, + "community": 91, "norm_label": "_row_to_dict()" }, { @@ -19350,7 +19420,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_leave_py_any", - "community": 78, + "community": 91, "norm_label": "any" }, { @@ -19360,7 +19430,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_crud_leave_list_leaves", - "community": 78, + "community": 91, "norm_label": "list_leaves()" }, { @@ -19370,7 +19440,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_leave_py_session", - "community": 78, + "community": 91, "norm_label": "session" }, { @@ -19380,7 +19450,7 @@ "source_location": "L74", "_origin": "ast", "id": "app_crud_leave_get_leave", - "community": 78, + "community": 91, "norm_label": "get_leave()" }, { @@ -19390,7 +19460,7 @@ "source_location": "L79", "_origin": "ast", "id": "app_crud_leave_create_leave", - "community": 78, + "community": 91, "norm_label": "create_leave()" }, { @@ -19400,7 +19470,7 @@ "source_location": "L110", "_origin": "ast", "id": "app_crud_leave_update_leave", - "community": 78, + "community": 91, "norm_label": "update_leave()" }, { @@ -19410,7 +19480,7 @@ "source_location": "L130", "_origin": "ast", "id": "app_crud_leave_update_leave_status", - "community": 78, + "community": 91, "norm_label": "update_leave_status()" }, { @@ -19420,7 +19490,7 @@ "source_location": "L142", "_origin": "ast", "id": "app_crud_leave_soft_delete_leave", - "community": 78, + "community": 91, "norm_label": "soft_delete_leave()" }, { @@ -19710,7 +19780,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_monitor_oper_log", - "community": 53, + "community": 41, "norm_label": "oper_log.py" }, { @@ -19720,7 +19790,7 @@ "source_location": "L16", "_origin": "ast", "id": "app_crud_monitor_oper_log_oper_status", - "community": 53, + "community": 41, "norm_label": "_oper_status()" }, { @@ -19730,7 +19800,7 @@ "source_location": "L20", "_origin": "ast", "id": "app_crud_monitor_oper_log_row_to_oper_log", - "community": 53, + "community": 41, "norm_label": "_row_to_oper_log()" }, { @@ -19740,7 +19810,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_monitor_oper_log_py_any", - "community": 53, + "community": 41, "norm_label": "any" }, { @@ -19750,7 +19820,7 @@ "source_location": "L56", "_origin": "ast", "id": "app_crud_monitor_oper_log_apply_oper_log_scope", - "community": 53, + "community": 41, "norm_label": "_apply_oper_log_scope()" }, { @@ -19760,7 +19830,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_monitor_oper_log_py_session", - "community": 53, + "community": 41, "norm_label": "session" }, { @@ -19770,7 +19840,7 @@ "source_location": "L102", "_origin": "ast", "id": "app_crud_monitor_oper_log_oper_log_row_in_scope", - "community": 53, + "community": 41, "norm_label": "_oper_log_row_in_scope()" }, { @@ -19780,7 +19850,7 @@ "source_location": "L112", "_origin": "ast", "id": "app_crud_monitor_oper_log_list_oper_logs", - "community": 53, + "community": 41, "norm_label": "list_oper_logs()" }, { @@ -19790,7 +19860,7 @@ "source_location": "L180", "_origin": "ast", "id": "app_crud_monitor_oper_log_get_oper_log", - "community": 53, + "community": 41, "norm_label": "get_oper_log()" }, { @@ -19800,7 +19870,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_monitor_oper_log_rationale_1", - "community": 53, + "community": 41, "norm_label": "\u64cd\u4f5c\u65e5\u5fd7:\u57fa\u4e8e sys_api_request_log \u9002\u914d ruoyi operlog \u89c6\u56fe" }, { @@ -19810,7 +19880,7 @@ "source_location": "L57", "_origin": "ast", "id": "app_crud_monitor_oper_log_rationale_57", - "community": 53, + "community": 41, "norm_label": "\u64cd\u4f5c\u65e5\u5fd7\u6309 oper_user_id(user_id/create_by)\u5e94\u7528\u6570\u636e\u6743\u9650\u3002" }, { @@ -19820,7 +19890,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_oss", - "community": 72, + "community": 127, "norm_label": "oss.py" }, { @@ -19830,7 +19900,7 @@ "source_location": "L12", "_origin": "ast", "id": "app_crud_oss_create_oss", - "community": 72, + "community": 127, "norm_label": "create_oss()" }, { @@ -19840,7 +19910,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_oss_py_session", - "community": 72, + "community": 127, "norm_label": "session" }, { @@ -19850,7 +19920,7 @@ "source_location": "L55", "_origin": "ast", "id": "app_crud_oss_get_oss_by_url", - "community": 72, + "community": 127, "norm_label": "get_oss_by_url()" }, { @@ -19860,7 +19930,7 @@ "source_location": "L66", "_origin": "ast", "id": "app_crud_oss_get_oss_by_id", - "community": 72, + "community": 127, "norm_label": "get_oss_by_id()" }, { @@ -19870,7 +19940,7 @@ "source_location": "L77", "_origin": "ast", "id": "app_crud_oss_resolve_storage_path", - "community": 72, + "community": 127, "norm_label": "resolve_storage_path()" }, { @@ -19880,7 +19950,7 @@ "source_location": "L67", "_origin": "ast", "id": "app_crud_oss_rationale_67", - "community": 72, + "community": 127, "norm_label": "\u6309\u4e3b\u952e id \u67e5\u8be2\u9644\u4ef6(\u517c\u5bb9\u65e7 crm \u96ea\u82b1 oss_id \u8fc1\u5165\u540e\u7684\u8bb0\u5f55)" }, { @@ -19890,7 +19960,7 @@ "source_location": "L78", "_origin": "ast", "id": "app_crud_oss_rationale_78", - "community": 72, + "community": 127, "norm_label": "\u5c06 fileurl \u6216\u65e7 crm \u6570\u5b57 ossid \u89e3\u6790\u4e3a minio \u76f8\u5bf9\u8def\u5f84\u3002 \u95e8\u6237\u65b0\u4e0a\u4f20\u628a\u76f8\u5bf9\u8def\u5f84\u5199\u5165\u4e1a\u52a1\u5b57\u6bb5;\u8fc1\u5165\u5408\u540c\u9644\u4ef6\u4ecd\u5b58\u6570\u5b57 ossid" }, { @@ -20170,7 +20240,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_sample_code", - "community": 134, + "community": 72, "norm_label": "sample_code.py" }, { @@ -20180,7 +20250,7 @@ "source_location": "L15", "_origin": "ast", "id": "app_crud_sample_code_resolve_issued_user_display_name", - "community": 134, + "community": 72, "norm_label": "_resolve_issued_user_display_name()" }, { @@ -20190,7 +20260,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_sample_code_py_session", - "community": 134, + "community": 72, "norm_label": "session" }, { @@ -20200,7 +20270,7 @@ "source_location": "L32", "_origin": "ast", "id": "app_crud_sample_code_parse_issued_time", - "community": 134, + "community": 72, "norm_label": "_parse_issued_time()" }, { @@ -20210,7 +20280,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_sample_code_py_datetime", - "community": 134, + "community": 72, "norm_label": "datetime" }, { @@ -20220,7 +20290,7 @@ "source_location": "L44", "_origin": "ast", "id": "app_crud_sample_code_row_to_dict", - "community": 134, + "community": 72, "norm_label": "_row_to_dict()" }, { @@ -20230,7 +20300,7 @@ "source_location": "", "_origin": "ast", "id": "bizsamplecode", - "community": 134, + "community": 72, "norm_label": "bizsamplecode" }, { @@ -20240,7 +20310,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_sample_code_py_any", - "community": 134, + "community": 72, "norm_label": "any" }, { @@ -20250,7 +20320,7 @@ "source_location": "L61", "_origin": "ast", "id": "app_crud_sample_code_sample_code_exists", - "community": 134, + "community": 72, "norm_label": "sample_code_exists()" }, { @@ -20260,7 +20330,7 @@ "source_location": "L73", "_origin": "ast", "id": "app_crud_sample_code_list_sample_codes", - "community": 134, + "community": 72, "norm_label": "list_sample_codes()" }, { @@ -20270,7 +20340,7 @@ "source_location": "L104", "_origin": "ast", "id": "app_crud_sample_code_get_sample_code", - "community": 134, + "community": 72, "norm_label": "get_sample_code()" }, { @@ -20280,7 +20350,7 @@ "source_location": "L111", "_origin": "ast", "id": "app_crud_sample_code_create_sample_code", - "community": 134, + "community": 72, "norm_label": "create_sample_code()" }, { @@ -20290,7 +20360,7 @@ "source_location": "L167", "_origin": "ast", "id": "app_crud_sample_code_update_sample_code", - "community": 134, + "community": 72, "norm_label": "update_sample_code()" }, { @@ -20300,7 +20370,7 @@ "source_location": "L219", "_origin": "ast", "id": "app_crud_sample_code_soft_delete_sample_code", - "community": 134, + "community": 72, "norm_label": "soft_delete_sample_code()" }, { @@ -20310,7 +20380,7 @@ "source_location": "L229", "_origin": "ast", "id": "app_crud_sample_code_batch_generate_sample_codes", - "community": 134, + "community": 72, "norm_label": "batch_generate_sample_codes()" }, { @@ -20320,7 +20390,7 @@ "source_location": "L312", "_origin": "ast", "id": "app_crud_sample_code_batch_issue_sample_codes", - "community": 134, + "community": 72, "norm_label": "batch_issue_sample_codes()" }, { @@ -20330,7 +20400,7 @@ "source_location": "L357", "_origin": "ast", "id": "app_crud_sample_code_batch_revoke_sample_codes", - "community": 134, + "community": 72, "norm_label": "batch_revoke_sample_codes()" }, { @@ -20340,7 +20410,7 @@ "source_location": "L396", "_origin": "ast", "id": "app_crud_sample_code_total_pages", - "community": 134, + "community": 72, "norm_label": "total_pages()" }, { @@ -20350,7 +20420,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_sample_code_rationale_1", - "community": 134, + "community": 72, "norm_label": "\u6837\u672c\u7f16\u7801\u6c60 crud(biz_sample_code)" }, { @@ -20360,7 +20430,7 @@ "source_location": "L240", "_origin": "ast", "id": "app_crud_sample_code_rationale_240", - "community": 134, + "community": 72, "norm_label": "\u6279\u91cf\u751f\u6210\u6837\u672c\u7f16\u7801: \u7c7b\u578b\u524d\u7f00 + \u4e2d\u95f4\u6bb5 + \u8865\u96f6\u5e8f\u53f7" }, { @@ -20370,7 +20440,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_site", - "community": 106, + "community": 82, "norm_label": "site.py" }, { @@ -20380,7 +20450,7 @@ "source_location": "L16", "_origin": "ast", "id": "app_crud_site_row_to_dict", - "community": 106, + "community": 82, "norm_label": "_row_to_dict()" }, { @@ -20390,7 +20460,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_site_py_any", - "community": 106, + "community": 82, "norm_label": "any" }, { @@ -20400,7 +20470,7 @@ "source_location": "L36", "_origin": "ast", "id": "app_crud_site_list_sites", - "community": 106, + "community": 82, "norm_label": "list_sites()" }, { @@ -20410,7 +20480,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_site_py_session", - "community": 106, + "community": 82, "norm_label": "session" }, { @@ -20420,7 +20490,7 @@ "source_location": "L69", "_origin": "ast", "id": "app_crud_site_get_site", - "community": 106, + "community": 82, "norm_label": "get_site()" }, { @@ -20430,7 +20500,7 @@ "source_location": "L77", "_origin": "ast", "id": "app_crud_site_site_code_exists", - "community": 106, + "community": 82, "norm_label": "site_code_exists()" }, { @@ -20440,7 +20510,7 @@ "source_location": "L84", "_origin": "ast", "id": "app_crud_site_create_site", - "community": 106, + "community": 82, "norm_label": "create_site()" }, { @@ -20450,7 +20520,7 @@ "source_location": "L131", "_origin": "ast", "id": "app_crud_site_update_site", - "community": 106, + "community": 82, "norm_label": "update_site()" }, { @@ -20460,7 +20530,7 @@ "source_location": "L183", "_origin": "ast", "id": "app_crud_site_soft_delete_site", - "community": 106, + "community": 82, "norm_label": "soft_delete_site()" }, { @@ -20470,7 +20540,7 @@ "source_location": "L194", "_origin": "ast", "id": "app_crud_site_total_pages", - "community": 106, + "community": 82, "norm_label": "total_pages()" }, { @@ -21170,7 +21240,7 @@ "source_location": "", "_origin": "ast", "id": "fastapi", - "community": 10, + "community": 120, "norm_label": "fastapi" }, { @@ -21420,7 +21490,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_models_bx_models", - "community": 24, + "community": 0, "norm_label": "bx_models.py" }, { @@ -21450,7 +21520,7 @@ "source_location": "L62", "_origin": "ast", "id": "app_models_bx_models_bxworkflownode", - "community": 24, + "community": 0, "norm_label": "bxworkflownode" }, { @@ -21460,7 +21530,7 @@ "source_location": "L95", "_origin": "ast", "id": "app_models_bx_models_bxadvanceapply", - "community": 19, + "community": 0, "norm_label": "bxadvanceapply" }, { @@ -21470,7 +21540,7 @@ "source_location": "L128", "_origin": "ast", "id": "app_models_bx_models_bxadvanceapproval", - "community": 19, + "community": 0, "norm_label": "bxadvanceapproval" }, { @@ -21510,7 +21580,7 @@ "source_location": "L234", "_origin": "ast", "id": "app_models_bx_models_bxreimburseoffset", - "community": 24, + "community": 0, "norm_label": "bxreimburseoffset" }, { @@ -21550,7 +21620,7 @@ "source_location": "L322", "_origin": "ast", "id": "app_models_bx_models_bxreimburseinvoice", - "community": 24, + "community": 15, "norm_label": "bxreimburseinvoice" }, { @@ -21570,7 +21640,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_models_bx_models_rationale_1", - "community": 24, + "community": 0, "norm_label": "\u62a5\u9500(bx)\u6a21\u5757\u6570\u636e\u6a21\u578b \u2014 \u5bf9\u9f50 docs/sql/20260606_bx_tables.sql" }, { @@ -21580,7 +21650,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_models_crm_models", - "community": 33, + "community": 127, "norm_label": "crm_models.py" }, { @@ -21600,7 +21670,7 @@ "source_location": "L43", "_origin": "ast", "id": "app_models_crm_models_crmproduct", - "community": 50, + "community": 21, "norm_label": "crmproduct" }, { @@ -21610,7 +21680,7 @@ "source_location": "L79", "_origin": "ast", "id": "app_models_crm_models_crmproductbrand", - "community": 21, + "community": 108, "norm_label": "crmproductbrand" }, { @@ -21620,7 +21690,7 @@ "source_location": "L99", "_origin": "ast", "id": "app_models_crm_models_crmproductalias", - "community": 50, + "community": 108, "norm_label": "crmproductalias" }, { @@ -21630,7 +21700,7 @@ "source_location": "L118", "_origin": "ast", "id": "app_models_crm_models_sysoss", - "community": 72, + "community": 127, "norm_label": "sysoss" }, { @@ -21680,7 +21750,7 @@ "source_location": "L328", "_origin": "ast", "id": "app_models_crm_models_crmcustomerpool", - "community": 55, + "community": 109, "norm_label": "crmcustomerpool" }, { @@ -21690,7 +21760,7 @@ "source_location": "L354", "_origin": "ast", "id": "app_models_crm_models_crmcustomerpoolrule", - "community": 55, + "community": 99, "norm_label": "crmcustomerpoolrule" }, { @@ -21740,7 +21810,7 @@ "source_location": "L512", "_origin": "ast", "id": "app_models_crm_models_crmcontract", - "community": 0, + "community": 29, "norm_label": "crmcontract" }, { @@ -21890,7 +21960,7 @@ "source_location": "L1052", "_origin": "ast", "id": "app_models_crm_models_crmsupplierinfo", - "community": 33, + "community": 60, "norm_label": "crmsupplierinfo" }, { @@ -21900,7 +21970,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_models_crm_models_rationale_1", - "community": 33, + "community": 127, "norm_label": "crm \u6a21\u5757\u6570\u636e\u6a21\u578b(\u4ea7\u54c1\u5206\u7c7b\u3001\u4ea7\u54c1\u4e3b\u8868\u3001\u7edf\u4e00\u9644\u4ef6\u8868\u3001\u5ba2\u6237\u7ba1\u7406\u3001\u516c\u6d77\u6c60\u3001\u7ebf\u7d22\u7ba1\u7406)" }, { @@ -21920,7 +21990,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_models_db_models", - "community": 40, + "community": 19, "norm_label": "db_models.py" }, { @@ -21940,7 +22010,7 @@ "source_location": "L44", "_origin": "ast", "id": "app_models_db_models_dbinboundoutbound", - "community": 40, + "community": 61, "norm_label": "dbinboundoutbound" }, { @@ -21960,7 +22030,7 @@ "source_location": "L116", "_origin": "ast", "id": "app_models_db_models_dbsequence", - "community": 114, + "community": 19, "norm_label": "dbsequence" }, { @@ -21970,7 +22040,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_models_db_models_rationale_1", - "community": 40, + "community": 19, "norm_label": "\u5730\u78c5(db)\u6a21\u5757\u6570\u636e\u6a21\u578b \u2014 \u5bf9\u9f50 docs/sql/db_tables.sql" }, { @@ -22030,7 +22100,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_models_models", - "community": 101, + "community": 91, "norm_label": "models.py" }, { @@ -22040,7 +22110,7 @@ "source_location": "L11", "_origin": "ast", "id": "app_models_models_userrole", - "community": 101, + "community": 91, "norm_label": "userrole" }, { @@ -22050,7 +22120,7 @@ "source_location": "", "_origin": "ast", "id": "str", - "community": 101, + "community": 91, "norm_label": "str" }, { @@ -22060,7 +22130,7 @@ "source_location": "L29", "_origin": "ast", "id": "app_models_models_sysuser", - "community": 36, + "community": 45, "norm_label": "sysuser" }, { @@ -22070,7 +22140,7 @@ "source_location": "L56", "_origin": "ast", "id": "app_models_models_sysrole", - "community": 3, + "community": 45, "norm_label": "sysrole" }, { @@ -22080,7 +22150,7 @@ "source_location": "L77", "_origin": "ast", "id": "app_models_models_sysuserrole", - "community": 3, + "community": 45, "norm_label": "sysuserrole" }, { @@ -22090,7 +22160,7 @@ "source_location": "L97", "_origin": "ast", "id": "app_models_models_sysrolemenu", - "community": 101, + "community": 136, "norm_label": "sysrolemenu" }, { @@ -22100,7 +22170,7 @@ "source_location": "L117", "_origin": "ast", "id": "app_models_models_sysroledatascopedetail", - "community": 101, + "community": 136, "norm_label": "sysroledatascopedetail" }, { @@ -22120,7 +22190,7 @@ "source_location": "L165", "_origin": "ast", "id": "app_models_models_sysdept", - "community": 3, + "community": 45, "norm_label": "sysdept" }, { @@ -22140,7 +22210,7 @@ "source_location": "L210", "_origin": "ast", "id": "app_models_models_syssite", - "community": 106, + "community": 82, "norm_label": "syssite" }, { @@ -22200,7 +22270,7 @@ "source_location": "L340", "_origin": "ast", "id": "app_models_models_sysdictdata", - "community": 3, + "community": 45, "norm_label": "sysdictdata" }, { @@ -22210,7 +22280,7 @@ "source_location": "L372", "_origin": "ast", "id": "app_models_models_sysapirequestlog", - "community": 101, + "community": 66, "norm_label": "sysapirequestlog" }, { @@ -22220,7 +22290,7 @@ "source_location": "L404", "_origin": "ast", "id": "app_models_models_sysapirequestloghis", - "community": 101, + "community": 66, "norm_label": "sysapirequestloghis" }, { @@ -22230,7 +22300,7 @@ "source_location": "L446", "_origin": "ast", "id": "app_models_models_bizleaverequest", - "community": 101, + "community": 91, "norm_label": "bizleaverequest" }, { @@ -22260,7 +22330,7 @@ "source_location": "L527", "_origin": "ast", "id": "app_models_models_wfprocessversion", - "community": 107, + "community": 44, "norm_label": "wfprocessversion" }, { @@ -22270,7 +22340,7 @@ "source_location": "L549", "_origin": "ast", "id": "app_models_models_wfnode", - "community": 74, + "community": 44, "norm_label": "wfnode" }, { @@ -22280,7 +22350,7 @@ "source_location": "L572", "_origin": "ast", "id": "app_models_models_wftransition", - "community": 101, + "community": 107, "norm_label": "wftransition" }, { @@ -22290,7 +22360,7 @@ "source_location": "L594", "_origin": "ast", "id": "app_models_models_wfprocessinstance", - "community": 74, + "community": 79, "norm_label": "wfprocessinstance" }, { @@ -22300,7 +22370,7 @@ "source_location": "L619", "_origin": "ast", "id": "app_models_models_wftask", - "community": 74, + "community": 107, "norm_label": "wftask" }, { @@ -22310,7 +22380,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_models_models_rationale_1", - "community": 101, + "community": 91, "norm_label": "\u6570\u636e\u6a21\u578b(\u4e0e docs/sql/shanxia2.0.sql \u5168\u5e93\u5bfc\u51fa\u57fa\u7ebf\u5bf9\u9f50\u7684\u6838\u5fc3\u7cfb\u7edf\u8868)" }, { @@ -22320,7 +22390,7 @@ "source_location": "L12", "_origin": "ast", "id": "app_models_models_rationale_12", - "community": 101, + "community": 91, "norm_label": "web \u7ba1\u7406\u7aef\u7ea6\u5b9a\u89d2\u8272(\u7531 sys_role.role_name \u6620\u5c04\u800c\u6765,\u975e\u6570\u636e\u5e93\u679a\u4e3e)" }, { @@ -22330,7 +22400,7 @@ "source_location": "L78", "_origin": "ast", "id": "app_models_models_rationale_78", - "community": 3, + "community": 45, "norm_label": "\u7528\u6237-\u89d2\u8272\u5173\u8054 sys_user_role(v0.3)" }, { @@ -22340,7 +22410,7 @@ "source_location": "L98", "_origin": "ast", "id": "app_models_models_rationale_98", - "community": 101, + "community": 136, "norm_label": "\u89d2\u8272-\u83dc\u5355\u5173\u8054 sys_role_menu(v0.3)" }, { @@ -22350,7 +22420,7 @@ "source_location": "L118", "_origin": "ast", "id": "app_models_models_rationale_118", - "community": 101, + "community": 136, "norm_label": "\u89d2\u8272\u81ea\u5b9a\u4e49\u6570\u636e\u6743\u9650\u660e\u7ec6 sys_role_data_scope_detail" }, { @@ -22400,7 +22470,7 @@ "source_location": "L447", "_origin": "ast", "id": "app_models_models_rationale_447", - "community": 101, + "community": 91, "norm_label": "\u8bf7\u5047\u7533\u8bf7 biz_leave_request" }, { @@ -22410,7 +22480,7 @@ "source_location": "L528", "_origin": "ast", "id": "app_models_models_rationale_528", - "community": 107, + "community": 44, "norm_label": "\u6d41\u7a0b\u5b9a\u4e49\u7248\u672c wf_process_version" }, { @@ -22420,7 +22490,7 @@ "source_location": "L573", "_origin": "ast", "id": "app_models_models_rationale_573", - "community": 101, + "community": 107, "norm_label": "\u6d41\u7a0b\u8fde\u7ebf/\u8f6c\u79fb wf_transition" }, { @@ -22430,7 +22500,7 @@ "source_location": "L595", "_origin": "ast", "id": "app_models_models_rationale_595", - "community": 74, + "community": 79, "norm_label": "\u6d41\u7a0b\u5b9e\u4f8b wf_process_instance" }, { @@ -22440,7 +22510,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_models_pl_models", - "community": 145, + "community": 101, "norm_label": "pl_models.py" }, { @@ -22450,7 +22520,7 @@ "source_location": "L28", "_origin": "ast", "id": "app_models_pl_models_plcarrier", - "community": 62, + "community": 80, "norm_label": "plcarrier" }, { @@ -22470,7 +22540,7 @@ "source_location": "L84", "_origin": "ast", "id": "app_models_pl_models_plpersonnel", - "community": 115, + "community": 62, "norm_label": "plpersonnel" }, { @@ -22490,7 +22560,7 @@ "source_location": "L143", "_origin": "ast", "id": "app_models_pl_models_plcert", - "community": 103, + "community": 102, "norm_label": "plcert" }, { @@ -22510,7 +22580,7 @@ "source_location": "L195", "_origin": "ast", "id": "app_models_pl_models_plvehiclepersonnel", - "community": 82, + "community": 74, "norm_label": "plvehiclepersonnel" }, { @@ -22540,7 +22610,7 @@ "source_location": "L348", "_origin": "ast", "id": "app_models_pl_models_plplancontract", - "community": 5, + "community": 101, "norm_label": "plplancontract" }, { @@ -22550,7 +22620,7 @@ "source_location": "L370", "_origin": "ast", "id": "app_models_pl_models_plplanproduct", - "community": 23, + "community": 61, "norm_label": "plplanproduct" }, { @@ -22560,7 +22630,7 @@ "source_location": "L429", "_origin": "ast", "id": "app_models_pl_models_plplanproductbrandqty", - "community": 145, + "community": 101, "norm_label": "plplanproductbrandqty" }, { @@ -22590,7 +22660,7 @@ "source_location": "L540", "_origin": "ast", "id": "app_models_pl_models_pltransportproductfeedback", - "community": 41, + "community": 101, "norm_label": "pltransportproductfeedback" }, { @@ -22600,7 +22670,7 @@ "source_location": "L561", "_origin": "ast", "id": "app_models_pl_models_pltransportproductbrandqty", - "community": 41, + "community": 145, "norm_label": "pltransportproductbrandqty" }, { @@ -22630,7 +22700,7 @@ "source_location": "L626", "_origin": "ast", "id": "app_models_pl_models_pltransportsitelink", - "community": 31, + "community": 111, "norm_label": "pltransportsitelink" }, { @@ -22640,7 +22710,7 @@ "source_location": "L659", "_origin": "ast", "id": "app_models_pl_models_plinboundorder", - "community": 145, + "community": 101, "norm_label": "plinboundorder" }, { @@ -22650,7 +22720,7 @@ "source_location": "L689", "_origin": "ast", "id": "app_models_pl_models_plinboundorderitem", - "community": 145, + "community": 101, "norm_label": "plinboundorderitem" }, { @@ -22660,7 +22730,7 @@ "source_location": "L715", "_origin": "ast", "id": "app_models_pl_models_plinboundorderitembrandqty", - "community": 145, + "community": 101, "norm_label": "plinboundorderitembrandqty" }, { @@ -22670,7 +22740,7 @@ "source_location": "L738", "_origin": "ast", "id": "app_models_pl_models_ploutboundorder", - "community": 145, + "community": 101, "norm_label": "ploutboundorder" }, { @@ -22680,7 +22750,7 @@ "source_location": "L768", "_origin": "ast", "id": "app_models_pl_models_ploutboundorderitem", - "community": 145, + "community": 101, "norm_label": "ploutboundorderitem" }, { @@ -22690,7 +22760,7 @@ "source_location": "L794", "_origin": "ast", "id": "app_models_pl_models_ploutboundorderitembrandqty", - "community": 145, + "community": 101, "norm_label": "ploutboundorderitembrandqty" }, { @@ -22750,7 +22820,7 @@ "source_location": "L952", "_origin": "ast", "id": "app_models_pl_models_plinventory", - "community": 80, + "community": 101, "norm_label": "plinventory" }, { @@ -22760,7 +22830,7 @@ "source_location": "L986", "_origin": "ast", "id": "app_models_pl_models_plinventorytransaction", - "community": 80, + "community": 101, "norm_label": "plinventorytransaction" }, { @@ -22780,7 +22850,7 @@ "source_location": "L1044", "_origin": "ast", "id": "app_models_pl_models_pldocumentreminder", - "community": 103, + "community": 101, "norm_label": "pldocumentreminder" }, { @@ -22880,7 +22950,7 @@ "source_location": "L196", "_origin": "ast", "id": "app_models_pl_models_rationale_196", - "community": 82, + "community": 74, "norm_label": "\u8f66\u8f86-\u4eba\u5458\u5173\u8054\u8868 pl_vehicle_personnel" }, { @@ -22900,7 +22970,7 @@ "source_location": "L349", "_origin": "ast", "id": "app_models_pl_models_rationale_349", - "community": 5, + "community": 101, "norm_label": "\u8fd0\u8f93\u8ba1\u5212-\u5408\u540c\u5173\u8054(\u5206\u4fa7\u591a\u9009) pl_plan_contract" }, { @@ -22910,7 +22980,7 @@ "source_location": "L371", "_origin": "ast", "id": "app_models_pl_models_rationale_371", - "community": 23, + "community": 61, "norm_label": "\u8ba1\u5212\u4ea7\u54c1\u660e\u7ec6\u8868 pl_plan_product" }, { @@ -22920,7 +22990,7 @@ "source_location": "L430", "_origin": "ast", "id": "app_models_pl_models_rationale_430", - "community": 145, + "community": 101, "norm_label": "\u8ba1\u5212\u4ea7\u54c1\u5f52\u6863\u54c1\u724c\u6570\u91cf pl_plan_product_brand_qty" }, { @@ -22940,7 +23010,7 @@ "source_location": "L541", "_origin": "ast", "id": "app_models_pl_models_rationale_541", - "community": 41, + "community": 101, "norm_label": "\u8fd0\u8f93\u5355\u6309\u4ea7\u54c1\u56de\u4f20 pl_transport_product_feedback" }, { @@ -22950,7 +23020,7 @@ "source_location": "L562", "_origin": "ast", "id": "app_models_pl_models_rationale_562", - "community": 41, + "community": 145, "norm_label": "\u8fd0\u8f93\u5355\u4ea7\u54c1\u56de\u4f20\u54c1\u724c\u6570\u91cf pl_transport_product_brand_qty" }, { @@ -22980,7 +23050,7 @@ "source_location": "L627", "_origin": "ast", "id": "app_models_pl_models_rationale_627", - "community": 31, + "community": 111, "norm_label": "\u8fd0\u8f93\u8ba1\u5212\u73b0\u573a\u94fe\u63a5 pl_transport_site_link(\u4e0e\u5730\u78c5\u51fa\u5165\u5e93\u5355\u89e3\u8026)" }, { @@ -22990,7 +23060,7 @@ "source_location": "L660", "_origin": "ast", "id": "app_models_pl_models_rationale_660", - "community": 145, + "community": 101, "norm_label": "\u8fd0\u8f93\u8ba1\u5212-\u5165\u5e93\u5355 pl_inbound_order" }, { @@ -23000,7 +23070,7 @@ "source_location": "L690", "_origin": "ast", "id": "app_models_pl_models_rationale_690", - "community": 145, + "community": 101, "norm_label": "\u8fd0\u8f93\u8ba1\u5212-\u5165\u5e93\u5355\u660e\u7ec6 pl_inbound_order_item" }, { @@ -23010,7 +23080,7 @@ "source_location": "L716", "_origin": "ast", "id": "app_models_pl_models_rationale_716", - "community": 145, + "community": 101, "norm_label": "\u5165\u5e93\u660e\u7ec6\u54c1\u724c\u6570\u91cf pl_inbound_order_item_brand_qty" }, { @@ -23020,7 +23090,7 @@ "source_location": "L739", "_origin": "ast", "id": "app_models_pl_models_rationale_739", - "community": 145, + "community": 101, "norm_label": "\u8fd0\u8f93\u8ba1\u5212-\u51fa\u5e93\u5355 pl_outbound_order" }, { @@ -23030,7 +23100,7 @@ "source_location": "L769", "_origin": "ast", "id": "app_models_pl_models_rationale_769", - "community": 145, + "community": 101, "norm_label": "\u8fd0\u8f93\u8ba1\u5212-\u51fa\u5e93\u5355\u660e\u7ec6 pl_outbound_order_item" }, { @@ -23040,7 +23110,7 @@ "source_location": "L795", "_origin": "ast", "id": "app_models_pl_models_rationale_795", - "community": 145, + "community": 101, "norm_label": "\u51fa\u5e93\u660e\u7ec6\u54c1\u724c\u6570\u91cf pl_outbound_order_item_brand_qty" }, { @@ -23100,7 +23170,7 @@ "source_location": "L987", "_origin": "ast", "id": "app_models_pl_models_rationale_987", - "community": 80, + "community": 101, "norm_label": "\u5e93\u5b58\u6d41\u6c34\u8868 pl_inventory_transaction" }, { @@ -23120,7 +23190,7 @@ "source_location": "L1045", "_origin": "ast", "id": "app_models_pl_models_rationale_1045", - "community": 103, + "community": 101, "norm_label": "\u8bc1\u4ef6\u5230\u671f\u63d0\u9192\u8868 pl_document_reminder" }, { @@ -23460,7 +23530,7 @@ "source_location": "L131", "_origin": "ast", "id": "app_schemas_bx_advance_advanceissuerequest", - "community": 18, + "community": 2, "norm_label": "advanceissuerequest" }, { @@ -23470,7 +23540,7 @@ "source_location": "L138", "_origin": "ast", "id": "app_schemas_bx_advance_advanceoffsetrecordout", - "community": 18, + "community": 2, "norm_label": "advanceoffsetrecordout" }, { @@ -23770,7 +23840,7 @@ "source_location": "L32", "_origin": "ast", "id": "app_schemas_bx_reimburse_reimbursedetailout", - "community": 2, + "community": 58, "norm_label": "reimbursedetailout" }, { @@ -23930,7 +24000,7 @@ "source_location": "L195", "_origin": "ast", "id": "app_schemas_bx_reimburse_payrequest", - "community": 18, + "community": 2, "norm_label": "payrequest" }, { @@ -23940,7 +24010,7 @@ "source_location": "L202", "_origin": "ast", "id": "app_schemas_bx_reimburse_offsetrequest", - "community": 18, + "community": 2, "norm_label": "offsetrequest" }, { @@ -23980,7 +24050,7 @@ "source_location": "L233", "_origin": "ast", "id": "app_schemas_bx_reimburse_batchoffsetrequest", - "community": 18, + "community": 2, "norm_label": "batchoffsetrequest" }, { @@ -23990,7 +24060,7 @@ "source_location": "L241", "_origin": "ast", "id": "app_schemas_bx_reimburse_reimburseoffsetrecordout", - "community": 18, + "community": 2, "norm_label": "reimburseoffsetrecordout" }, { @@ -24330,7 +24400,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_contact", - "community": 12, + "community": 106, "norm_label": "contact.py" }, { @@ -24350,7 +24420,7 @@ "source_location": "L24", "_origin": "ast", "id": "app_schemas_crm_contact_contactcreatebody", - "community": 12, + "community": 106, "norm_label": "contactcreatebody" }, { @@ -24360,7 +24430,7 @@ "source_location": "L47", "_origin": "ast", "id": "app_schemas_crm_contact_contactupdatebody", - "community": 12, + "community": 106, "norm_label": "contactupdatebody" }, { @@ -24370,7 +24440,7 @@ "source_location": "L71", "_origin": "ast", "id": "app_schemas_crm_contact_contactdeletebody", - "community": 12, + "community": 7, "norm_label": "contactdeletebody" }, { @@ -24380,7 +24450,7 @@ "source_location": "L75", "_origin": "ast", "id": "app_schemas_crm_contact_contactdetailbody", - "community": 12, + "community": 106, "norm_label": "contactdetailbody" }, { @@ -24390,7 +24460,7 @@ "source_location": "L79", "_origin": "ast", "id": "app_schemas_crm_contact_contactbycustomerbody", - "community": 12, + "community": 106, "norm_label": "contactbycustomerbody" }, { @@ -24400,7 +24470,7 @@ "source_location": "L85", "_origin": "ast", "id": "app_schemas_crm_contact_contactsetprimarybody", - "community": 12, + "community": 106, "norm_label": "contactsetprimarybody" }, { @@ -24410,7 +24480,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_contact_rationale_1", - "community": 12, + "community": 106, "norm_label": "crm \u8054\u7cfb\u4eba pydantic schemas" }, { @@ -24620,7 +24690,7 @@ "source_location": "L239", "_origin": "ast", "id": "app_schemas_crm_contract_contractapprovalpassbody", - "community": 29, + "community": 83, "norm_label": "contractapprovalpassbody" }, { @@ -24630,7 +24700,7 @@ "source_location": "L244", "_origin": "ast", "id": "app_schemas_crm_contract_contractapprovalrejectbody", - "community": 29, + "community": 83, "norm_label": "contractapprovalrejectbody" }, { @@ -24640,7 +24710,7 @@ "source_location": "L249", "_origin": "ast", "id": "app_schemas_crm_contract_contractapprovalrefreshnamesbody", - "community": 29, + "community": 83, "norm_label": "contractapprovalrefreshnamesbody" }, { @@ -24650,7 +24720,7 @@ "source_location": "L253", "_origin": "ast", "id": "app_schemas_crm_contract_contractapprovallistquery", - "community": 29, + "community": 83, "norm_label": "contractapprovallistquery" }, { @@ -24660,7 +24730,7 @@ "source_location": "L265", "_origin": "ast", "id": "app_schemas_crm_contract_contractchangelistquery", - "community": 29, + "community": 83, "norm_label": "contractchangelistquery" }, { @@ -24670,7 +24740,7 @@ "source_location": "L277", "_origin": "ast", "id": "app_schemas_crm_contract_contracttemplatelistquery", - "community": 29, + "community": 83, "norm_label": "contracttemplatelistquery" }, { @@ -24720,7 +24790,7 @@ "source_location": "L320", "_origin": "ast", "id": "app_schemas_crm_contract_contractchangesubmitbody", - "community": 29, + "community": 83, "norm_label": "contractchangesubmitbody" }, { @@ -24730,7 +24800,7 @@ "source_location": "L326", "_origin": "ast", "id": "app_schemas_crm_contract_contractchangeexportbody", - "community": 29, + "community": 83, "norm_label": "contractchangeexportbody" }, { @@ -24760,7 +24830,7 @@ "source_location": "L356", "_origin": "ast", "id": "app_schemas_crm_contract_contracttemplateexportbody", - "community": 29, + "community": 83, "norm_label": "contracttemplateexportbody" }, { @@ -24770,7 +24840,7 @@ "source_location": "L360", "_origin": "ast", "id": "app_schemas_crm_contract_contractapprovaltransferbody", - "community": 29, + "community": 83, "norm_label": "contractapprovaltransferbody" }, { @@ -24780,7 +24850,7 @@ "source_location": "L366", "_origin": "ast", "id": "app_schemas_crm_contract_contractapprovalexportbody", - "community": 29, + "community": 83, "norm_label": "contractapprovalexportbody" }, { @@ -24870,7 +24940,7 @@ "source_location": "L12", "_origin": "ast", "id": "app_schemas_crm_customer_customeroptionsbody", - "community": 12, + "community": 113, "norm_label": "customeroptionsbody" }, { @@ -24900,7 +24970,7 @@ "source_location": "L87", "_origin": "ast", "id": "app_schemas_crm_customer_customercreatebody", - "community": 7, + "community": 6, "norm_label": "customercreatebody" }, { @@ -24910,7 +24980,7 @@ "source_location": "L128", "_origin": "ast", "id": "app_schemas_crm_customer_customercreatebody_forbid_legacy_invoice_fields", - "community": 0, + "community": 6, "norm_label": "._forbid_legacy_invoice_fields()" }, { @@ -24920,7 +24990,7 @@ "source_location": "L153", "_origin": "ast", "id": "app_schemas_crm_customer_customerupdatebody", - "community": 7, + "community": 6, "norm_label": "customerupdatebody" }, { @@ -24930,7 +25000,7 @@ "source_location": "L195", "_origin": "ast", "id": "app_schemas_crm_customer_customerupdatebody_forbid_legacy_invoice_fields", - "community": 0, + "community": 6, "norm_label": "._forbid_legacy_invoice_fields()" }, { @@ -24940,7 +25010,7 @@ "source_location": "L220", "_origin": "ast", "id": "app_schemas_crm_customer_customerdeletebody", - "community": 12, + "community": 7, "norm_label": "customerdeletebody" }, { @@ -25030,7 +25100,7 @@ "source_location": "L13", "_origin": "ast", "id": "app_schemas_crm_customer_rationale_13", - "community": 12, + "community": 113, "norm_label": "\u5ba2\u6237\u4e0b\u62c9\u9009\u9879\u8bf7\u6c42\u4f53(\u79df\u6237\u5185\u53ea\u8bfb\u641c\u7d22,\u4e0d\u505a owner \u6570\u636e\u6743\u9650)" }, { @@ -25050,7 +25120,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_customer_follow", - "community": 7, + "community": 12, "norm_label": "customer_follow.py" }, { @@ -25060,7 +25130,7 @@ "source_location": "L8", "_origin": "ast", "id": "app_schemas_crm_customer_follow_customerfollowlistbody", - "community": 7, + "community": 12, "norm_label": "customerfollowlistbody" }, { @@ -25070,7 +25140,7 @@ "source_location": "L21", "_origin": "ast", "id": "app_schemas_crm_customer_follow_customerfollowcreatebody", - "community": 7, + "community": 12, "norm_label": "customerfollowcreatebody" }, { @@ -25080,7 +25150,7 @@ "source_location": "L36", "_origin": "ast", "id": "app_schemas_crm_customer_follow_customerfollowupdatebody", - "community": 7, + "community": 12, "norm_label": "customerfollowupdatebody" }, { @@ -25090,7 +25160,7 @@ "source_location": "L52", "_origin": "ast", "id": "app_schemas_crm_customer_follow_customerfollowdeletebody", - "community": 7, + "community": 12, "norm_label": "customerfollowdeletebody" }, { @@ -25100,7 +25170,7 @@ "source_location": "L56", "_origin": "ast", "id": "app_schemas_crm_customer_follow_customerfollowdetailbody", - "community": 7, + "community": 12, "norm_label": "customerfollowdetailbody" }, { @@ -25110,7 +25180,7 @@ "source_location": "L60", "_origin": "ast", "id": "app_schemas_crm_customer_follow_customerfollowbycustomerbody", - "community": 7, + "community": 12, "norm_label": "customerfollowbycustomerbody" }, { @@ -25120,7 +25190,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_customer_follow_rationale_1", - "community": 7, + "community": 12, "norm_label": "crm \u5ba2\u6237\u8ddf\u8fdb\u8bb0\u5f55 pydantic schemas" }, { @@ -25130,7 +25200,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_customer_pool", - "community": 105, + "community": 109, "norm_label": "customer_pool.py" }, { @@ -25140,7 +25210,7 @@ "source_location": "L7", "_origin": "ast", "id": "app_schemas_crm_customer_pool_poolcustomerlistbody", - "community": 105, + "community": 109, "norm_label": "poolcustomerlistbody" }, { @@ -25150,7 +25220,7 @@ "source_location": "L18", "_origin": "ast", "id": "app_schemas_crm_customer_pool_poolassignbody", - "community": 105, + "community": 7, "norm_label": "poolassignbody" }, { @@ -25160,7 +25230,7 @@ "source_location": "L26", "_origin": "ast", "id": "app_schemas_crm_customer_pool_poolclaimbody", - "community": 105, + "community": 109, "norm_label": "poolclaimbody" }, { @@ -25170,7 +25240,7 @@ "source_location": "L32", "_origin": "ast", "id": "app_schemas_crm_customer_pool_poolrecordlistbody", - "community": 105, + "community": 109, "norm_label": "poolrecordlistbody" }, { @@ -25180,7 +25250,7 @@ "source_location": "L42", "_origin": "ast", "id": "app_schemas_crm_customer_pool_poolrecorddetailbody", - "community": 105, + "community": 109, "norm_label": "poolrecorddetailbody" }, { @@ -25190,7 +25260,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_customer_pool_rationale_1", - "community": 105, + "community": 109, "norm_label": "crm \u5ba2\u6237\u516c\u6d77\u6c60\u8bb0\u5f55 pydantic schemas" }, { @@ -25200,7 +25270,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_invoice_info", - "community": 81, + "community": 97, "norm_label": "invoice_info.py" }, { @@ -25210,7 +25280,7 @@ "source_location": "L8", "_origin": "ast", "id": "app_schemas_crm_invoice_info_invoiceinfobycustomerbody", - "community": 81, + "community": 97, "norm_label": "invoiceinfobycustomerbody" }, { @@ -25220,7 +25290,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_schemas_crm_invoice_info_invoiceinfocreatebody", - "community": 81, + "community": 7, "norm_label": "invoiceinfocreatebody" }, { @@ -25230,7 +25300,7 @@ "source_location": "L30", "_origin": "ast", "id": "app_schemas_crm_invoice_info_invoiceinfoupdatebody", - "community": 81, + "community": 7, "norm_label": "invoiceinfoupdatebody" }, { @@ -25240,7 +25310,7 @@ "source_location": "L47", "_origin": "ast", "id": "app_schemas_crm_invoice_info_invoiceinfodeletebody", - "community": 81, + "community": 97, "norm_label": "invoiceinfodeletebody" }, { @@ -25250,7 +25320,7 @@ "source_location": "L52", "_origin": "ast", "id": "app_schemas_crm_invoice_info_invoiceinfosetdefaultbody", - "community": 81, + "community": 97, "norm_label": "invoiceinfosetdefaultbody" }, { @@ -25260,7 +25330,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_invoice_info_rationale_1", - "community": 81, + "community": 97, "norm_label": "crm \u5ba2\u6237\u5f00\u7968\u4fe1\u606f pydantic schemas" }, { @@ -25550,7 +25620,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_pool_rule", - "community": 7, + "community": 99, "norm_label": "pool_rule.py" }, { @@ -25570,7 +25640,7 @@ "source_location": "L17", "_origin": "ast", "id": "app_schemas_crm_pool_rule_poolruledetailbody", - "community": 7, + "community": 99, "norm_label": "poolruledetailbody" }, { @@ -25580,7 +25650,7 @@ "source_location": "L23", "_origin": "ast", "id": "app_schemas_crm_pool_rule_poolruleaddbody", - "community": 7, + "community": 99, "norm_label": "poolruleaddbody" }, { @@ -25610,7 +25680,7 @@ "source_location": "L54", "_origin": "ast", "id": "app_schemas_crm_pool_rule_poolruleupdatestatusbody", - "community": 7, + "community": 99, "norm_label": "poolruleupdatestatusbody" }, { @@ -25620,7 +25690,7 @@ "source_location": "L61", "_origin": "ast", "id": "app_schemas_crm_pool_rule_poolruleexecutebody", - "community": 7, + "community": 99, "norm_label": "poolruleexecutebody" }, { @@ -25630,7 +25700,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_pool_rule_rationale_1", - "community": 7, + "community": 99, "norm_label": "crm \u5ba2\u6237\u516c\u6d77\u6c60\u89c4\u5219 pydantic schemas" }, { @@ -25640,7 +25710,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_price_letter", - "community": 7, + "community": 104, "norm_label": "price_letter.py" }, { @@ -25650,7 +25720,7 @@ "source_location": "L9", "_origin": "ast", "id": "app_schemas_crm_price_letter_priceletterlistbody", - "community": 7, + "community": 104, "norm_label": "priceletterlistbody" }, { @@ -25660,7 +25730,7 @@ "source_location": "L26", "_origin": "ast", "id": "app_schemas_crm_price_letter_priceletterdetailbody", - "community": 7, + "community": 104, "norm_label": "priceletterdetailbody" }, { @@ -25670,7 +25740,7 @@ "source_location": "L32", "_origin": "ast", "id": "app_schemas_crm_price_letter_pricelettercreatebody", - "community": 7, + "community": 104, "norm_label": "pricelettercreatebody" }, { @@ -25680,7 +25750,7 @@ "source_location": "L48", "_origin": "ast", "id": "app_schemas_crm_price_letter_priceletterupdatebody", - "community": 7, + "community": 104, "norm_label": "priceletterupdatebody" }, { @@ -25700,7 +25770,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_price_letter_rationale_1", - "community": 7, + "community": 104, "norm_label": "crm \u8c03\u4ef7\u51fd pydantic schemas" }, { @@ -25710,7 +25780,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_product", - "community": 45, + "community": 7, "norm_label": "product.py" }, { @@ -25720,7 +25790,7 @@ "source_location": "L12", "_origin": "ast", "id": "app_schemas_crm_product_productcategorycreatebody", - "community": 45, + "community": 7, "norm_label": "productcategorycreatebody" }, { @@ -25730,7 +25800,7 @@ "source_location": "L26", "_origin": "ast", "id": "app_schemas_crm_product_productcategoryupdatebody", - "community": 45, + "community": 7, "norm_label": "productcategoryupdatebody" }, { @@ -25740,7 +25810,7 @@ "source_location": "L41", "_origin": "ast", "id": "app_schemas_crm_product_categorydeletebody", - "community": 45, + "community": 7, "norm_label": "categorydeletebody" }, { @@ -25750,7 +25820,7 @@ "source_location": "L47", "_origin": "ast", "id": "app_schemas_crm_product_productcategorytreebody", - "community": 45, + "community": 7, "norm_label": "productcategorytreebody" }, { @@ -25760,7 +25830,7 @@ "source_location": "L56", "_origin": "ast", "id": "app_schemas_crm_product_productupdatestatusbody", - "community": 45, + "community": 7, "norm_label": "productupdatestatusbody" }, { @@ -25777,27 +25847,27 @@ "label": "ProductBrandItem", "file_type": "code", "source_file": "app/schemas/crm/product.py", - "source_location": "L79", + "source_location": "L93", "_origin": "ast", "id": "app_schemas_crm_product_productbranditem", - "community": 45, + "community": 12, "norm_label": "productbranditem" }, { "label": "ProductAliasItem", "file_type": "code", "source_file": "app/schemas/crm/product.py", - "source_location": "L90", + "source_location": "L104", "_origin": "ast", "id": "app_schemas_crm_product_productaliasitem", - "community": 45, + "community": 12, "norm_label": "productaliasitem" }, { "label": "ProductCreateBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", - "source_location": "L100", + "source_location": "L114", "_origin": "ast", "id": "app_schemas_crm_product_productcreatebody", "community": 7, @@ -25807,7 +25877,7 @@ "label": "ProductUpdateBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", - "source_location": "L137", + "source_location": "L151", "_origin": "ast", "id": "app_schemas_crm_product_productupdatebody", "community": 7, @@ -25817,7 +25887,7 @@ "label": "ProductDetailBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", - "source_location": "L175", + "source_location": "L189", "_origin": "ast", "id": "app_schemas_crm_product_productdetailbody", "community": 7, @@ -25827,17 +25897,17 @@ "label": "ProductDeleteBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", - "source_location": "L181", + "source_location": "L195", "_origin": "ast", "id": "app_schemas_crm_product_productdeletebody", - "community": 45, + "community": 7, "norm_label": "productdeletebody" }, { "label": "ProductOptionsBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", - "source_location": "L188", + "source_location": "L202", "_origin": "ast", "id": "app_schemas_crm_product_productoptionsbody", "community": 7, @@ -25850,7 +25920,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_product_rationale_1", - "community": 45, + "community": 7, "norm_label": "crm \u4ea7\u54c1\u6a21\u5757 pydantic schemas" }, { @@ -25860,7 +25930,7 @@ "source_location": "L48", "_origin": "ast", "id": "app_schemas_crm_product_rationale_48", - "community": 45, + "community": 7, "norm_label": "\u4ea7\u54c1\u5206\u7c7b\u6811\u67e5\u8be2(\u5bc6\u6587\u89e3\u5bc6\u540e\u987b\u7528 pydantic \u7ed1\u5b9a,\u88f8 dict=none \u5728\u90e8\u5206\u94fe\u8def\u4e0b\u4f1a\u4e22 body)" }, { @@ -26240,7 +26310,7 @@ "source_location": "L8", "_origin": "ast", "id": "app_schemas_crm_supplier_info_supplierinfolistbody", - "community": 7, + "community": 60, "norm_label": "supplierinfolistbody" }, { @@ -26260,7 +26330,7 @@ "source_location": "L28", "_origin": "ast", "id": "app_schemas_crm_supplier_info_supplierinfodetailbody", - "community": 60, + "community": 99, "norm_label": "supplierinfodetailbody" }, { @@ -26370,7 +26440,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_db_inventory", - "community": 40, + "community": 10, "norm_label": "inventory.py" }, { @@ -26380,7 +26450,7 @@ "source_location": "L6", "_origin": "ast", "id": "app_schemas_db_inventory_inboundoutboundbase", - "community": 40, + "community": 10, "norm_label": "inboundoutboundbase" }, { @@ -26390,7 +26460,7 @@ "source_location": "L24", "_origin": "ast", "id": "app_schemas_db_inventory_inboundoutboundcreate", - "community": 40, + "community": 10, "norm_label": "inboundoutboundcreate" }, { @@ -26400,7 +26470,7 @@ "source_location": "L40", "_origin": "ast", "id": "app_schemas_db_inventory_inboundoutboundupdate", - "community": 40, + "community": 10, "norm_label": "inboundoutboundupdate" }, { @@ -26410,7 +26480,7 @@ "source_location": "L58", "_origin": "ast", "id": "app_schemas_db_inventory_createlinkforplanpayload", - "community": 40, + "community": 10, "norm_label": "createlinkforplanpayload" }, { @@ -26420,7 +26490,7 @@ "source_location": "L65", "_origin": "ast", "id": "app_schemas_db_inventory_inboundoutboundread", - "community": 40, + "community": 10, "norm_label": "inboundoutboundread" }, { @@ -26520,7 +26590,7 @@ "source_location": "L34", "_origin": "ast", "id": "app_schemas_db_public_inventory_inventorysiteurlread", - "community": 40, + "community": 10, "norm_label": "inventorysiteurlread" }, { @@ -26580,7 +26650,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_duty", - "community": 26, + "community": 121, "norm_label": "duty.py" }, { @@ -26590,7 +26660,7 @@ "source_location": "L13", "_origin": "ast", "id": "app_schemas_duty_dutyassignmentin", - "community": 26, + "community": 121, "norm_label": "dutyassignmentin" }, { @@ -26600,7 +26670,7 @@ "source_location": "L19", "_origin": "ast", "id": "app_schemas_duty_dutyslotsavein", - "community": 26, + "community": 121, "norm_label": "dutyslotsavein" }, { @@ -26610,7 +26680,7 @@ "source_location": "L31", "_origin": "ast", "id": "app_schemas_duty_dutyslotsavein_split_work_plans", - "community": 26, + "community": 121, "norm_label": "._split_work_plans()" }, { @@ -26620,7 +26690,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_schemas_duty_dutydaysavebody", - "community": 26, + "community": 121, "norm_label": "dutydaysavebody" }, { @@ -26630,7 +26700,7 @@ "source_location": "L45", "_origin": "ast", "id": "app_schemas_duty_dutylinkbody", - "community": 57, + "community": 121, "norm_label": "dutylinkbody" }, { @@ -26650,7 +26720,7 @@ "source_location": "L54", "_origin": "ast", "id": "app_schemas_duty_dutydictensurebody", - "community": 57, + "community": 121, "norm_label": "dutydictensurebody" }, { @@ -26660,7 +26730,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_duty_rationale_1", - "community": 26, + "community": 121, "norm_label": "\u503c\u73ed\u6392\u73ed pydantic schemas" }, { @@ -26670,7 +26740,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_leave", - "community": 121, + "community": 57, "norm_label": "leave.py" }, { @@ -26680,7 +26750,7 @@ "source_location": "L7", "_origin": "ast", "id": "app_schemas_leave_leavecreate", - "community": 121, + "community": 57, "norm_label": "leavecreate" }, { @@ -26690,7 +26760,7 @@ "source_location": "L16", "_origin": "ast", "id": "app_schemas_leave_leaveupdate", - "community": 121, + "community": 57, "norm_label": "leaveupdate" }, { @@ -26700,7 +26770,7 @@ "source_location": "L25", "_origin": "ast", "id": "app_schemas_leave_leaveresponse", - "community": 12, + "community": 57, "norm_label": "leaveresponse" }, { @@ -26710,7 +26780,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_schemas_leave_config", - "community": 121, + "community": 57, "norm_label": "config" }, { @@ -26720,7 +26790,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_leave_rationale_1", - "community": 121, + "community": 57, "norm_label": "pydantic schemas - \u8bf7\u5047\u7533\u8bf7" }, { @@ -26770,7 +26840,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_menu_favorite", - "community": 3, + "community": 45, "norm_label": "menu_favorite.py" }, { @@ -26780,7 +26850,7 @@ "source_location": "L6", "_origin": "ast", "id": "app_schemas_menu_favorite_menufavoritecreatebody", - "community": 3, + "community": 45, "norm_label": "menufavoritecreatebody" }, { @@ -26790,7 +26860,7 @@ "source_location": "L10", "_origin": "ast", "id": "app_schemas_menu_favorite_menufavoritedeletebody", - "community": 3, + "community": 45, "norm_label": "menufavoritedeletebody" }, { @@ -26800,7 +26870,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_schemas_menu_favorite_menufavoritereorderbody", - "community": 3, + "community": 45, "norm_label": "menufavoritereorderbody" }, { @@ -26810,7 +26880,7 @@ "source_location": "L15", "_origin": "ast", "id": "app_schemas_menu_favorite_rationale_15", - "community": 3, + "community": 45, "norm_label": "\u6536\u85cf\u83dc\u5355\u5b8c\u6574\u6709\u5e8f\u5217\u8868(paths \u987b\u4e0e\u5f53\u524d\u6709\u6548\u6536\u85cf\u96c6\u5408\u4e00\u81f4)" }, { @@ -26830,7 +26900,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_monitor_operlog", - "community": 121, + "community": 41, "norm_label": "operlog.py" }, { @@ -26840,7 +26910,7 @@ "source_location": "L8", "_origin": "ast", "id": "app_schemas_monitor_operlog_operloglistbody", - "community": 121, + "community": 41, "norm_label": "operloglistbody" }, { @@ -26850,7 +26920,7 @@ "source_location": "L21", "_origin": "ast", "id": "app_schemas_monitor_operlog_operlogdetailbody", - "community": 121, + "community": 41, "norm_label": "operlogdetailbody" }, { @@ -26860,7 +26930,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_monitor_operlog_rationale_1", - "community": 121, + "community": 41, "norm_label": "\u64cd\u4f5c\u65e5\u5fd7(\u517c\u5bb9 ruoyi operlog \u89c6\u56fe)" }, { @@ -26940,7 +27010,7 @@ "source_location": "L71", "_origin": "ast", "id": "app_schemas_pl_base_data_carrierauditreject", - "community": 115, + "community": 62, "norm_label": "carrierauditreject" }, { @@ -26980,7 +27050,7 @@ "source_location": "L132", "_origin": "ast", "id": "app_schemas_pl_base_data_vehiclepersonnelrow", - "community": 82, + "community": 74, "norm_label": "vehiclepersonnelrow" }, { @@ -27000,7 +27070,7 @@ "source_location": "L158", "_origin": "ast", "id": "app_schemas_pl_base_data_certread", - "community": 103, + "community": 102, "norm_label": "certread" }, { @@ -27050,7 +27120,7 @@ "source_location": "L229", "_origin": "ast", "id": "app_schemas_pl_base_data_vehicledetailread", - "community": 82, + "community": 74, "norm_label": "vehicledetailread" }, { @@ -27090,7 +27160,7 @@ "source_location": "L287", "_origin": "ast", "id": "app_schemas_pl_base_data_personnelread", - "community": 115, + "community": 62, "norm_label": "personnelread" }, { @@ -27100,7 +27170,7 @@ "source_location": "L302", "_origin": "ast", "id": "app_schemas_pl_base_data_personneldetailread", - "community": 115, + "community": 62, "norm_label": "personneldetailread" }, { @@ -27110,7 +27180,7 @@ "source_location": "L312", "_origin": "ast", "id": "app_schemas_pl_base_data_driverbase", - "community": 115, + "community": 62, "norm_label": "driverbase" }, { @@ -27120,7 +27190,7 @@ "source_location": "L325", "_origin": "ast", "id": "app_schemas_pl_base_data_drivercreate", - "community": 115, + "community": 62, "norm_label": "drivercreate" }, { @@ -27130,7 +27200,7 @@ "source_location": "L329", "_origin": "ast", "id": "app_schemas_pl_base_data_driverupdate", - "community": 115, + "community": 62, "norm_label": "driverupdate" }, { @@ -27140,7 +27210,7 @@ "source_location": "L343", "_origin": "ast", "id": "app_schemas_pl_base_data_driverread", - "community": 115, + "community": 62, "norm_label": "driverread" }, { @@ -27150,7 +27220,7 @@ "source_location": "L356", "_origin": "ast", "id": "app_schemas_pl_base_data_driverlistresponse", - "community": 115, + "community": 62, "norm_label": "driverlistresponse" }, { @@ -27160,7 +27230,7 @@ "source_location": "L366", "_origin": "ast", "id": "app_schemas_pl_base_data_vehicledrivercreate", - "community": 115, + "community": 62, "norm_label": "vehicledrivercreate" }, { @@ -27170,7 +27240,7 @@ "source_location": "L373", "_origin": "ast", "id": "app_schemas_pl_base_data_vehicledriverread", - "community": 62, + "community": 12, "norm_label": "vehicledriverread" }, { @@ -27180,7 +27250,7 @@ "source_location": "L383", "_origin": "ast", "id": "app_schemas_pl_base_data_carrierlistresponse", - "community": 115, + "community": 62, "norm_label": "carrierlistresponse" }, { @@ -27190,7 +27260,7 @@ "source_location": "L388", "_origin": "ast", "id": "app_schemas_pl_base_data_vehiclelistresponse", - "community": 103, + "community": 102, "norm_label": "vehiclelistresponse" }, { @@ -27220,7 +27290,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_pl_datetime_parse", - "community": 173, + "community": 124, "norm_label": "datetime_parse.py" }, { @@ -27230,7 +27300,7 @@ "source_location": "L10", "_origin": "ast", "id": "app_schemas_pl_datetime_parse_parse_optional_plan_datetime", - "community": 173, + "community": 124, "norm_label": "parse_optional_plan_datetime()" }, { @@ -27240,7 +27310,7 @@ "source_location": "", "_origin": "ast", "id": "app_schemas_pl_datetime_parse_py_datetime", - "community": 173, + "community": 124, "norm_label": "datetime" }, { @@ -27250,7 +27320,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_pl_datetime_parse_rationale_1", - "community": 173, + "community": 124, "norm_label": "\u8fd0\u8f93\u8ba1\u5212\u76f8\u5173\u65e5\u671f\u65f6\u95f4\u89e3\u6790:\u524d\u7aef date-picker \u4ec5\u4f20 yyyy-mm-dd\u3002" }, { @@ -27260,7 +27330,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_pl_freight", - "community": 28, + "community": 20, "norm_label": "freight.py" }, { @@ -27270,7 +27340,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementbase", - "community": 28, + "community": 20, "norm_label": "freightsettlementbase" }, { @@ -27280,7 +27350,7 @@ "source_location": "L26", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementcreate", - "community": 28, + "community": 20, "norm_label": "freightsettlementcreate" }, { @@ -27290,7 +27360,7 @@ "source_location": "L32", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementcreate_check_ids", - "community": 28, + "community": 20, "norm_label": ".check_ids()" }, { @@ -27300,7 +27370,7 @@ "source_location": "L38", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementupdate", - "community": 28, + "community": 20, "norm_label": "freightsettlementupdate" }, { @@ -27310,7 +27380,7 @@ "source_location": "L50", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementread", - "community": 28, + "community": 20, "norm_label": "freightsettlementread" }, { @@ -27320,7 +27390,7 @@ "source_location": "L64", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementlistitem", - "community": 28, + "community": 20, "norm_label": "freightsettlementlistitem" }, { @@ -27330,7 +27400,7 @@ "source_location": "L78", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementtransportread", - "community": 28, + "community": 12, "norm_label": "freightsettlementtransportread" }, { @@ -27340,7 +27410,7 @@ "source_location": "L88", "_origin": "ast", "id": "app_schemas_pl_freight_unsettledplanitem", - "community": 28, + "community": 20, "norm_label": "unsettledplanitem" }, { @@ -27350,7 +27420,7 @@ "source_location": "L108", "_origin": "ast", "id": "app_schemas_pl_freight_unsettledplanlistresponse", - "community": 28, + "community": 20, "norm_label": "unsettledplanlistresponse" }, { @@ -27360,7 +27430,7 @@ "source_location": "L113", "_origin": "ast", "id": "app_schemas_pl_freight_settlementplansummary", - "community": 28, + "community": 20, "norm_label": "settlementplansummary" }, { @@ -27370,7 +27440,7 @@ "source_location": "L122", "_origin": "ast", "id": "app_schemas_pl_freight_settlementapprovalflowitem", - "community": 28, + "community": 20, "norm_label": "settlementapprovalflowitem" }, { @@ -27380,7 +27450,7 @@ "source_location": "L136", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementwithtransports", - "community": 28, + "community": 20, "norm_label": "freightsettlementwithtransports" }, { @@ -27390,7 +27460,7 @@ "source_location": "L154", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementsubmitapprovalbody", - "community": 28, + "community": 20, "norm_label": "freightsettlementsubmitapprovalbody" }, { @@ -27400,7 +27470,7 @@ "source_location": "L161", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementapprovalactionbody", - "community": 28, + "community": 20, "norm_label": "freightsettlementapprovalactionbody" }, { @@ -27410,7 +27480,7 @@ "source_location": "L166", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementdisbursebody", - "community": 28, + "community": 20, "norm_label": "freightsettlementdisbursebody" }, { @@ -27420,7 +27490,7 @@ "source_location": "L179", "_origin": "ast", "id": "app_schemas_pl_freight_remittancevouchercreate", - "community": 28, + "community": 12, "norm_label": "remittancevouchercreate" }, { @@ -27430,7 +27500,7 @@ "source_location": "L188", "_origin": "ast", "id": "app_schemas_pl_freight_remittancevoucherread", - "community": 28, + "community": 20, "norm_label": "remittancevoucherread" }, { @@ -27440,7 +27510,7 @@ "source_location": "L207", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementlistquery", - "community": 28, + "community": 12, "norm_label": "freightsettlementlistquery" }, { @@ -27450,7 +27520,7 @@ "source_location": "L216", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementlistresponse", - "community": 28, + "community": 20, "norm_label": "freightsettlementlistresponse" }, { @@ -27460,7 +27530,7 @@ "source_location": "L221", "_origin": "ast", "id": "app_schemas_pl_freight_freightsettlementbytransportread", - "community": 28, + "community": 20, "norm_label": "freightsettlementbytransportread" }, { @@ -27660,7 +27730,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_pl_io_order", - "community": 54, + "community": 12, "norm_label": "io_order.py" }, { @@ -27690,7 +27760,7 @@ "source_location": "L24", "_origin": "ast", "id": "app_schemas_pl_io_order_ioorderitemread", - "community": 54, + "community": 12, "norm_label": "ioorderitemread" }, { @@ -27700,7 +27770,7 @@ "source_location": "L51", "_origin": "ast", "id": "app_schemas_pl_io_order_ioorderitempatch", - "community": 54, + "community": 12, "norm_label": "ioorderitempatch" }, { @@ -27710,7 +27780,7 @@ "source_location": "L58", "_origin": "ast", "id": "app_schemas_pl_io_order_ioorderpatch", - "community": 54, + "community": 50, "norm_label": "ioorderpatch" }, { @@ -27720,7 +27790,7 @@ "source_location": "L67", "_origin": "ast", "id": "app_schemas_pl_io_order_ioorderread", - "community": 54, + "community": 50, "norm_label": "ioorderread" }, { @@ -27730,7 +27800,7 @@ "source_location": "L108", "_origin": "ast", "id": "app_schemas_pl_io_order_ioorderlistresponse", - "community": 54, + "community": 50, "norm_label": "ioorderlistresponse" }, { @@ -27740,7 +27810,7 @@ "source_location": "L113", "_origin": "ast", "id": "app_schemas_pl_io_order_publicioorderitemfeedback", - "community": 54, + "community": 12, "norm_label": "publicioorderitemfeedback" }, { @@ -27750,9 +27820,29 @@ "source_location": "L120", "_origin": "ast", "id": "app_schemas_pl_io_order_publicioorderfeedback", - "community": 54, + "community": 12, "norm_label": "publicioorderfeedback" }, + { + "label": "PublicIoOrderHistoryRecordRead", + "file_type": "code", + "source_file": "app/schemas/pl/io_order.py", + "source_location": "L128", + "_origin": "ast", + "id": "app_schemas_pl_io_order_publicioorderhistoryrecordread", + "community": 54, + "norm_label": "publicioorderhistoryrecordread" + }, + { + "label": "PublicIoOrderHistoryPageRead", + "file_type": "code", + "source_file": "app/schemas/pl/io_order.py", + "source_location": "L148", + "_origin": "ast", + "id": "app_schemas_pl_io_order_publicioorderhistorypageread", + "community": 54, + "norm_label": "publicioorderhistorypageread" + }, { "label": "\u5165\u5e93\u5355 / \u51fa\u5e93\u5355 Pydantic schemas", "file_type": "rationale", @@ -27760,7 +27850,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_pl_io_order_rationale_1", - "community": 54, + "community": 12, "norm_label": "\u5165\u5e93\u5355 / \u51fa\u5e93\u5355 pydantic schemas" }, { @@ -27770,7 +27860,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_pl_menu_badge", - "community": 10, + "community": 120, "norm_label": "menu_badge.py" }, { @@ -27780,7 +27870,7 @@ "source_location": "L6", "_origin": "ast", "id": "app_schemas_pl_menu_badge_plmenubadgestatsread", - "community": 10, + "community": 120, "norm_label": "plmenubadgestatsread" }, { @@ -27870,7 +27960,7 @@ "source_location": "L16", "_origin": "ast", "id": "app_schemas_pl_plan_planproductbase", - "community": 5, + "community": 12, "norm_label": "planproductbase" }, { @@ -27890,7 +27980,7 @@ "source_location": "L59", "_origin": "ast", "id": "app_schemas_pl_plan_planproductupdate", - "community": 5, + "community": 12, "norm_label": "planproductupdate" }, { @@ -27910,7 +28000,7 @@ "source_location": "L88", "_origin": "ast", "id": "app_schemas_pl_plan_planproductread", - "community": 5, + "community": 47, "norm_label": "planproductread" }, { @@ -27930,7 +28020,7 @@ "source_location": "L155", "_origin": "ast", "id": "app_schemas_pl_plan_plancontractlink", - "community": 5, + "community": 47, "norm_label": "plancontractlink" }, { @@ -28060,7 +28150,7 @@ "source_location": "L353", "_origin": "ast", "id": "app_schemas_pl_plan_planproductcertitem", - "community": 5, + "community": 12, "norm_label": "planproductcertitem" }, { @@ -28110,7 +28200,7 @@ "source_location": "L390", "_origin": "ast", "id": "app_schemas_pl_plan_plandriverfeedbackproductitem", - "community": 5, + "community": 12, "norm_label": "plandriverfeedbackproductitem" }, { @@ -28120,7 +28210,7 @@ "source_location": "L397", "_origin": "ast", "id": "app_schemas_pl_plan_plandriverfeedbackupdatebody", - "community": 23, + "community": 5, "norm_label": "plandriverfeedbackupdatebody" }, { @@ -28130,7 +28220,7 @@ "source_location": "L406", "_origin": "ast", "id": "app_schemas_pl_plan_plansitefeedbackupdatebody", - "community": 23, + "community": 5, "norm_label": "plansitefeedbackupdatebody" }, { @@ -28170,7 +28260,7 @@ "source_location": "L440", "_origin": "ast", "id": "app_schemas_pl_plan_plancontractgapread", - "community": 5, + "community": 47, "norm_label": "plancontractgapread" }, { @@ -28200,7 +28290,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_pl_resource_snapshot", - "community": 79, + "community": 102, "norm_label": "resource_snapshot.py" }, { @@ -28210,7 +28300,7 @@ "source_location": "L11", "_origin": "ast", "id": "app_schemas_pl_resource_snapshot_snapshotcertread", - "community": 103, + "community": 102, "norm_label": "snapshotcertread" }, { @@ -28220,7 +28310,7 @@ "source_location": "L29", "_origin": "ast", "id": "app_schemas_pl_resource_snapshot_snapshotpersonnelrow", - "community": 103, + "community": 102, "norm_label": "snapshotpersonnelrow" }, { @@ -28230,7 +28320,7 @@ "source_location": "L45", "_origin": "ast", "id": "app_schemas_pl_resource_snapshot_transportresourcesnapshot", - "community": 79, + "community": 102, "norm_label": "transportresourcesnapshot" }, { @@ -28240,7 +28330,7 @@ "source_location": "L65", "_origin": "ast", "id": "app_schemas_pl_resource_snapshot_parse_resource_snapshot", - "community": 79, + "community": 31, "norm_label": "parse_resource_snapshot()" }, { @@ -28250,7 +28340,7 @@ "source_location": "", "_origin": "ast", "id": "app_schemas_pl_resource_snapshot_py_any", - "community": 79, + "community": 31, "norm_label": "any" }, { @@ -28270,7 +28360,7 @@ "source_location": "L91", "_origin": "ast", "id": "app_schemas_pl_resource_snapshot_planresourcesnapshotmixin_coerce_resource_snapshot", - "community": 79, + "community": 31, "norm_label": "._coerce_resource_snapshot()" }, { @@ -28280,7 +28370,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_pl_resource_snapshot_rationale_1", - "community": 79, + "community": 102, "norm_label": "\u8fd0\u8f93\u8ba1\u5212 - \u5b89\u6392\u8fd0\u8f93\u65f6\u8f66\u8f86/\u4eba\u5458/\u8bc1\u4ef6\u8d44\u6e90\u5feb\u7167 schema" }, { @@ -28290,7 +28380,7 @@ "source_location": "L66", "_origin": "ast", "id": "app_schemas_pl_resource_snapshot_rationale_66", - "community": 79, + "community": 31, "norm_label": "\u4ece orm \u6587\u672c\u5217\u6216 dict \u89e3\u6790\u5feb\u7167\u3002" }, { @@ -28830,7 +28920,7 @@ "source_location": "L52", "_origin": "ast", "id": "app_schemas_pl_vehicle_recharge_vehiclerechargeapplylistresponse", - "community": 16, + "community": 46, "norm_label": "vehiclerechargeapplylistresponse" }, { @@ -28840,7 +28930,7 @@ "source_location": "L61", "_origin": "ast", "id": "app_schemas_pl_vehicle_recharge_vehiclerechargeapplyoption", - "community": 16, + "community": 46, "norm_label": "vehiclerechargeapplyoption" }, { @@ -28910,7 +29000,7 @@ "source_location": "L123", "_origin": "ast", "id": "app_schemas_pl_vehicle_recharge_vehiclerechargerecordlistresponse", - "community": 16, + "community": 46, "norm_label": "vehiclerechargerecordlistresponse" }, { @@ -28930,7 +29020,7 @@ "source_location": "L156", "_origin": "ast", "id": "app_schemas_pl_vehicle_recharge_vehiclerechargedisburseboardlistresponse", - "community": 16, + "community": 46, "norm_label": "vehiclerechargedisburseboardlistresponse" }, { @@ -29360,7 +29450,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_bx_advance", - "community": 24, + "community": 0, "norm_label": "advance.py" }, { @@ -29370,7 +29460,7 @@ "source_location": "L26", "_origin": "ast", "id": "app_services_bx_advance_advanceservice", - "community": 19, + "community": 0, "norm_label": "advanceservice" }, { @@ -29380,7 +29470,7 @@ "source_location": "L28", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_tenant_no", - "community": 19, + "community": 0, "norm_label": "._tenant_no()" }, { @@ -29390,7 +29480,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_bx_advance_py_session", - "community": 19, + "community": 0, "norm_label": "session" }, { @@ -29400,7 +29490,7 @@ "source_location": "L32", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_get_by_id", - "community": 19, + "community": 0, "norm_label": ".get_by_id()" }, { @@ -29410,7 +29500,7 @@ "source_location": "L45", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_get_paged", - "community": 19, + "community": 0, "norm_label": ".get_paged()" }, { @@ -29420,7 +29510,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_bx_advance_py_any", - "community": 19, + "community": 0, "norm_label": "any" }, { @@ -29430,7 +29520,7 @@ "source_location": "L59", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_create", - "community": 19, + "community": 0, "norm_label": ".create()" }, { @@ -29440,7 +29530,7 @@ "source_location": "L76", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_update", - "community": 19, + "community": 0, "norm_label": ".update()" }, { @@ -29450,7 +29540,7 @@ "source_location": "L95", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_soft_delete", - "community": 19, + "community": 0, "norm_label": ".soft_delete()" }, { @@ -29460,7 +29550,7 @@ "source_location": "L102", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_pending_approval", - "community": 19, + "community": 0, "norm_label": ".pending_approval()" }, { @@ -29470,7 +29560,7 @@ "source_location": "L163", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_approved_by_me", - "community": 19, + "community": 0, "norm_label": ".approved_by_me()" }, { @@ -29480,7 +29570,7 @@ "source_location": "L219", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_workflow_nodes", - "community": 19, + "community": 0, "norm_label": "._workflow_nodes()" }, { @@ -29490,7 +29580,7 @@ "source_location": "L232", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_submit", - "community": 19, + "community": 0, "norm_label": ".submit()" }, { @@ -29500,7 +29590,7 @@ "source_location": "L249", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_approve", - "community": 19, + "community": 0, "norm_label": ".approve()" }, { @@ -29510,7 +29600,7 @@ "source_location": "L294", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_reject", - "community": 19, + "community": 0, "norm_label": ".reject()" }, { @@ -29520,7 +29610,7 @@ "source_location": "L331", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_approval_record_dict", - "community": 19, + "community": 0, "norm_label": "._approval_record_dict()" }, { @@ -29530,7 +29620,7 @@ "source_location": "L344", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_latest_approval_per_node", - "community": 19, + "community": 0, "norm_label": "._latest_approval_per_node()" }, { @@ -29540,7 +29630,7 @@ "source_location": "L361", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_query_approvals", - "community": 19, + "community": 0, "norm_label": "._query_approvals()" }, { @@ -29550,7 +29640,7 @@ "source_location": "L373", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_get_approvals", - "community": 19, + "community": 0, "norm_label": ".get_approvals()" }, { @@ -29560,7 +29650,7 @@ "source_location": "L409", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_get_approval_history", - "community": 19, + "community": 0, "norm_label": ".get_approval_history()" }, { @@ -29570,7 +29660,7 @@ "source_location": "L428", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_global_status_counts", - "community": 19, + "community": 0, "norm_label": ".global_status_counts()" }, { @@ -29580,7 +29670,7 @@ "source_location": "L437", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_my_apply_base", - "community": 19, + "community": 0, "norm_label": "._my_apply_base()" }, { @@ -29590,7 +29680,7 @@ "source_location": "L449", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_my_apply_stats", - "community": 19, + "community": 0, "norm_label": ".my_apply_stats()" }, { @@ -29600,7 +29690,7 @@ "source_location": "L529", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_pending_approval_stats", - "community": 19, + "community": 0, "norm_label": ".pending_approval_stats()" }, { @@ -29610,7 +29700,7 @@ "source_location": "L560", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_offset_amount_map", - "community": 18, + "community": 2, "norm_label": ".offset_amount_map()" }, { @@ -29620,7 +29710,7 @@ "source_location": "L579", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_issue", - "community": 19, + "community": 0, "norm_label": ".issue()" }, { @@ -29630,7 +29720,7 @@ "source_location": "L604", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_finance_issue_stats", - "community": 19, + "community": 0, "norm_label": ".finance_issue_stats()" }, { @@ -29640,7 +29730,7 @@ "source_location": "L347", "_origin": "ast", "id": "app_services_bx_advance_rationale_347", - "community": 19, + "community": 0, "norm_label": "\u540c\u4e00\u8282\u70b9\u591a\u6b21\u5ba1\u6279\u65f6,\u53d6 approval_time \u6700\u65b0\u7684\u4e00\u6761\u4f5c\u4e3a\u5f53\u524d\u8282\u70b9\u72b6\u6001\u3002" }, { @@ -29650,7 +29740,7 @@ "source_location": "L412", "_origin": "ast", "id": "app_services_bx_advance_rationale_412", - "community": 19, + "community": 0, "norm_label": "\u8fd4\u56de\u5168\u90e8\u5ba1\u6279\u52a8\u4f5c,\u6309\u65f6\u95f4\u6b63\u5e8f\u6392\u5217,\u7528\u4e8e\u5c55\u793a\u5b8c\u6574\u5ba1\u6279\u5386\u53f2\u3002" }, { @@ -29660,7 +29750,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_bx_approval_cycle", - "community": 24, + "community": 0, "norm_label": "approval_cycle.py" }, { @@ -29670,7 +29760,7 @@ "source_location": "L10", "_origin": "ast", "id": "app_services_bx_approval_cycle_filter_current_cycle_approvals", - "community": 24, + "community": 0, "norm_label": "filter_current_cycle_approvals()" }, { @@ -29680,7 +29770,7 @@ "source_location": "", "_origin": "ast", "id": "t", - "community": 24, + "community": 0, "norm_label": "t" }, { @@ -29690,7 +29780,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_bx_approval_cycle_rationale_1", - "community": 24, + "community": 0, "norm_label": "\u5ba1\u6279\u8f6e\u6b21\u8fc7\u6ee4 \u2014 \u9a73\u56de\u540e\u91cd\u65b0\u63d0\u4ea4\u65f6,\u8fdb\u5ea6\u63a5\u53e3\u4ec5\u5c55\u793a\u5f53\u524d\u8f6e\u6b21\u3002" }, { @@ -29700,7 +29790,7 @@ "source_location": "L17", "_origin": "ast", "id": "app_services_bx_approval_cycle_rationale_17", - "community": 24, + "community": 0, "norm_label": "\u5ba1\u6279\u8fdb\u5ea6\u4ec5\u5c55\u793a\u5f53\u524d\u8f6e\u6b21;\u5b8c\u6574\u5386\u53f2\u7531 get_approval_history \u8fd4\u56de\u3002" }, { @@ -29710,7 +29800,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_bx_attachment", - "community": 24, + "community": 14, "norm_label": "attachment.py" }, { @@ -29810,7 +29900,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_bx_base", - "community": 24, + "community": 14, "norm_label": "base.py" }, { @@ -29820,7 +29910,7 @@ "source_location": "L18", "_origin": "ast", "id": "app_services_bx_base_bxcrudservice", - "community": 24, + "community": 14, "norm_label": "bxcrudservice" }, { @@ -29830,7 +29920,7 @@ "source_location": "L20", "_origin": "ast", "id": "app_services_bx_base_bxcrudservice_get_by_id", - "community": 19, + "community": 14, "norm_label": ".get_by_id()" }, { @@ -29840,7 +29930,7 @@ "source_location": "", "_origin": "ast", "id": "m", - "community": 19, + "community": 14, "norm_label": "m" }, { @@ -29850,7 +29940,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_bx_base_py_session", - "community": 19, + "community": 14, "norm_label": "session" }, { @@ -29860,7 +29950,7 @@ "source_location": "L38", "_origin": "ast", "id": "app_services_bx_base_bxcrudservice_get_paged", - "community": 19, + "community": 14, "norm_label": ".get_paged()" }, { @@ -29870,7 +29960,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_bx_base_py_any", - "community": 19, + "community": 14, "norm_label": "any" }, { @@ -29880,7 +29970,7 @@ "source_location": "L65", "_origin": "ast", "id": "app_services_bx_base_bxcrudservice_create", - "community": 19, + "community": 14, "norm_label": ".create()" }, { @@ -29890,7 +29980,7 @@ "source_location": "L85", "_origin": "ast", "id": "app_services_bx_base_bxcrudservice_update", - "community": 19, + "community": 14, "norm_label": ".update()" }, { @@ -29900,7 +29990,7 @@ "source_location": "L109", "_origin": "ast", "id": "app_services_bx_base_bxcrudservice_soft_delete", - "community": 19, + "community": 14, "norm_label": ".soft_delete()" }, { @@ -29910,7 +30000,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_bx_base_rationale_1", - "community": 24, + "community": 14, "norm_label": "\u62a5\u9500\u6a21\u5757 service \u57fa\u7c7b \u2014 \u79df\u6237\u9694\u79bb + uuid + \u8f6f\u5220\u9664\u3002" }, { @@ -29920,7 +30010,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_bx_expense_item", - "community": 24, + "community": 13, "norm_label": "expense_item.py" }, { @@ -30020,7 +30110,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_bx_invoice", - "community": 24, + "community": 43, "norm_label": "invoice.py" }, { @@ -30400,7 +30490,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_bx_reimburse", - "community": 24, + "community": 58, "norm_label": "reimburse.py" }, { @@ -30830,7 +30920,7 @@ "source_location": "L1276", "_origin": "ast", "id": "app_services_bx_reimburse_reimburseservice_finance_payment_stats", - "community": 19, + "community": 0, "norm_label": ".finance_payment_stats()" }, { @@ -31330,7 +31420,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_bx_workflow", - "community": 24, + "community": 14, "norm_label": "workflow.py" }, { @@ -31460,7 +31550,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_bx_data_scope", - "community": 24, + "community": 14, "norm_label": "bx_data_scope.py" }, { @@ -31470,7 +31560,7 @@ "source_location": "L13", "_origin": "ast", "id": "app_services_bx_data_scope_apply_bx_scope", - "community": 19, + "community": 0, "norm_label": "apply_bx_scope()" }, { @@ -31480,7 +31570,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_bx_data_scope_py_session", - "community": 24, + "community": 14, "norm_label": "session" }, { @@ -31490,7 +31580,7 @@ "source_location": "L18", "_origin": "ast", "id": "app_services_bx_data_scope_assert_bx_row_in_scope", - "community": 24, + "community": 14, "norm_label": "assert_bx_row_in_scope()" }, { @@ -31500,7 +31590,7 @@ "source_location": "L29", "_origin": "ast", "id": "app_services_bx_data_scope_assert_bx_biz_in_scope", - "community": 24, + "community": 14, "norm_label": "assert_bx_biz_in_scope()" }, { @@ -31510,7 +31600,7 @@ "source_location": "L63", "_origin": "ast", "id": "app_services_bx_data_scope_assert_bx_attachment_biz_in_scope", - "community": 24, + "community": 14, "norm_label": "assert_bx_attachment_biz_in_scope()" }, { @@ -31520,7 +31610,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_bx_data_scope_rationale_1", - "community": 24, + "community": 14, "norm_label": "bx \u6a21\u5757\u6570\u636e\u6743\u9650\u8f85\u52a9(create_by / create_dept_id)\u3002" }, { @@ -31530,7 +31620,7 @@ "source_location": "L36", "_origin": "ast", "id": "app_services_bx_data_scope_rationale_36", - "community": 24, + "community": 14, "norm_label": "\u9644\u4ef6\u4e0b\u8f7d/\u5220\u9664/\u7ed1\u5b9a\u524d\u6821\u9a8c\u5173\u8054\u4e1a\u52a1\u5355\u5728\u6570\u636e\u6743\u9650\u5185\u3002" }, { @@ -31670,7 +31760,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_crm_supplier_hazard", - "community": 102, + "community": 128, "norm_label": "crm_supplier_hazard.py" }, { @@ -31680,7 +31770,7 @@ "source_location": "L12", "_origin": "ast", "id": "app_services_crm_supplier_hazard_product_allowed", - "community": 102, + "community": 128, "norm_label": "product_allowed()" }, { @@ -31690,7 +31780,7 @@ "source_location": "L33", "_origin": "ast", "id": "app_services_crm_supplier_hazard_get_supplier_hazard_flags", - "community": 86, + "community": 128, "norm_label": "get_supplier_hazard_flags()" }, { @@ -31700,7 +31790,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_crm_supplier_hazard_py_session", - "community": 118, + "community": 128, "norm_label": "session" }, { @@ -31710,7 +31800,7 @@ "source_location": "L50", "_origin": "ast", "id": "app_services_crm_supplier_hazard_enrich_products_with_hazard_flags", - "community": 118, + "community": 128, "norm_label": "enrich_products_with_hazard_flags()" }, { @@ -31720,7 +31810,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_crm_supplier_hazard_py_any", - "community": 118, + "community": 128, "norm_label": "any" }, { @@ -31730,7 +31820,7 @@ "source_location": "L83", "_origin": "ast", "id": "app_services_crm_supplier_hazard_assert_products_allowed_for_supplier", - "community": 118, + "community": 128, "norm_label": "assert_products_allowed_for_supplier()" }, { @@ -31740,7 +31830,7 @@ "source_location": "L54", "_origin": "ast", "id": "app_services_crm_supplier_hazard_rationale_54", - "community": 118, + "community": 128, "norm_label": "\u6279\u91cf\u56de\u586b\u660e\u7ec6\u884c istoxic/isexplosive(\u6765\u81ea\u4ea7\u54c1\u4e3b\u6570\u636e,\u4f9b\u524d\u7aef\u5207\u6362\u4e3b\u4f53\u5254\u9664)\u3002" }, { @@ -31840,7 +31930,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_db_inventory_id", - "community": 114, + "community": 19, "norm_label": "inventory_id.py" }, { @@ -31850,7 +31940,7 @@ "source_location": "L15", "_origin": "ast", "id": "app_services_db_inventory_id_max_numeric_inbound_outbound_id", - "community": 114, + "community": 19, "norm_label": "max_numeric_inbound_outbound_id()" }, { @@ -31860,7 +31950,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_db_inventory_id_py_session", - "community": 114, + "community": 19, "norm_label": "session" }, { @@ -31870,7 +31960,7 @@ "source_location": "L32", "_origin": "ast", "id": "app_services_db_inventory_id_ensure_sequence_row", - "community": 114, + "community": 19, "norm_label": "_ensure_sequence_row()" }, { @@ -31880,7 +31970,7 @@ "source_location": "L56", "_origin": "ast", "id": "app_services_db_inventory_id_allocate_inbound_outbound_id", - "community": 114, + "community": 19, "norm_label": "_allocate_inbound_outbound_id()" }, { @@ -31890,7 +31980,7 @@ "source_location": "L73", "_origin": "ast", "id": "app_services_db_inventory_id_next_inbound_outbound_id", - "community": 114, + "community": 19, "norm_label": "next_inbound_outbound_id()" }, { @@ -31900,7 +31990,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_db_inventory_id_rationale_1", - "community": 114, + "community": 19, "norm_label": "\u51fa\u5165\u5e93\u5355 id \u751f\u6210 \u2014 \u79df\u6237\u5185\u7eaf\u6570\u5b57\u81ea\u589e,\u5e76\u53d1\u5b89\u5168\u3002" }, { @@ -31910,7 +32000,7 @@ "source_location": "L16", "_origin": "ast", "id": "app_services_db_inventory_id_rationale_16", - "community": 114, + "community": 19, "norm_label": "\u5f53\u524d\u79df\u6237\u4e0b\u7eaf\u6570\u5b57 id \u7684\u6700\u5927\u503c(\u4e0d\u542b uuid \u7b49\u975e\u6570\u5b57\u4e3b\u952e)\u3002" }, { @@ -31920,7 +32010,7 @@ "source_location": "L74", "_origin": "ast", "id": "app_services_db_inventory_id_rationale_74", - "community": 114, + "community": 19, "norm_label": "\u5206\u914d\u4e0b\u4e00\u6761\u51fa\u5165\u5e93\u5355 id(\u7eaf\u6570\u5b57\u5b57\u7b26\u4e32)\u3002 \u4f7f\u7528 db_sequence \u884c\u9501 + next_val \u9012\u589e,\u907f\u514d\u5e76\u53d1\u4e0b\u91cd\u590d id\u3002" }, { @@ -32090,7 +32180,7 @@ "source_location": "L251", "_origin": "ast", "id": "app_services_db_mappers_parse_date_str", - "community": 40, + "community": 61, "norm_label": "parse_date_str()" }, { @@ -32170,7 +32260,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_db_product_helpers", - "community": 40, + "community": 10, "norm_label": "product_helpers.py" }, { @@ -32180,7 +32270,7 @@ "source_location": "L13", "_origin": "ast", "id": "app_services_db_product_helpers_productsnapshot", - "community": 40, + "community": 10, "norm_label": "productsnapshot" }, { @@ -32190,7 +32280,7 @@ "source_location": "L19", "_origin": "ast", "id": "app_services_db_product_helpers_resolve_crm_product", - "community": 40, + "community": 10, "norm_label": "resolve_crm_product()" }, { @@ -32200,7 +32290,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_db_product_helpers_py_session", - "community": 40, + "community": 10, "norm_label": "session" }, { @@ -32220,7 +32310,7 @@ "source_location": "L67", "_origin": "ast", "id": "app_services_db_product_helpers_apply_product_snapshot_to_inventory", - "community": 40, + "community": 10, "norm_label": "apply_product_snapshot_to_inventory()" }, { @@ -32240,7 +32330,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_db_product_helpers_rationale_1", - "community": 40, + "community": 10, "norm_label": "\u5730\u78c5\u6a21\u5757 \u2014 crm \u4ea7\u54c1\u89e3\u6790\u4e0e\u5feb\u7167\u5199\u5165\u3002" }, { @@ -32250,7 +32340,7 @@ "source_location": "L26", "_origin": "ast", "id": "app_services_db_product_helpers_rationale_26", - "community": 40, + "community": 10, "norm_label": "\u6821\u9a8c crm \u4ea7\u54c1\u5e76\u8fd4\u56de\u540d\u79f0/\u89c4\u683c\u5feb\u7167\u3002\u65b0\u5efa\u5355\u636e product_id \u5fc5\u586b\u3002 require_on_shelf=false \u7528\u4e8e\u8fd0\u8f93\u8ba1\u5212\u8054\u52a8\u5730\u78c5\u7b49\u5386" }, { @@ -32373,6 +32463,76 @@ "community": 40, "norm_label": "db \u5730\u78c5\u6a21\u5757\u6570\u636e\u6743\u9650\u8f85\u52a9(create_by / create_dept_id)\u3002" }, + { + "label": "dict_ensure.py", + "file_type": "code", + "source_file": "app/services/dict_ensure.py", + "source_location": "L1", + "_origin": "ast", + "id": "app_services_dict_ensure", + "community": 24, + "norm_label": "dict_ensure.py" + }, + { + "label": "DictEnsureError", + "file_type": "code", + "source_file": "app/services/dict_ensure.py", + "source_location": "L20", + "_origin": "ast", + "id": "app_services_dict_ensure_dictensureerror", + "community": 24, + "norm_label": "dictensureerror" + }, + { + "label": "ValueError", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "valueerror", + "community": 24, + "norm_label": "valueerror" + }, + { + "label": "ensure_dict_data()", + "file_type": "code", + "source_file": "app/services/dict_ensure.py", + "source_location": "L24", + "_origin": "ast", + "id": "app_services_dict_ensure_ensure_dict_data", + "community": 24, + "norm_label": "ensure_dict_data()" + }, + { + "label": "Session", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "app_services_dict_ensure_py_session", + "community": 24, + "norm_label": "session" + }, + { + "label": "ensure_remove_dict_data()", + "file_type": "code", + "source_file": "app/services/dict_ensure.py", + "source_location": "L96", + "_origin": "ast", + "id": "app_services_dict_ensure_ensure_remove_dict_data", + "community": 24, + "norm_label": "ensure_remove_dict_data()" + }, + { + "label": "\u4e1a\u52a1\u9875\u5b57\u5178 ensure\uff1a\u767d\u540d\u5355\u5185\u6309 label \u590d\u7528\u6216\u63d2\u5165 sys_dict_data\u3002", + "file_type": "rationale", + "source_file": "app/services/dict_ensure.py", + "source_location": "L1", + "_origin": "ast", + "id": "app_services_dict_ensure_rationale_1", + "community": 24, + "norm_label": "\u4e1a\u52a1\u9875\u5b57\u5178 ensure:\u767d\u540d\u5355\u5185\u6309 label \u590d\u7528\u6216\u63d2\u5165 sys_dict_data\u3002" + }, { "label": "duty_schedule.py", "file_type": "code", @@ -32393,16 +32553,6 @@ "community": 26, "norm_label": "dutybizerror" }, - { - "label": "ValueError", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "valueerror", - "community": 0, - "norm_label": "valueerror" - }, { "label": "parse_hhmm()", "file_type": "code", @@ -32410,7 +32560,7 @@ "source_location": "L41", "_origin": "ast", "id": "app_services_duty_schedule_parse_hhmm", - "community": 26, + "community": 114, "norm_label": "parse_hhmm()" }, { @@ -32420,7 +32570,7 @@ "source_location": "", "_origin": "ast", "id": "time", - "community": 26, + "community": 114, "norm_label": "time" }, { @@ -32430,7 +32580,7 @@ "source_location": "L57", "_origin": "ast", "id": "app_services_duty_schedule_format_hhmm", - "community": 26, + "community": 114, "norm_label": "format_hhmm()" }, { @@ -32440,7 +32590,7 @@ "source_location": "L63", "_origin": "ast", "id": "app_services_duty_schedule_format_time_label", - "community": 26, + "community": 114, "norm_label": "format_time_label()" }, { @@ -32450,7 +32600,7 @@ "source_location": "L74", "_origin": "ast", "id": "app_services_duty_schedule_split_work_plans", - "community": 26, + "community": 17, "norm_label": "split_work_plans()" }, { @@ -32460,7 +32610,7 @@ "source_location": "L80", "_origin": "ast", "id": "app_services_duty_schedule_join_work_plans", - "community": 26, + "community": 17, "norm_label": "join_work_plans()" }, { @@ -32470,7 +32620,7 @@ "source_location": "L85", "_origin": "ast", "id": "app_services_duty_schedule_build_dict_value_from_label", - "community": 26, + "community": 17, "norm_label": "build_dict_value_from_label()" }, { @@ -32480,7 +32630,7 @@ "source_location": "L99", "_origin": "ast", "id": "app_services_duty_schedule_pad_hhmm", - "community": 26, + "community": 17, "norm_label": "_pad_hhmm()" }, { @@ -32490,7 +32640,7 @@ "source_location": "L103", "_origin": "ast", "id": "app_services_duty_schedule_parse_time_range_input", - "community": 26, + "community": 17, "norm_label": "parse_time_range_input()" }, { @@ -32510,7 +32660,7 @@ "source_location": "L137", "_origin": "ast", "id": "app_services_duty_schedule_ensure_dict_data", - "community": 26, + "community": 17, "norm_label": "ensure_dict_data()" }, { @@ -32540,7 +32690,7 @@ "source_location": "L237", "_origin": "ast", "id": "app_services_duty_schedule_normalize_person_name", - "community": 26, + "community": 17, "norm_label": "normalize_person_name()" }, { @@ -32570,7 +32720,7 @@ "source_location": "L255", "_origin": "ast", "id": "app_services_duty_schedule_assignment_dict", - "community": 26, + "community": 114, "norm_label": "_assignment_dict()" }, { @@ -32580,7 +32730,7 @@ "source_location": "L264", "_origin": "ast", "id": "app_services_duty_schedule_slot_dict", - "community": 26, + "community": 114, "norm_label": "_slot_dict()" }, { @@ -32730,7 +32880,7 @@ "source_location": "L690", "_origin": "ast", "id": "app_services_duty_schedule_resolve_duty_staff_role_id", - "community": 26, + "community": 17, "norm_label": "resolve_duty_staff_role_id()" }, { @@ -32740,7 +32890,7 @@ "source_location": "L716", "_origin": "ast", "id": "app_services_duty_schedule_list_duty_staff_users", - "community": 26, + "community": 17, "norm_label": "list_duty_staff_users()" }, { @@ -32790,7 +32940,7 @@ "source_location": "L831", "_origin": "ast", "id": "app_services_duty_schedule_grab", - "community": 26, + "community": 17, "norm_label": "grab()" }, { @@ -32810,7 +32960,7 @@ "source_location": "L104", "_origin": "ast", "id": "app_services_duty_schedule_rationale_104", - "community": 26, + "community": 17, "norm_label": "\u89e3\u6790\u300c09:00-17:00\u300d\u300c18:00-\u6b21\u65e507:00\u300d\u7b49,\u8fd4\u56de start/end/crossday/label/value\u3002" }, { @@ -32820,7 +32970,7 @@ "source_location": "L691", "_origin": "ast", "id": "app_services_duty_schedule_rationale_691", - "community": 26, + "community": 17, "norm_label": "\u6309\u56fa\u5b9a id \u67e5\u627e\u300c\u503c\u73ed\u4eba\u5458\u300d\u89d2\u8272;\u627e\u4e0d\u5230\u518d\u6309\u89d2\u8272\u540d\u515c\u5e95\u3002" }, { @@ -32830,7 +32980,7 @@ "source_location": "L717", "_origin": "ast", "id": "app_services_duty_schedule_rationale_717", - "community": 26, + "community": 17, "norm_label": "\u672c\u79df\u6237\u542f\u7528\u4e14\u7ed1\u5b9a\u300c\u503c\u73ed\u4eba\u5458\u300d\u89d2\u8272\u7684\u7528\u6237(\u516c\u5f00\u9875 users / \u7ba1\u7406\u7aef options)\u3002" }, { @@ -32840,7 +32990,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_brand_archive", - "community": 80, + "community": 145, "norm_label": "pl_brand_archive.py" }, { @@ -32850,7 +33000,7 @@ "source_location": "L11", "_origin": "ast", "id": "app_services_pl_brand_archive_load_brand_qtys_by_plan_product_ids", - "community": 80, + "community": 123, "norm_label": "load_brand_qtys_by_plan_product_ids()" }, { @@ -32860,7 +33010,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_brand_archive_py_session", - "community": 80, + "community": 123, "norm_label": "session" }, { @@ -32870,7 +33020,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_brand_archive_py_any", - "community": 80, + "community": 123, "norm_label": "any" }, { @@ -32880,7 +33030,7 @@ "source_location": "L46", "_origin": "ast", "id": "app_services_pl_brand_archive_validate_brand_qty_rows", - "community": 80, + "community": 145, "norm_label": "validate_brand_qty_rows()" }, { @@ -32890,7 +33040,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_brand_archive_py_decimal", - "community": 80, + "community": 145, "norm_label": "decimal" }, { @@ -32900,7 +33050,7 @@ "source_location": "L64", "_origin": "ast", "id": "app_services_pl_brand_archive_persist_plan_product_brand_qtys", - "community": 80, + "community": 123, "norm_label": "persist_plan_product_brand_qtys()" }, { @@ -32910,7 +33060,7 @@ "source_location": "L17", "_origin": "ast", "id": "app_services_pl_brand_archive_rationale_17", - "community": 80, + "community": 123, "norm_label": "\u6309\u8ba1\u5212\u4ea7\u54c1\u660e\u7ec6 id \u6279\u91cf\u52a0\u8f7d\u5f52\u6863\u54c1\u724c\u6570\u91cf(brandid/brandname/qty)\u3002" }, { @@ -32920,7 +33070,7 @@ "source_location": "L75", "_origin": "ast", "id": "app_services_pl_brand_archive_rationale_75", - "community": 80, + "community": 123, "norm_label": "\u8f6f\u5220\u65e7\u54c1\u724c\u91cf\u884c\u540e\u6309\u5f52\u6863\u7ed3\u679c\u63d2\u5165;\u65e0\u54c1\u724c\u7ea6\u5b9a\u5219\u53ea\u8f6f\u5220\u4e0d\u63d2\u5165\u3002" }, { @@ -32930,7 +33080,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_carrier_service", - "community": 62, + "community": 80, "norm_label": "pl_carrier_service.py" }, { @@ -32940,7 +33090,7 @@ "source_location": "L10", "_origin": "ast", "id": "app_services_pl_carrier_service_urls_nonempty", - "community": 62, + "community": 80, "norm_label": "_urls_nonempty()" }, { @@ -32950,7 +33100,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_services_pl_carrier_service_carrier_qualification_complete", - "community": 62, + "community": 80, "norm_label": "carrier_qualification_complete()" }, { @@ -32960,7 +33110,7 @@ "source_location": "L22", "_origin": "ast", "id": "app_services_pl_carrier_service_carrier_agreement_expired", - "community": 62, + "community": 80, "norm_label": "carrier_agreement_expired()" }, { @@ -32970,7 +33120,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_carrier_service_py_date", - "community": 62, + "community": 80, "norm_label": "date" }, { @@ -32980,7 +33130,7 @@ "source_location": "L30", "_origin": "ast", "id": "app_services_pl_carrier_service_carrier_audit_approved", - "community": 62, + "community": 80, "norm_label": "carrier_audit_approved()" }, { @@ -32990,7 +33140,7 @@ "source_location": "L34", "_origin": "ast", "id": "app_services_pl_carrier_service_carrier_eligible_for_transport", - "community": 62, + "community": 80, "norm_label": "carrier_eligible_for_transport()" }, { @@ -33000,7 +33150,7 @@ "source_location": "L38", "_origin": "ast", "id": "app_services_pl_carrier_service_assert_carrier_eligible_for_transport", - "community": 62, + "community": 80, "norm_label": "assert_carrier_eligible_for_transport()" }, { @@ -33020,7 +33170,7 @@ "source_location": "L53", "_origin": "ast", "id": "app_services_pl_carrier_service_validate_carrier_qualification_fields", - "community": 62, + "community": 80, "norm_label": "validate_carrier_qualification_fields()" }, { @@ -33030,7 +33180,7 @@ "source_location": "L61", "_origin": "ast", "id": "app_services_pl_carrier_service_rationale_61", - "community": 62, + "community": 80, "norm_label": "\u8d44\u8d28\u9644\u4ef6\u5747\u4e3a\u9009\u586b,\u4fdd\u7559\u51fd\u6570\u7b7e\u540d\u4f9b\u517c\u5bb9\u8c03\u7528\u3002" }, { @@ -33230,7 +33380,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_cert_service", - "community": 103, + "community": 102, "norm_label": "pl_cert_service.py" }, { @@ -33240,7 +33390,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_services_pl_cert_service_list_owner_certs", - "community": 103, + "community": 102, "norm_label": "list_owner_certs()" }, { @@ -33250,7 +33400,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_cert_service_py_session", - "community": 103, + "community": 102, "norm_label": "session" }, { @@ -33260,7 +33410,7 @@ "source_location": "L30", "_origin": "ast", "id": "app_services_pl_cert_service_list_owner_certs_batch", - "community": 103, + "community": 102, "norm_label": "list_owner_certs_batch()" }, { @@ -33270,7 +33420,7 @@ "source_location": "L52", "_origin": "ast", "id": "app_services_pl_cert_service_certs_to_read", - "community": 103, + "community": 102, "norm_label": "certs_to_read()" }, { @@ -33280,7 +33430,7 @@ "source_location": "L74", "_origin": "ast", "id": "app_services_pl_cert_service_normalize_cert_row", - "community": 103, + "community": 102, "norm_label": "_normalize_cert_row()" }, { @@ -33290,7 +33440,7 @@ "source_location": "L80", "_origin": "ast", "id": "app_services_pl_cert_service_save_owner_certs", - "community": 103, + "community": 102, "norm_label": "save_owner_certs()" }, { @@ -33300,7 +33450,7 @@ "source_location": "L138", "_origin": "ast", "id": "app_services_pl_cert_service_nearest_expire_date", - "community": 103, + "community": 102, "norm_label": "nearest_expire_date()" }, { @@ -33310,7 +33460,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_cert_service_py_date", - "community": 103, + "community": 102, "norm_label": "date" }, { @@ -33320,7 +33470,7 @@ "source_location": "L156", "_origin": "ast", "id": "app_services_pl_cert_service_resolve_owner_label", - "community": 103, + "community": 102, "norm_label": "_resolve_owner_label()" }, { @@ -33330,7 +33480,7 @@ "source_location": "L183", "_origin": "ast", "id": "app_services_pl_cert_service_scan_cert_expiry", - "community": 103, + "community": 102, "norm_label": "scan_cert_expiry()" }, { @@ -33340,7 +33490,7 @@ "source_location": "L90", "_origin": "ast", "id": "app_services_pl_cert_service_rationale_90", - "community": 103, + "community": 102, "norm_label": "\u6309 cert_id upsert;\u672a\u51fa\u73b0\u5728\u5217\u8868\u4e2d\u7684\u65e7\u8bc1\u8f6f\u5220\u3002" }, { @@ -33350,7 +33500,7 @@ "source_location": "L184", "_origin": "ast", "id": "app_services_pl_cert_service_rationale_184", - "community": 103, + "community": 102, "norm_label": "\u626b\u63cf pl_cert \u751f\u6210\u5230\u671f\u63d0\u9192,\u8fd4\u56de\u65b0\u5efa\u6761\u6570\u3002" }, { @@ -33360,7 +33510,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_data_scope", - "community": 69, + "community": 32, "norm_label": "pl_data_scope.py" }, { @@ -33370,7 +33520,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_services_pl_data_scope_apply_pl_scope", - "community": 113, + "community": 32, "norm_label": "apply_pl_scope()" }, { @@ -33380,7 +33530,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_data_scope_py_session", - "community": 113, + "community": 32, "norm_label": "session" }, { @@ -33400,7 +33550,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_data_scope_rationale_1", - "community": 69, + "community": 32, "norm_label": "pl \u6a21\u5757\u6570\u636e\u6743\u9650\u8f85\u52a9(create_by / create_dept_id,\u65e0 owner_field)\u3002" }, { @@ -33680,7 +33830,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_feedback_brand_qty", - "community": 41, + "community": 145, "norm_label": "pl_feedback_brand_qty.py" }, { @@ -33690,7 +33840,7 @@ "source_location": "L11", "_origin": "ast", "id": "app_services_pl_feedback_brand_qty_format_brand_qty_summary", - "community": 41, + "community": 145, "norm_label": "format_brand_qty_summary()" }, { @@ -33700,7 +33850,7 @@ "source_location": "L23", "_origin": "ast", "id": "app_services_pl_feedback_brand_qty_require_brand_qtys_if_needed", - "community": 41, + "community": 145, "norm_label": "require_brand_qtys_if_needed()" }, { @@ -33710,7 +33860,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_feedback_brand_qty_py_decimal", - "community": 41, + "community": 145, "norm_label": "decimal" }, { @@ -33720,7 +33870,7 @@ "source_location": "L46", "_origin": "ast", "id": "app_services_pl_feedback_brand_qty_persist_io_item_brand_qtys", - "community": 41, + "community": 145, "norm_label": "persist_io_item_brand_qtys()" }, { @@ -33730,7 +33880,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_feedback_brand_qty_py_session", - "community": 41, + "community": 145, "norm_label": "session" }, { @@ -33740,7 +33890,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_feedback_brand_qty_py_any", - "community": 41, + "community": 145, "norm_label": "any" }, { @@ -33750,7 +33900,7 @@ "source_location": "L98", "_origin": "ast", "id": "app_services_pl_feedback_brand_qty_dict_field", - "community": 41, + "community": 145, "norm_label": "_dict_field()" }, { @@ -33760,7 +33910,7 @@ "source_location": "L105", "_origin": "ast", "id": "app_services_pl_feedback_brand_qty_persist_transport_product_feedback", - "community": 41, + "community": 145, "norm_label": "persist_transport_product_feedback()" }, { @@ -33770,7 +33920,7 @@ "source_location": "L222", "_origin": "ast", "id": "app_services_pl_feedback_brand_qty_load_transport_driver_product_feedbacks", - "community": 41, + "community": 145, "norm_label": "load_transport_driver_product_feedbacks()" }, { @@ -33780,7 +33930,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_feedback_brand_qty_rationale_1", - "community": 41, + "community": 145, "norm_label": "\u73b0\u573a\u5165\u51fa\u5e93\u660e\u7ec6\u4e0e\u8fd0\u8f93\u56de\u4f20\u7684\u54c1\u724c\u6570\u91cf\u6821\u9a8c\u4e0e\u6301\u4e45\u5316" }, { @@ -33790,7 +33940,7 @@ "source_location": "L228", "_origin": "ast", "id": "app_services_pl_feedback_brand_qty_rationale_228", - "community": 41, + "community": 145, "norm_label": "\u7ba1\u7406\u7aef\u8bfb\u8fd0\u8f93\u5355\u65f6\u9644\u53f8\u673a\u6309\u4ea7\u54c1\u56de\u4f20\u53ca\u54c1\u724c\u6458\u8981\u3002" }, { @@ -34320,7 +34470,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_internal_customer", - "community": 5, + "community": 47, "norm_label": "pl_internal_customer.py" }, { @@ -34330,7 +34480,7 @@ "source_location": "L12", "_origin": "ast", "id": "app_services_pl_internal_customer_is_internal_customer_name", - "community": 5, + "community": 47, "norm_label": "is_internal_customer_name()" }, { @@ -34340,7 +34490,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_internal_customer_rationale_1", - "community": 5, + "community": 47, "norm_label": "\u8fd0\u8f93\u8ba1\u5212:\u5185\u7f6e\u5c71\u5ce1/\u4e91\u680b\u5ba2\u6237\u5224\u5b9a(\u5408\u540c\u53ef\u514d)" }, { @@ -34390,7 +34540,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_inventory_service", - "community": 80, + "community": 101, "norm_label": "pl_inventory_service.py" }, { @@ -34400,7 +34550,7 @@ "source_location": "L23", "_origin": "ast", "id": "app_services_pl_inventory_service_qty_delta_for_plan", - "community": 80, + "community": 101, "norm_label": "qty_delta_for_plan()" }, { @@ -34410,7 +34560,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_inventory_service_py_decimal", - "community": 80, + "community": 101, "norm_label": "decimal" }, { @@ -34420,7 +34570,7 @@ "source_location": "L31", "_origin": "ast", "id": "app_services_pl_inventory_service_get_or_create_inventory", - "community": 80, + "community": 101, "norm_label": "get_or_create_inventory()" }, { @@ -34430,7 +34580,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_inventory_service_py_session", - "community": 80, + "community": 101, "norm_label": "session" }, { @@ -34440,7 +34590,7 @@ "source_location": "L79", "_origin": "ast", "id": "app_services_pl_inventory_service_apply_brand_stock_change", - "community": 80, + "community": 101, "norm_label": "apply_brand_stock_change()" }, { @@ -34450,7 +34600,7 @@ "source_location": "L139", "_origin": "ast", "id": "app_services_pl_inventory_service_reverse_plan_inventory_postings", - "community": 80, + "community": 101, "norm_label": "reverse_plan_inventory_postings()" }, { @@ -34460,7 +34610,7 @@ "source_location": "L178", "_origin": "ast", "id": "app_services_pl_inventory_service_apply_archive_inventory_for_plan", - "community": 80, + "community": 101, "norm_label": "apply_archive_inventory_for_plan()" }, { @@ -34470,7 +34620,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_inventory_service_rationale_1", - "community": 80, + "community": 101, "norm_label": "\u8ba1\u5212\u5f52\u6863\u6309\u4ea7\u54c1+\u54c1\u724c\u5199\u5165\u5e93\u5b58\u53f0\u8d26\u4e0e\u6d41\u6c34\u3002 \u76f4\u9500\u5355 (direct) \u9996\u671f\u4e0d\u8bb0\u8d26;\u5165\u5e93\u589e\u52a0\u3001\u51fa\u5e93\u6263\u51cf(\u5141\u8bb8\u8d1f\u5e93\u5b58,\u4e0d\u505a\u4e0d\u8db3\u62e6\u622a)\u3002 \u8c03\u6574\u5f52\u6863\u65f6\u5148\u6309 plan_i" }, { @@ -34480,7 +34630,7 @@ "source_location": "L146", "_origin": "ast", "id": "app_services_pl_inventory_service_rationale_146", - "community": 80, + "community": 101, "norm_label": "\u51b2\u9500\u8be5\u8ba1\u5212\u5df2\u4ea7\u751f\u7684\u5e93\u5b58\u6d41\u6c34(\u8c03\u6574\u5f52\u6863\u524d\u8c03\u7528)\u3002" }, { @@ -34490,7 +34640,7 @@ "source_location": "L186", "_origin": "ast", "id": "app_services_pl_inventory_service_rationale_186", - "community": 80, + "community": 101, "norm_label": "\u5f52\u6863\u540e\u6309\u54c1\u724c\u91cf(\u6216\u65e0\u54c1\u724c actual_qty)\u843d\u8d26;\u5148\u51b2\u9500\u65e7\u6d41\u6c34\u518d\u91cd\u8bb0\u3002" }, { @@ -34500,7 +34650,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_io_order_service", - "community": 145, + "community": 54, "norm_label": "pl_io_order_service.py" }, { @@ -34510,7 +34660,7 @@ "source_location": "L45", "_origin": "ast", "id": "app_services_pl_io_order_service_ioordercreateresult", - "community": 145, + "community": 101, "norm_label": "ioordercreateresult" }, { @@ -34520,7 +34670,7 @@ "source_location": "L53", "_origin": "ast", "id": "app_services_pl_io_order_service_build_io_order_site_url", - "community": 145, + "community": 54, "norm_label": "build_io_order_site_url()" }, { @@ -34530,7 +34680,7 @@ "source_location": "L59", "_origin": "ast", "id": "app_services_pl_io_order_service_normalize_plan_date", - "community": 145, + "community": 54, "norm_label": "_normalize_plan_date()" }, { @@ -34540,7 +34690,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_io_order_service_py_date", - "community": 145, + "community": 54, "norm_label": "date" }, { @@ -34550,7 +34700,7 @@ "source_location": "L70", "_origin": "ast", "id": "app_services_pl_io_order_service_next_order_no", - "community": 145, + "community": 54, "norm_label": "_next_order_no()" }, { @@ -34560,7 +34710,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_io_order_service_py_session", - "community": 145, + "community": 54, "norm_label": "session" }, { @@ -34570,7 +34720,7 @@ "source_location": "L88", "_origin": "ast", "id": "app_services_pl_io_order_service_dibang_qty_by_plan_product", - "community": 145, + "community": 54, "norm_label": "_dibang_qty_by_plan_product()" }, { @@ -34580,7 +34730,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_io_order_service_py_decimal", - "community": 145, + "community": 54, "norm_label": "decimal" }, { @@ -34590,7 +34740,7 @@ "source_location": "L120", "_origin": "ast", "id": "app_services_pl_io_order_service_create_io_order_for_transport", - "community": 145, + "community": 54, "norm_label": "create_io_order_for_transport()" }, { @@ -34610,7 +34760,7 @@ "source_location": "L247", "_origin": "ast", "id": "app_services_pl_io_order_service_void_io_orders_for_plan", - "community": 145, + "community": 5, "norm_label": "void_io_orders_for_plan()" }, { @@ -34620,7 +34770,7 @@ "source_location": "L271", "_origin": "ast", "id": "app_services_pl_io_order_service_get_active_io_order_for_plan", - "community": 145, + "community": 54, "norm_label": "get_active_io_order_for_plan()" }, { @@ -34630,7 +34780,7 @@ "source_location": "", "_origin": "ast", "id": "orderheader", - "community": 145, + "community": 54, "norm_label": "orderheader" }, { @@ -34640,7 +34790,7 @@ "source_location": "L301", "_origin": "ast", "id": "app_services_pl_io_order_service_parse_feedback_images", - "community": 145, + "community": 54, "norm_label": "parse_feedback_images()" }, { @@ -34650,7 +34800,7 @@ "source_location": "L313", "_origin": "ast", "id": "app_services_pl_io_order_service_dump_feedback_images", - "community": 54, + "community": 50, "norm_label": "dump_feedback_images()" }, { @@ -34660,7 +34810,7 @@ "source_location": "L320", "_origin": "ast", "id": "app_services_pl_io_order_service_io_item_brand_qty_model", - "community": 145, + "community": 54, "norm_label": "_io_item_brand_qty_model()" }, { @@ -34670,7 +34820,7 @@ "source_location": "L326", "_origin": "ast", "id": "app_services_pl_io_order_service_update_io_order_items_qty_and_brand", - "community": 145, + "community": 54, "norm_label": "update_io_order_items_qty_and_brand()" }, { @@ -34680,7 +34830,7 @@ "source_location": "", "_origin": "ast", "id": "orderitem", - "community": 145, + "community": 54, "norm_label": "orderitem" }, { @@ -34690,7 +34840,7 @@ "source_location": "L416", "_origin": "ast", "id": "app_services_pl_io_order_service_apply_site_feedback", - "community": 145, + "community": 54, "norm_label": "apply_site_feedback()" }, { @@ -34700,7 +34850,7 @@ "source_location": "L465", "_origin": "ast", "id": "app_services_pl_io_order_service_resolve_unit_label", - "community": 145, + "community": 54, "norm_label": "resolve_unit_label()" }, { @@ -34710,7 +34860,7 @@ "source_location": "L472", "_origin": "ast", "id": "app_services_pl_io_order_service_merge_plan_logistics_into_order", - "community": 145, + "community": 54, "norm_label": "merge_plan_logistics_into_order()" }, { @@ -34720,7 +34870,7 @@ "source_location": "L507", "_origin": "ast", "id": "app_services_pl_io_order_service_merge_plan_product_into_item", - "community": 145, + "community": 54, "norm_label": "merge_plan_product_into_item()" }, { @@ -34730,7 +34880,7 @@ "source_location": "L546", "_origin": "ast", "id": "app_services_pl_io_order_service_format_io_product_summary_line", - "community": 145, + "community": 54, "norm_label": "_format_io_product_summary_line()" }, { @@ -34740,7 +34890,7 @@ "source_location": "L574", "_origin": "ast", "id": "app_services_pl_io_order_service_enrich_io_items_with_brand_feedback", - "community": 145, + "community": 54, "norm_label": "enrich_io_items_with_brand_feedback()" }, { @@ -34750,7 +34900,7 @@ "source_location": "L669", "_origin": "ast", "id": "app_services_pl_io_order_service_enrich_io_order_dict", - "community": 145, + "community": 54, "norm_label": "enrich_io_order_dict()" }, { @@ -34760,7 +34910,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_io_order_service_py_any", - "community": 145, + "community": 54, "norm_label": "any" }, { @@ -34770,7 +34920,7 @@ "source_location": "L870", "_origin": "ast", "id": "app_services_pl_io_order_service_order_header_to_dict", - "community": 145, + "community": 54, "norm_label": "order_header_to_dict()" }, { @@ -34780,7 +34930,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_io_order_service_rationale_1", - "community": 145, + "community": 54, "norm_label": "\u8fd0\u8f93\u8ba1\u5212 \u00b7 \u5165\u5e93\u5355 / \u51fa\u5e93\u5355(\u5b89\u6392\u8fd0\u8f93\u843d\u5355\u3001\u73b0\u573a\u56de\u4f20\u3001\u4f5c\u5e9f)" }, { @@ -34790,7 +34940,7 @@ "source_location": "L131", "_origin": "ast", "id": "app_services_pl_io_order_service_rationale_131", - "community": 145, + "community": 54, "norm_label": "\u5b89\u6392\u8fd0\u8f93\u540e\u521b\u5efa\u5165\u5e93/\u51fa\u5e93\u5355\u3002\u76f4\u9500\u8fd4\u56de none\u3002" }, { @@ -34810,7 +34960,7 @@ "source_location": "L338", "_origin": "ast", "id": "app_services_pl_io_order_service_rationale_338", - "community": 145, + "community": 54, "norm_label": "\u66f4\u65b0\u660e\u7ec6\u5b9e\u9645\u6570\u91cf,\u5e76\u6309\u9700\u6821\u9a8c/\u6301\u4e45\u5316\u73b0\u573a\u54c1\u724c\u6570\u91cf\u3002" }, { @@ -34820,7 +34970,7 @@ "source_location": "L583", "_origin": "ast", "id": "app_services_pl_io_order_service_rationale_583", - "community": 145, + "community": 54, "norm_label": "\u8bfb\u65f6\u9644\u52a0\u54c1\u724c\u6a21\u5f0f\u3001crm \u54c1\u724c\u9009\u9879\u4e0e\u73b0\u573a\u54c1\u724c\u6570\u91cf\u5b50\u8868\u3002" }, { @@ -34830,7 +34980,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_menu_badge_service", - "community": 113, + "community": 32, "norm_label": "pl_menu_badge_service.py" }, { @@ -34840,7 +34990,7 @@ "source_location": "L46", "_origin": "ast", "id": "app_services_pl_menu_badge_service_count_pending_applies", - "community": 113, + "community": 32, "norm_label": "_count_pending_applies()" }, { @@ -34850,7 +35000,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_menu_badge_service_py_session", - "community": 113, + "community": 32, "norm_label": "session" }, { @@ -34860,7 +35010,7 @@ "source_location": "L56", "_origin": "ast", "id": "app_services_pl_menu_badge_service_count_document_reminder_expired_pending", - "community": 113, + "community": 32, "norm_label": "count_document_reminder_expired_pending()" }, { @@ -34870,7 +35020,7 @@ "source_location": "L69", "_origin": "ast", "id": "app_services_pl_menu_badge_service_count_freight_approval_pending", - "community": 113, + "community": 32, "norm_label": "count_freight_approval_pending()" }, { @@ -34880,7 +35030,7 @@ "source_location": "L88", "_origin": "ast", "id": "app_services_pl_menu_badge_service_count_plan_cert_pending", - "community": 113, + "community": 32, "norm_label": "count_plan_cert_pending()" }, { @@ -34890,7 +35040,7 @@ "source_location": "L122", "_origin": "ast", "id": "app_services_pl_menu_badge_service_count_plan_archive_pending", - "community": 113, + "community": 32, "norm_label": "count_plan_archive_pending()" }, { @@ -34900,7 +35050,7 @@ "source_location": "L133", "_origin": "ast", "id": "app_services_pl_menu_badge_service_count_plan_contract_gaps", - "community": 113, + "community": 32, "norm_label": "count_plan_contract_gaps()" }, { @@ -34910,7 +35060,7 @@ "source_location": "L146", "_origin": "ast", "id": "app_services_pl_menu_badge_service_count_freight_disburse_pending", - "community": 113, + "community": 32, "norm_label": "count_freight_disburse_pending()" }, { @@ -34920,7 +35070,7 @@ "source_location": "L156", "_origin": "ast", "id": "app_services_pl_menu_badge_service_build_menu_badge_counts", - "community": 113, + "community": 32, "norm_label": "build_menu_badge_counts()" }, { @@ -35190,7 +35340,7 @@ "source_location": "L68", "_origin": "ast", "id": "app_services_pl_paste_recognize_service_get_personnel", - "community": 75, + "community": 62, "norm_label": "_get_personnel()" }, { @@ -35240,7 +35390,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_personnel_service", - "community": 82, + "community": 74, "norm_label": "pl_personnel_service.py" }, { @@ -35250,7 +35400,7 @@ "source_location": "L16", "_origin": "ast", "id": "app_services_pl_personnel_service_upsert_personnel", - "community": 82, + "community": 74, "norm_label": "upsert_personnel()" }, { @@ -35260,7 +35410,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_personnel_service_py_session", - "community": 82, + "community": 74, "norm_label": "session" }, { @@ -35270,7 +35420,7 @@ "source_location": "L92", "_origin": "ast", "id": "app_services_pl_personnel_service_save_vehicle_personnel", - "community": 82, + "community": 74, "norm_label": "save_vehicle_personnel()" }, { @@ -35280,7 +35430,7 @@ "source_location": "L142", "_origin": "ast", "id": "app_services_pl_personnel_service_build_personnel_summary", - "community": 82, + "community": 102, "norm_label": "build_personnel_summary()" }, { @@ -35290,7 +35440,7 @@ "source_location": "L159", "_origin": "ast", "id": "app_services_pl_personnel_service_load_vehicle_personnel_rows", - "community": 82, + "community": 74, "norm_label": "load_vehicle_personnel_rows()" }, { @@ -35300,7 +35450,7 @@ "source_location": "L192", "_origin": "ast", "id": "app_services_pl_personnel_service_load_vehicle_personnel_summaries", - "community": 82, + "community": 74, "norm_label": "load_vehicle_personnel_summaries()" }, { @@ -35310,7 +35460,7 @@ "source_location": "L226", "_origin": "ast", "id": "app_services_pl_personnel_service_refresh_personnel_ages_from_id_card", - "community": 82, + "community": 86, "norm_label": "refresh_personnel_ages_from_id_card()" }, { @@ -35320,7 +35470,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_personnel_service_rationale_1", - "community": 82, + "community": 74, "norm_label": "\u8fd0\u8f93\u8ba1\u5212 - \u4eba\u5458 upsert \u4e0e\u8f66\u8f86-\u4eba\u5458\u5173\u8054\u4fdd\u5b58" }, { @@ -35330,7 +35480,7 @@ "source_location": "L25", "_origin": "ast", "id": "app_services_pl_personnel_service_rationale_25", - "community": 82, + "community": 74, "norm_label": "\u6309 personnelid \u2192 phone \u2192 name \u5f31\u5339\u914d upsert,\u8fd4\u56de personnel_id\u3002" }, { @@ -35340,7 +35490,7 @@ "source_location": "L145", "_origin": "ast", "id": "app_services_pl_personnel_service_rationale_145", - "community": 82, + "community": 102, "norm_label": "links: [(personnel_name, role, is_default)] \u2192 (summary, default_driver_name)." }, { @@ -35350,7 +35500,7 @@ "source_location": "L195", "_origin": "ast", "id": "app_services_pl_personnel_service_rationale_195", - "community": 82, + "community": 74, "norm_label": "\u6279\u91cf\u52a0\u8f7d personnelsummary / defaultdrivername\u3002" }, { @@ -35360,7 +35510,7 @@ "source_location": "L227", "_origin": "ast", "id": "app_services_pl_personnel_service_rationale_227", - "community": 82, + "community": 86, "norm_label": "\u6309 18 \u4f4d\u8eab\u4efd\u8bc1\u53f7\u91cd\u7b97 pl_personnel.age,\u4ec5\u66f4\u65b0\u7b97\u51fa\u503c\u4e0e\u5e93\u4e2d\u4e0d\u4e00\u81f4\u7684\u8bb0\u5f55\u3002\u8fd4\u56de\u66f4\u65b0\u6761\u6570\u3002" }, { @@ -35370,7 +35520,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_plan_contract_gap", - "community": 5, + "community": 47, "norm_label": "pl_plan_contract_gap.py" }, { @@ -35390,7 +35540,7 @@ "source_location": "L42", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_side_is_exempt", - "community": 5, + "community": 47, "norm_label": "side_is_exempt()" }, { @@ -35400,7 +35550,7 @@ "source_location": "L46", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_side_contract_exists", - "community": 5, + "community": 47, "norm_label": "_side_contract_exists()" }, { @@ -35410,7 +35560,7 @@ "source_location": "L57", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_supplier_gap_expr", - "community": 5, + "community": 47, "norm_label": "_supplier_gap_expr()" }, { @@ -35420,7 +35570,7 @@ "source_location": "L70", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_demander_gap_expr", - "community": 5, + "community": 47, "norm_label": "_demander_gap_expr()" }, { @@ -35430,7 +35580,7 @@ "source_location": "L83", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_plan_has_contract_gap_exists", - "community": 5, + "community": 47, "norm_label": "plan_has_contract_gap_exists()" }, { @@ -35440,7 +35590,7 @@ "source_location": "L88", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_build_plan_contract_gap_read", - "community": 5, + "community": 47, "norm_label": "build_plan_contract_gap_read()" }, { @@ -35450,7 +35600,7 @@ "source_location": "L120", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_load_products_by_plan_ids", - "community": 5, + "community": 47, "norm_label": "_load_products_by_plan_ids()" }, { @@ -35460,7 +35610,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_py_session", - "community": 5, + "community": 47, "norm_label": "session" }, { @@ -35470,7 +35620,7 @@ "source_location": "L141", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_list_plan_contract_gaps", - "community": 5, + "community": 47, "norm_label": "list_plan_contract_gaps()" }, { @@ -35480,7 +35630,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_py_date", - "community": 5, + "community": 47, "norm_label": "date" }, { @@ -35490,7 +35640,7 @@ "source_location": "L228", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_update_plan_side_contracts", - "community": 5, + "community": 47, "norm_label": "update_plan_side_contracts()" }, { @@ -35500,7 +35650,7 @@ "source_location": "L84", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_rationale_84", - "community": 5, + "community": 47, "norm_label": "\u5217\u8868\u7b5b\u9009:\u8ba1\u5212\u5b58\u5728\u5408\u540c\u7f3a\u53e3(\u975e\u5185\u7f6e\u4fa7\u7f3a\u5c11\u6709\u6548 pl_plan_contract \u5173\u8054)\u3002" }, { @@ -35510,7 +35660,7 @@ "source_location": "L238", "_origin": "ast", "id": "app_services_pl_plan_contract_gap_rationale_238", - "community": 5, + "community": 47, "norm_label": "\u5355\u4fa7\u4fdd\u5b58\u8ba1\u5212\u5408\u540c\u5173\u8054;\u5141\u8bb8\u7a7a\u5217\u8868,\u4e0d\u5f3a\u5236\u975e\u5185\u7f6e\u4fa7\u5fc5\u987b\u6709\u5408\u540c\u3002" }, { @@ -35700,7 +35850,7 @@ "source_location": "L301", "_origin": "ast", "id": "app_services_pl_plan_service_cert_url_blank", - "community": 117, + "community": 123, "norm_label": "_cert_url_blank()" }, { @@ -35710,7 +35860,7 @@ "source_location": "L306", "_origin": "ast", "id": "app_services_pl_plan_service_plan_has_hazard_product_exists", - "community": 117, + "community": 123, "norm_label": "plan_has_hazard_product_exists()" }, { @@ -35720,7 +35870,7 @@ "source_location": "L328", "_origin": "ast", "id": "app_services_pl_plan_service_plan_has_incomplete_hazard_cert_exists", - "community": 117, + "community": 123, "norm_label": "plan_has_incomplete_hazard_cert_exists()" }, { @@ -35900,7 +36050,7 @@ "source_location": "L1055", "_origin": "ast", "id": "app_services_pl_plan_service_assert_contract_selectable_for_plan", - "community": 5, + "community": 47, "norm_label": "assert_contract_selectable_for_plan()" }, { @@ -35910,7 +36060,7 @@ "source_location": "L1083", "_origin": "ast", "id": "app_services_pl_plan_service_normalize_contract_links", - "community": 5, + "community": 47, "norm_label": "_normalize_contract_links()" }, { @@ -35920,7 +36070,7 @@ "source_location": "L1099", "_origin": "ast", "id": "app_services_pl_plan_service_validate_plan_party_contracts", - "community": 5, + "community": 47, "norm_label": "validate_plan_party_contracts()" }, { @@ -35930,7 +36080,7 @@ "source_location": "L1150", "_origin": "ast", "id": "app_services_pl_plan_service_replace_plan_contracts", - "community": 5, + "community": 47, "norm_label": "replace_plan_contracts()" }, { @@ -35940,7 +36090,7 @@ "source_location": "L1197", "_origin": "ast", "id": "app_services_pl_plan_service_load_plan_contracts_grouped", - "community": 5, + "community": 47, "norm_label": "load_plan_contracts_grouped()" }, { @@ -35950,7 +36100,7 @@ "source_location": "L1227", "_origin": "ast", "id": "app_services_pl_plan_service_validate_create_full", - "community": 5, + "community": 23, "norm_label": "validate_create_full()" }, { @@ -35960,7 +36110,7 @@ "source_location": "L1251", "_origin": "ast", "id": "app_services_pl_plan_service_calc_plan_total_amount", - "community": 5, + "community": 23, "norm_label": "calc_plan_total_amount()" }, { @@ -36070,7 +36220,7 @@ "source_location": "L302", "_origin": "ast", "id": "app_services_pl_plan_service_rationale_302", - "community": 117, + "community": 123, "norm_label": "\u8bc1\u4e66 url \u4e3a\u7a7a(null / \u7a7a\u4e32 / \u7eaf\u7a7a\u767d)\u3002" }, { @@ -36080,7 +36230,7 @@ "source_location": "L307", "_origin": "ast", "id": "app_services_pl_plan_service_rationale_307", - "community": 117, + "community": 123, "norm_label": "\u5217\u8868\u7b5b\u9009:\u8ba1\u5212\u4e0b\u5b58\u5728 crm \u6807\u8bc6\u4e3a\u6613\u5236\u6bd2/\u6613\u5236\u7206\u7684\u4ea7\u54c1\u3002" }, { @@ -36090,7 +36240,7 @@ "source_location": "L329", "_origin": "ast", "id": "app_services_pl_plan_service_rationale_329", - "community": 117, + "community": 123, "norm_label": "\u5217\u8868\u7b5b\u9009:\u5b58\u5728\u5371\u5316\u4ea7\u54c1\u4e14\u81f3\u5c11\u4e00\u5f20\u5fc5\u9700\u8bc1\u4e66\u672a\u4e0a\u4f20\u3002" }, { @@ -36150,7 +36300,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_product_display", - "community": 31, + "community": 111, "norm_label": "pl_product_display.py" }, { @@ -36160,7 +36310,7 @@ "source_location": "L11", "_origin": "ast", "id": "app_services_pl_product_display_resolve_alias_from_saved_name", - "community": 31, + "community": 111, "norm_label": "resolve_alias_from_saved_name()" }, { @@ -36170,7 +36320,7 @@ "source_location": "L26", "_origin": "ast", "id": "app_services_pl_product_display_load_crm_product_alias_maps", - "community": 31, + "community": 111, "norm_label": "load_crm_product_alias_maps()" }, { @@ -36180,7 +36330,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_product_display_py_session", - "community": 31, + "community": 111, "norm_label": "session" }, { @@ -36190,7 +36340,7 @@ "source_location": "L74", "_origin": "ast", "id": "app_services_pl_product_display_resolve_product_display_names", - "community": 31, + "community": 111, "norm_label": "resolve_product_display_names()" }, { @@ -36200,7 +36350,7 @@ "source_location": "L94", "_origin": "ast", "id": "app_services_pl_product_display_apply_product_alias_display", - "community": 31, + "community": 111, "norm_label": "apply_product_alias_display()" }, { @@ -36210,7 +36360,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_product_display_rationale_1", - "community": 31, + "community": 111, "norm_label": "\u8fd0\u8f93\u8ba1\u5212\u4ea7\u54c1\u5c55\u793a:\u6807\u51c6\u540d / \u522b\u540d\u62c6\u5206(\u4e0e\u524d\u7aef applyaliasdisplaymeta \u5bf9\u9f50)" }, { @@ -36220,7 +36370,7 @@ "source_location": "L16", "_origin": "ast", "id": "app_services_pl_product_display_rationale_16", - "community": 31, + "community": 111, "norm_label": "\u4ece\u5df2\u5b58 productname \u53cd\u63a8\u522b\u540d;\u7b49\u4e8e\u6807\u51c6\u540d\u6216\u4e0d\u5728\u522b\u540d\u5217\u8868 \u2192 none\u3002" }, { @@ -36230,7 +36380,7 @@ "source_location": "L32", "_origin": "ast", "id": "app_services_pl_product_display_rationale_32", - "community": 31, + "community": 111, "norm_label": "\u6279\u91cf\u52a0\u8f7d crm \u6807\u51c6\u540d\u4e0e\u522b\u540d\u9009\u9879\u3002\u8fd4\u56de (standard_name_by_id, alias_options_by_id)\u3002" }, { @@ -36240,7 +36390,7 @@ "source_location": "L81", "_origin": "ast", "id": "app_services_pl_product_display_rationale_81", - "community": 31, + "community": 111, "norm_label": "\u8fd4\u56de (\u5c55\u793a\u7528\u4ea7\u54c1\u540d\u79f0, \u522b\u540d)\u3002 \u4ea7\u54c1\u540d\u79f0\u4f18\u5148 crm \u6807\u51c6\u540d;\u522b\u540d\u4ec5\u5728\u5df2\u5b58\u540d\u547d\u4e2d\u522b\u540d\u5217\u8868\u65f6\u8fd4\u56de\u3002" }, { @@ -36250,7 +36400,7 @@ "source_location": "L102", "_origin": "ast", "id": "app_services_pl_product_display_rationale_102", - "community": 31, + "community": 111, "norm_label": "\u5c31\u5730\u5199\u5165 item \u7684 productname(\u6807\u51c6\u540d)\u4e0e aliasname\u3002" }, { @@ -36260,7 +36410,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_site_link_read", - "community": 31, + "community": 173, "norm_label": "pl_site_link_read.py" }, { @@ -36270,7 +36420,7 @@ "source_location": "L13", "_origin": "ast", "id": "app_services_pl_site_link_read_build_transport_site_link_read", - "community": 31, + "community": 173, "norm_label": "build_transport_site_link_read()" }, { @@ -36280,7 +36430,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_site_link_read_py_session", - "community": 31, + "community": 173, "norm_label": "session" }, { @@ -36290,7 +36440,7 @@ "source_location": "L47", "_origin": "ast", "id": "app_services_pl_site_link_read_build_transport_site_link_read_from_row", - "community": 31, + "community": 173, "norm_label": "build_transport_site_link_read_from_row()" }, { @@ -36300,7 +36450,7 @@ "source_location": "L63", "_origin": "ast", "id": "app_services_pl_site_link_read_parse_feedback_images", - "community": 31, + "community": 173, "norm_label": "_parse_feedback_images()" }, { @@ -36310,7 +36460,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_transport_resource_snapshot_service", - "community": 103, + "community": 102, "norm_label": "pl_transport_resource_snapshot_service.py" }, { @@ -36320,7 +36470,7 @@ "source_location": "L24", "_origin": "ast", "id": "app_services_pl_transport_resource_snapshot_service_cert_to_snapshot", - "community": 103, + "community": 102, "norm_label": "_cert_to_snapshot()" }, { @@ -36330,7 +36480,7 @@ "source_location": "L40", "_origin": "ast", "id": "app_services_pl_transport_resource_snapshot_service_build_transport_resource_snapshot", - "community": 103, + "community": 102, "norm_label": "build_transport_resource_snapshot()" }, { @@ -36340,7 +36490,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_transport_resource_snapshot_service_py_session", - "community": 103, + "community": 102, "norm_label": "session" }, { @@ -36370,7 +36520,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_pl_transport_resource_snapshot_service_rationale_1", - "community": 103, + "community": 102, "norm_label": "\u8fd0\u8f93\u8ba1\u5212 - \u5b89\u6392\u8fd0\u8f93\u65f6\u8f66\u8f86/\u4eba\u5458/\u8bc1\u4ef6\u8d44\u6e90\u5feb\u7167" }, { @@ -36380,7 +36530,7 @@ "source_location": "L47", "_origin": "ast", "id": "app_services_pl_transport_resource_snapshot_service_rationale_47", - "community": 103, + "community": 102, "norm_label": "\u8bfb\u53d6\u8f66\u8f86\u5f53\u524d\u4e3b\u6570\u636e,\u751f\u6210\u5b89\u6392\u8fd0\u8f93\u7528\u6574\u5305\u5feb\u7167\u3002" }, { @@ -36440,7 +36590,7 @@ "source_location": "L43", "_origin": "ast", "id": "app_services_pl_transport_site_service_revoke_site_links_for_transport", - "community": 61, + "community": 5, "norm_label": "revoke_site_links_for_transport()" }, { @@ -36450,7 +36600,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_pl_transport_site_service_py_session", - "community": 61, + "community": 5, "norm_label": "session" }, { @@ -37360,7 +37510,7 @@ "source_location": "L13", "_origin": "ast", "id": "app_services_web_auth_roles_map_role_name_to_web", - "community": 3, + "community": 159, "norm_label": "_map_role_name_to_web()" }, { @@ -37450,7 +37600,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_services_web_auth_roles_rationale_14", - "community": 3, + "community": 159, "norm_label": "\u5c06 sys_role.role_name \u6620\u5c04\u4e3a web-admin \u4f7f\u7528\u7684 role \u5b57\u7b26\u4e32\u3002" }, { @@ -37500,7 +37650,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_workflow_callback", - "community": 74, + "community": 79, "norm_label": "workflow_callback.py" }, { @@ -37510,7 +37660,7 @@ "source_location": "L23", "_origin": "ast", "id": "app_services_workflow_callback_register_local_callback", - "community": 74, + "community": 79, "norm_label": "register_local_callback()" }, { @@ -37520,7 +37670,7 @@ "source_location": "", "_origin": "ast", "id": "localcallbackfn", - "community": 74, + "community": 79, "norm_label": "_localcallbackfn" }, { @@ -37530,7 +37680,7 @@ "source_location": "L28", "_origin": "ast", "id": "app_services_workflow_callback_dispatch_local", - "community": 74, + "community": 79, "norm_label": "_dispatch_local()" }, { @@ -37540,7 +37690,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_workflow_callback_py_any", - "community": 74, + "community": 79, "norm_label": "any" }, { @@ -37550,7 +37700,7 @@ "source_location": "L60", "_origin": "ast", "id": "app_services_workflow_callback_trigger_callback", - "community": 74, + "community": 79, "norm_label": "trigger_callback()" }, { @@ -37560,7 +37710,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_workflow_callback_rationale_1", - "community": 74, + "community": 79, "norm_label": "\u5de5\u4f5c\u6d41\u56de\u8c03\u670d\u52a1 \u2014\u2014 \u6d41\u7a0b\u72b6\u6001\u53d8\u66f4\u65f6\u901a\u77e5\u4e1a\u52a1\u7cfb\u7edf" }, { @@ -37570,7 +37720,7 @@ "source_location": "L24", "_origin": "ast", "id": "app_services_workflow_callback_rationale_24", - "community": 74, + "community": 79, "norm_label": "\u6ce8\u518c\u672c\u5730\u56de\u8c03\u51fd\u6570\u3002\u5f53 callback_url \u4ee5 path \u5f00\u5934\u65f6\u76f4\u63a5\u8c03\u7528 fn\u3002" }, { @@ -37580,7 +37730,7 @@ "source_location": "L29", "_origin": "ast", "id": "app_services_workflow_callback_rationale_29", - "community": 74, + "community": 79, "norm_label": "\u5c1d\u8bd5\u672c\u5730\u76f4\u8c03\u3002\u8fd4\u56de true \u8868\u793a\u5df2\u5904\u7406,false \u8868\u793a\u65e0\u5339\u914d\u7684\u672c\u5730\u56de\u8c03\u3002" }, { @@ -37590,7 +37740,7 @@ "source_location": "L61", "_origin": "ast", "id": "app_services_workflow_callback_rationale_61", - "community": 74, + "community": 79, "norm_label": "\u6d41\u7a0b\u5b9e\u4f8b\u72b6\u6001\u53d8\u66f4\u540e,\u5411\u4e1a\u52a1\u7cfb\u7edf\u53d1\u9001\u56de\u8c03\u901a\u77e5\u3002 \u4f18\u5148\u7ea7: 1. \u5982\u679c callback_url \u662f\u5185\u90e8\u8def\u5f84(\u4ee5 / \u5f00\u5934),\u4f18\u5148\u5c1d\u8bd5\u672c\u5730\u76f4\u8c03" }, { @@ -37600,7 +37750,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_workflow_engine", - "community": 74, + "community": 79, "norm_label": "workflow_engine.py" }, { @@ -37610,7 +37760,7 @@ "source_location": "L31", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine", - "community": 74, + "community": 96, "norm_label": "workflowengine" }, { @@ -37620,7 +37770,7 @@ "source_location": "L32", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_init", - "community": 74, + "community": 96, "norm_label": ".__init__()" }, { @@ -37630,7 +37780,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_workflow_engine_py_session", - "community": 74, + "community": 96, "norm_label": "session" }, { @@ -37640,7 +37790,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_start_process", - "community": 74, + "community": 96, "norm_label": ".start_process()" }, { @@ -37650,7 +37800,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_workflow_engine_py_any", - "community": 74, + "community": 96, "norm_label": "any" }, { @@ -37660,7 +37810,7 @@ "source_location": "L77", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_approve_task", - "community": 74, + "community": 96, "norm_label": ".approve_task()" }, { @@ -37670,7 +37820,7 @@ "source_location": "L126", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_reject_task", - "community": 74, + "community": 79, "norm_label": ".reject_task()" }, { @@ -37680,7 +37830,7 @@ "source_location": "L160", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_advance", - "community": 74, + "community": 96, "norm_label": "._advance()" }, { @@ -37690,7 +37840,7 @@ "source_location": "L201", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_execute_node", - "community": 74, + "community": 96, "norm_label": "._execute_node()" }, { @@ -37700,7 +37850,7 @@ "source_location": "L238", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_resolve_approvers", - "community": 74, + "community": 96, "norm_label": "._resolve_approvers()" }, { @@ -37710,7 +37860,7 @@ "source_location": "L284", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_evaluate_condition", - "community": 74, + "community": 96, "norm_label": "._evaluate_condition()" }, { @@ -37720,7 +37870,7 @@ "source_location": "L306", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_check_rules", - "community": 74, + "community": 96, "norm_label": "._check_rules()" }, { @@ -37730,7 +37880,7 @@ "source_location": "L330", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_compare", - "community": 74, + "community": 96, "norm_label": "._compare()" }, { @@ -37740,7 +37890,7 @@ "source_location": "L359", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_get_variable", - "community": 74, + "community": 96, "norm_label": "._get_variable()" }, { @@ -37750,7 +37900,7 @@ "source_location": "L374", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_parse_node_config", - "community": 74, + "community": 96, "norm_label": "._parse_node_config()" }, { @@ -37760,7 +37910,7 @@ "source_location": "L383", "_origin": "ast", "id": "app_services_workflow_engine_workflowengine_parse_variables", - "community": 74, + "community": 96, "norm_label": "._parse_variables()" }, { @@ -37770,7 +37920,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_workflow_engine_rationale_1", - "community": 74, + "community": 79, "norm_label": "\u5de5\u4f5c\u6d41\u5f15\u64ce \u2014\u2014 \u8bfb\u53d6\u8282\u70b9\u4e0e\u8fde\u7ebf\u6267\u884c\u5ba1\u6279\u6d41\u8f6c" }, { @@ -37780,7 +37930,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_tasks_init", - "community": 82, + "community": 86, "norm_label": "__init__.py" }, { @@ -37810,7 +37960,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_tasks_customer_pool", - "community": 55, + "community": 86, "norm_label": "customer_pool.py" }, { @@ -37820,7 +37970,7 @@ "source_location": "L17", "_origin": "ast", "id": "app_tasks_customer_pool_check_customer_protect_time", - "community": 55, + "community": 86, "norm_label": "check_customer_protect_time()" }, { @@ -37830,7 +37980,7 @@ "source_location": "L66", "_origin": "ast", "id": "app_tasks_customer_pool_remind_customer_recycle", - "community": 8, + "community": 86, "norm_label": "remind_customer_recycle()" }, { @@ -37840,7 +37990,7 @@ "source_location": "L112", "_origin": "ast", "id": "app_tasks_customer_pool_pool_recovery_job", - "community": 55, + "community": 86, "norm_label": "pool_recovery_job()" }, { @@ -37850,7 +38000,7 @@ "source_location": "L152", "_origin": "ast", "id": "app_tasks_customer_pool_warn_customer_recycle", - "community": 82, + "community": 86, "norm_label": "warn_customer_recycle()" }, { @@ -37860,7 +38010,7 @@ "source_location": "L225", "_origin": "ast", "id": "app_tasks_customer_pool_recycle_to_pool", - "community": 55, + "community": 109, "norm_label": "_recycle_to_pool()" }, { @@ -37870,7 +38020,7 @@ "source_location": "", "_origin": "ast", "id": "app_tasks_customer_pool_py_session", - "community": 55, + "community": 109, "norm_label": "session" }, { @@ -37880,7 +38030,7 @@ "source_location": "L18", "_origin": "ast", "id": "app_tasks_customer_pool_rationale_18", - "community": 55, + "community": 86, "norm_label": "\u6bcf\u5929\u51cc\u66681\u70b9:\u68c0\u67e5\u4fdd\u62a4\u671f\u5230\u671f\u5ba2\u6237,\u8ddf\u8fdb\u6b21\u6570\u4e0d\u8db3\u5219\u9000\u56de\u516c\u6d77" }, { @@ -37890,7 +38040,7 @@ "source_location": "L67", "_origin": "ast", "id": "app_tasks_customer_pool_rationale_67", - "community": 8, + "community": 86, "norm_label": "\u6bcf\u5929\u65e9\u4e0a9\u70b9:\u4fdd\u62a4\u671f\u5230\u671f\u63d0\u9192(3\u5929\u5185\u5230\u671f\u4e14\u8ddf\u8fdb\u4e0d\u8db3)" }, { @@ -37930,7 +38080,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_tasks_pl_cert_expiry", - "community": 82, + "community": 102, "norm_label": "pl_cert_expiry.py" }, { @@ -37940,7 +38090,7 @@ "source_location": "L10", "_origin": "ast", "id": "app_tasks_pl_cert_expiry_scan_pl_cert_expiry_job", - "community": 82, + "community": 102, "norm_label": "scan_pl_cert_expiry_job()" }, { @@ -37950,7 +38100,7 @@ "source_location": "L11", "_origin": "ast", "id": "app_tasks_pl_cert_expiry_rationale_11", - "community": 82, + "community": 102, "norm_label": "\u6bcf\u65e5\u626b\u63cf pl_cert,\u751f\u6210\u8bc1\u4ef6\u5230\u671f\u63d0\u9192\u3002" }, { @@ -37960,7 +38110,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_tasks_pl_personnel_age", - "community": 82, + "community": 86, "norm_label": "pl_personnel_age.py" }, { @@ -37970,7 +38120,7 @@ "source_location": "L10", "_origin": "ast", "id": "app_tasks_pl_personnel_age_refresh_personnel_ages_job", - "community": 82, + "community": 86, "norm_label": "refresh_personnel_ages_job()" }, { @@ -37980,7 +38130,7 @@ "source_location": "L11", "_origin": "ast", "id": "app_tasks_pl_personnel_age_rationale_11", - "community": 82, + "community": 86, "norm_label": "\u6bcf\u65e5\u51cc\u6668\u91cd\u7b97 pl_personnel \u5e74\u9f84(\u6709\u5408\u6cd5 18 \u4f4d\u8eab\u4efd\u8bc1\u53f7\u7684\u8bb0\u5f55)\u3002" }, { @@ -38000,7 +38150,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_utils_bx_codegen", - "community": 17, + "community": 58, "norm_label": "bx_codegen.py" }, { @@ -38010,7 +38160,7 @@ "source_location": "L15", "_origin": "ast", "id": "app_utils_bx_codegen_generate_apply_code", - "community": 17, + "community": 58, "norm_label": "generate_apply_code()" }, { @@ -38020,7 +38170,7 @@ "source_location": "", "_origin": "ast", "id": "app_utils_bx_codegen_py_session", - "community": 17, + "community": 58, "norm_label": "session" }, { @@ -38030,7 +38180,7 @@ "source_location": "L40", "_origin": "ast", "id": "app_utils_bx_codegen_parse_reimburse_date", - "community": 17, + "community": 58, "norm_label": "parse_reimburse_date()" }, { @@ -38040,7 +38190,7 @@ "source_location": "", "_origin": "ast", "id": "app_utils_bx_codegen_py_date", - "community": 17, + "community": 58, "norm_label": "date" }, { @@ -38050,7 +38200,7 @@ "source_location": "", "_origin": "ast", "id": "app_utils_bx_codegen_py_datetime", - "community": 17, + "community": 58, "norm_label": "datetime" }, { @@ -38060,7 +38210,7 @@ "source_location": "L53", "_origin": "ast", "id": "app_utils_bx_codegen_parse_optional_date", - "community": 17, + "community": 58, "norm_label": "parse_optional_date()" }, { @@ -38070,7 +38220,7 @@ "source_location": "L67", "_origin": "ast", "id": "app_utils_bx_codegen_format_reimburse_title", - "community": 17, + "community": 58, "norm_label": "format_reimburse_title()" }, { @@ -38080,7 +38230,7 @@ "source_location": "L71", "_origin": "ast", "id": "app_utils_bx_codegen_is_auto_reimburse_title", - "community": 17, + "community": 58, "norm_label": "is_auto_reimburse_title()" }, { @@ -38090,7 +38240,7 @@ "source_location": "L75", "_origin": "ast", "id": "app_utils_bx_codegen_preview_reimburse_title_seq", - "community": 17, + "community": 58, "norm_label": "preview_reimburse_title_seq()" }, { @@ -38100,7 +38250,7 @@ "source_location": "L94", "_origin": "ast", "id": "app_utils_bx_codegen_allocate_reimburse_title_seq", - "community": 17, + "community": 58, "norm_label": "allocate_reimburse_title_seq()" }, { @@ -38110,7 +38260,7 @@ "source_location": "L116", "_origin": "ast", "id": "app_utils_bx_codegen_generate_title", - "community": 17, + "community": 58, "norm_label": "generate_title()" }, { @@ -38120,7 +38270,7 @@ "source_location": "L129", "_origin": "ast", "id": "app_utils_bx_codegen_resolve_reimburse_title", - "community": 17, + "community": 58, "norm_label": "resolve_reimburse_title()" }, { @@ -38130,7 +38280,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_utils_bx_codegen_rationale_1", - "community": 17, + "community": 58, "norm_label": "\u62a5\u9500\u5355\u53f7/\u6807\u9898\u751f\u6210(\u4ece bx-backend \u8fc1\u79fb,\u589e\u52a0 tenant_no \u9694\u79bb)\u3002" }, { @@ -38140,7 +38290,7 @@ "source_location": "L16", "_origin": "ast", "id": "app_utils_bx_codegen_rationale_16", - "community": 17, + "community": 58, "norm_label": "\u751f\u6210\u987a\u5e8f\u5355\u53f7:{prefix}{yyyymmdd}{3\u4f4d\u5e8f\u53f7}\u3002 prefix \u793a\u4f8b:byj(\u5907\u7528\u91d1)\u3001bx(\u62a5\u9500)\u3002" }, { @@ -38150,7 +38300,7 @@ "source_location": "L54", "_origin": "ast", "id": "app_utils_bx_codegen_rationale_54", - "community": 17, + "community": 58, "norm_label": "\u53ef\u9009\u65e5\u671f:\u7a7a \u2192 none;\u5408\u6cd5 yyyy-mm-dd / date / datetime \u2192 date\u3002" }, { @@ -38160,7 +38310,7 @@ "source_location": "L100", "_origin": "ast", "id": "app_utils_bx_codegen_rationale_100", - "community": 17, + "community": 58, "norm_label": "\u5206\u914d\u540c\u79df\u6237\u3001\u540c\u62a5\u9500\u65e5\u671f\u4e0b\u7684\u6807\u9898\u5e8f\u53f7(max+1)\u3002 \u914d\u5408 uk_tenant_reimburse_date_title_seq \u552f\u4e00\u7ea6\u675f,\u5e76\u53d1\u51b2\u7a81\u65f6\u7531\u4e0a" }, { @@ -38170,7 +38320,7 @@ "source_location": "L123", "_origin": "ast", "id": "app_utils_bx_codegen_rationale_123", - "community": 17, + "community": 58, "norm_label": "\u9884\u89c8\u7528\u6807\u9898\u751f\u6210(\u63d0\u4ea4\u65f6\u4ecd\u4f1a\u5728\u670d\u52a1\u7aef\u91cd\u65b0\u5206\u914d\u5e8f\u53f7\u4ee5\u4fdd\u8bc1\u5e76\u53d1\u5b89\u5168)\u3002" }, { @@ -38180,7 +38330,7 @@ "source_location": "L137", "_origin": "ast", "id": "app_utils_bx_codegen_rationale_137", - "community": 17, + "community": 58, "norm_label": "\u786e\u5b9a\u6700\u7ec8\u6807\u9898\u4e0e title_seq\u3002 - \u672a\u586b\u6807\u9898\u6216\u4ecd\u4e3a\u81ea\u52a8\u6807\u9898\u683c\u5f0f\u65f6:\u6309\u62a5\u9500\u65e5\u671f\u91cd\u65b0\u5206\u914d\u5e8f\u53f7\u5e76\u751f\u6210\u6807\u9898\u3002 - \u81ea\u5b9a\u4e49\u6807\u9898:title_seq" }, { @@ -38190,7 +38340,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_utils_bx_date_range", - "community": 24, + "community": 0, "norm_label": "bx_date_range.py" }, { @@ -38200,7 +38350,7 @@ "source_location": "L7", "_origin": "ast", "id": "app_utils_bx_date_range_current_month_bounds", - "community": 19, + "community": 0, "norm_label": "current_month_bounds()" }, { @@ -38210,7 +38360,7 @@ "source_location": "", "_origin": "ast", "id": "app_utils_bx_date_range_py_datetime", - "community": 24, + "community": 0, "norm_label": "datetime" }, { @@ -38220,7 +38370,7 @@ "source_location": "L19", "_origin": "ast", "id": "app_utils_bx_date_range_parse_create_time_day_bounds", - "community": 24, + "community": 0, "norm_label": "parse_create_time_day_bounds()" }, { @@ -38230,7 +38380,7 @@ "source_location": "L29", "_origin": "ast", "id": "app_utils_bx_date_range_parse_day_start", - "community": 24, + "community": 0, "norm_label": "_parse_day_start()" }, { @@ -38240,7 +38390,7 @@ "source_location": "L38", "_origin": "ast", "id": "app_utils_bx_date_range_resolve_create_time_bounds", - "community": 24, + "community": 0, "norm_label": "resolve_create_time_bounds()" }, { @@ -38250,7 +38400,7 @@ "source_location": "L57", "_origin": "ast", "id": "app_utils_bx_date_range_append_create_time_filters", - "community": 18, + "community": 2, "norm_label": "append_create_time_filters()" }, { @@ -38260,7 +38410,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_utils_bx_date_range_rationale_1", - "community": 24, + "community": 0, "norm_label": "\u62a5\u9500\u6a21\u5757\u65e5\u671f\u8303\u56f4\u5de5\u5177(\u4ece bx-backend \u8fc1\u79fb)\u3002" }, { @@ -38270,7 +38420,7 @@ "source_location": "L8", "_origin": "ast", "id": "app_utils_bx_date_range_rationale_8", - "community": 19, + "community": 0, "norm_label": "\u5f53\u524d\u81ea\u7136\u6708 [month_start, next_month_start)\u3002" }, { @@ -38280,7 +38430,7 @@ "source_location": "L43", "_origin": "ast", "id": "app_utils_bx_date_range_rationale_43", - "community": 24, + "community": 0, "norm_label": "\u89e3\u6790\u7533\u8bf7\u65f6\u95f4\u7b5b\u9009\u8fb9\u754c,\u8fd4\u56de (\u542b\u8d77, \u4e0d\u542b\u6b62)\u3002" }, { @@ -38340,7 +38490,7 @@ "source_location": "L27", "_origin": "ast", "id": "app_utils_excel_export_load_dict_label_maps", - "community": 52, + "community": 111, "norm_label": "load_dict_label_maps()" }, { @@ -38430,7 +38580,7 @@ "source_location": "", "_origin": "ast", "id": "streamingresponse", - "community": 52, + "community": 7, "norm_label": "streamingresponse" }, { @@ -38470,7 +38620,7 @@ "source_location": "L32", "_origin": "ast", "id": "app_utils_excel_export_rationale_32", - "community": 52, + "community": 111, "norm_label": "\u9884\u52a0\u8f7d\u591a\u4e2a\u5b57\u5178\u7c7b\u578b\u7684 value\u2192label \u6620\u5c04(\u5355\u6b21\u67e5\u8be2,\u907f\u514d n+1)\u3002" }, { @@ -38570,7 +38720,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_utils_pinyin_abbr", - "community": 56, + "community": 105, "norm_label": "pinyin_abbr.py" }, { @@ -38580,7 +38730,7 @@ "source_location": "L13", "_origin": "ast", "id": "app_utils_pinyin_abbr_normalize_name_pinyin_abbr", - "community": 56, + "community": 105, "norm_label": "normalize_name_pinyin_abbr()" }, { @@ -38590,7 +38740,7 @@ "source_location": "L20", "_origin": "ast", "id": "app_utils_pinyin_abbr_build_name_pinyin_abbr", - "community": 56, + "community": 105, "norm_label": "build_name_pinyin_abbr()" }, { @@ -38600,7 +38750,7 @@ "source_location": "L36", "_origin": "ast", "id": "app_utils_pinyin_abbr_resolve_name_pinyin_abbr", - "community": 56, + "community": 105, "norm_label": "resolve_name_pinyin_abbr()" }, { @@ -38610,7 +38760,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_utils_pinyin_abbr_rationale_1", - "community": 56, + "community": 105, "norm_label": "\u540d\u79f0\u62fc\u97f3\u9996\u5b57\u6bcd\u7f29\u5199:\u5e93\u5185\u5b58\u5c0f\u5199,\u68c0\u7d22\u65f6\u5927\u5c0f\u5199\u4e0d\u654f\u611f\u3002" }, { @@ -38620,7 +38770,7 @@ "source_location": "L43", "_origin": "ast", "id": "app_utils_pinyin_abbr_rationale_43", - "community": 56, + "community": 105, "norm_label": "\u4fdd\u5b58\u65f6\u89e3\u6790\u62fc\u97f3\u5b57\u6bb5\u3002 - submitted_provided=true:\u7528\u63d0\u4ea4\u503c(\u7a7a\u5219\u6309 name \u751f\u6210) - \u5426\u5219:\u5df2\u6709\u975e\u7a7a existi" }, { @@ -39630,7 +39780,7 @@ "source_location": "L1", "_origin": "ast", "id": "scripts_migrate_crm_customer", - "community": 58, + "community": 37, "norm_label": "migrate_crm_customer.py" }, { @@ -39640,7 +39790,7 @@ "source_location": "L79", "_origin": "ast", "id": "scripts_migrate_crm_customer_stepstats", - "community": 58, + "community": 37, "norm_label": "stepstats" }, { @@ -39650,7 +39800,7 @@ "source_location": "L87", "_origin": "ast", "id": "scripts_migrate_crm_customer_migrationstats", - "community": 58, + "community": 37, "norm_label": "migrationstats" }, { @@ -39660,7 +39810,7 @@ "source_location": "L91", "_origin": "ast", "id": "scripts_migrate_crm_customer_migrationstats_step", - "community": 58, + "community": 37, "norm_label": ".step()" }, { @@ -39670,7 +39820,7 @@ "source_location": "L97", "_origin": "ast", "id": "scripts_migrate_crm_customer_legacy_id_to_str", - "community": 58, + "community": 37, "norm_label": "legacy_id_to_str()" }, { @@ -39680,7 +39830,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_customer_py_any", - "community": 58, + "community": 37, "norm_label": "any" }, { @@ -39690,7 +39840,7 @@ "source_location": "L106", "_origin": "ast", "id": "scripts_migrate_crm_customer_derive_source_url", - "community": 58, + "community": 37, "norm_label": "derive_source_url()" }, { @@ -39700,7 +39850,7 @@ "source_location": "L110", "_origin": "ast", "id": "scripts_migrate_crm_customer_load_settings_env", - "community": 58, + "community": 37, "norm_label": "load_settings_env()" }, { @@ -39710,7 +39860,7 @@ "source_location": "L126", "_origin": "ast", "id": "scripts_migrate_crm_customer_load_runtime_settings", - "community": 58, + "community": 37, "norm_label": "load_runtime_settings()" }, { @@ -39720,7 +39870,7 @@ "source_location": "L132", "_origin": "ast", "id": "scripts_migrate_crm_customer_load_user_mapping", - "community": 58, + "community": 37, "norm_label": "load_user_mapping()" }, { @@ -39730,7 +39880,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_customer_py_path", - "community": 58, + "community": 37, "norm_label": "path" }, { @@ -39740,7 +39890,7 @@ "source_location": "L150", "_origin": "ast", "id": "scripts_migrate_crm_customer_fetch_portal_admin_id", - "community": 58, + "community": 37, "norm_label": "fetch_portal_admin_id()" }, { @@ -39750,7 +39900,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_customer_py_engine", - "community": 58, + "community": 37, "norm_label": "engine" }, { @@ -39760,7 +39910,7 @@ "source_location": "L158", "_origin": "ast", "id": "scripts_migrate_crm_customer_resolve_portal_user_id", - "community": 58, + "community": 37, "norm_label": "resolve_portal_user_id()" }, { @@ -39770,7 +39920,7 @@ "source_location": "L184", "_origin": "ast", "id": "scripts_migrate_crm_customer_load_oss_id_to_url", - "community": 58, + "community": 37, "norm_label": "load_oss_id_to_url()" }, { @@ -39780,7 +39930,7 @@ "source_location": "L193", "_origin": "ast", "id": "scripts_migrate_crm_customer_normalize_customer_type", - "community": 58, + "community": 37, "norm_label": "normalize_customer_type()" }, { @@ -39790,7 +39940,7 @@ "source_location": "L210", "_origin": "ast", "id": "scripts_migrate_crm_customer_normalize_follow_type", - "community": 58, + "community": 37, "norm_label": "normalize_follow_type()" }, { @@ -39800,7 +39950,7 @@ "source_location": "L215", "_origin": "ast", "id": "scripts_migrate_crm_customer_dec", - "community": 58, + "community": 37, "norm_label": "_dec()" }, { @@ -39810,7 +39960,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_customer_py_decimal", - "community": 58, + "community": 37, "norm_label": "decimal" }, { @@ -39820,7 +39970,7 @@ "source_location": "L221", "_origin": "ast", "id": "scripts_migrate_crm_customer_str_or_none", - "community": 58, + "community": 37, "norm_label": "_str_or_none()" }, { @@ -39830,7 +39980,7 @@ "source_location": "L230", "_origin": "ast", "id": "scripts_migrate_crm_customer_fetch_source_rows", - "community": 58, + "community": 37, "norm_label": "fetch_source_rows()" }, { @@ -39840,7 +39990,7 @@ "source_location": "L237", "_origin": "ast", "id": "scripts_migrate_crm_customer_target_row_exists", - "community": 58, + "community": 37, "norm_label": "target_row_exists()" }, { @@ -39850,7 +40000,7 @@ "source_location": "L241", "_origin": "ast", "id": "scripts_migrate_crm_customer_transform_customer", - "community": 58, + "community": 37, "norm_label": "transform_customer()" }, { @@ -39860,7 +40010,7 @@ "source_location": "L310", "_origin": "ast", "id": "scripts_migrate_crm_customer_transform_contact", - "community": 58, + "community": 37, "norm_label": "transform_contact()" }, { @@ -39870,7 +40020,7 @@ "source_location": "L354", "_origin": "ast", "id": "scripts_migrate_crm_customer_transform_follow", - "community": 58, + "community": 37, "norm_label": "transform_follow()" }, { @@ -39880,7 +40030,7 @@ "source_location": "L392", "_origin": "ast", "id": "scripts_migrate_crm_customer_transform_pool", - "community": 58, + "community": 37, "norm_label": "transform_pool()" }, { @@ -39890,7 +40040,7 @@ "source_location": "L502", "_origin": "ast", "id": "scripts_migrate_crm_customer_write_mapping_csv", - "community": 58, + "community": 37, "norm_label": "write_mapping_csv()" }, { @@ -39900,7 +40050,7 @@ "source_location": "L513", "_origin": "ast", "id": "scripts_migrate_crm_customer_migrate_table", - "community": 58, + "community": 37, "norm_label": "migrate_table()" }, { @@ -39910,7 +40060,7 @@ "source_location": "L559", "_origin": "ast", "id": "scripts_migrate_crm_customer_print_report", - "community": 58, + "community": 37, "norm_label": "print_report()" }, { @@ -39920,7 +40070,7 @@ "source_location": "L573", "_origin": "ast", "id": "scripts_migrate_crm_customer_run_migration", - "community": 58, + "community": 37, "norm_label": "run_migration()" }, { @@ -39930,7 +40080,7 @@ "source_location": "L615", "_origin": "ast", "id": "scripts_migrate_crm_customer_main", - "community": 58, + "community": 37, "norm_label": "main()" }, { @@ -40240,7 +40390,7 @@ "source_location": "L1", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice", - "community": 46, + "community": 30, "norm_label": "migrate_crm_payment_invoice.py" }, { @@ -40250,7 +40400,7 @@ "source_location": "L45", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_stepstats", - "community": 46, + "community": 30, "norm_label": "stepstats" }, { @@ -40260,7 +40410,7 @@ "source_location": "L52", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_migrationstats", - "community": 46, + "community": 30, "norm_label": "migrationstats" }, { @@ -40270,7 +40420,7 @@ "source_location": "L56", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_migrationstats_step", - "community": 46, + "community": 30, "norm_label": ".step()" }, { @@ -40280,7 +40430,7 @@ "source_location": "L62", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_legacy_id_to_str", - "community": 46, + "community": 30, "norm_label": "legacy_id_to_str()" }, { @@ -40290,7 +40440,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_py_any", - "community": 46, + "community": 30, "norm_label": "any" }, { @@ -40300,7 +40450,7 @@ "source_location": "L71", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_derive_source_url", - "community": 46, + "community": 30, "norm_label": "derive_source_url()" }, { @@ -40310,7 +40460,7 @@ "source_location": "L75", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_load_settings_env", - "community": 46, + "community": 30, "norm_label": "load_settings_env()" }, { @@ -40320,7 +40470,7 @@ "source_location": "L91", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_load_runtime_settings", - "community": 46, + "community": 30, "norm_label": "load_runtime_settings()" }, { @@ -40330,7 +40480,7 @@ "source_location": "L97", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_load_user_mapping", - "community": 46, + "community": 30, "norm_label": "load_user_mapping()" }, { @@ -40340,7 +40490,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_py_path", - "community": 46, + "community": 30, "norm_label": "path" }, { @@ -40350,7 +40500,7 @@ "source_location": "L115", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_fetch_portal_admin_id", - "community": 46, + "community": 30, "norm_label": "fetch_portal_admin_id()" }, { @@ -40360,7 +40510,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_py_engine", - "community": 46, + "community": 30, "norm_label": "engine" }, { @@ -40370,7 +40520,7 @@ "source_location": "L123", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_resolve_portal_user_id", - "community": 46, + "community": 30, "norm_label": "resolve_portal_user_id()" }, { @@ -40380,7 +40530,7 @@ "source_location": "L145", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_str_or_none", - "community": 46, + "community": 30, "norm_label": "_str_or_none()" }, { @@ -40390,7 +40540,7 @@ "source_location": "L154", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_fetch_source_rows", - "community": 46, + "community": 30, "norm_label": "fetch_source_rows()" }, { @@ -40400,7 +40550,7 @@ "source_location": "L161", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_count_source_rows", - "community": 46, + "community": 30, "norm_label": "count_source_rows()" }, { @@ -40410,7 +40560,7 @@ "source_location": "L169", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_target_table_exists", - "community": 46, + "community": 30, "norm_label": "target_table_exists()" }, { @@ -40420,7 +40570,7 @@ "source_location": "L175", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_target_row_exists", - "community": 46, + "community": 30, "norm_label": "target_row_exists()" }, { @@ -40430,7 +40580,7 @@ "source_location": "L179", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_transform_invoice_info", - "community": 46, + "community": 30, "norm_label": "transform_invoice_info()" }, { @@ -40440,7 +40590,7 @@ "source_location": "L246", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_write_mapping_csv", - "community": 46, + "community": 30, "norm_label": "write_mapping_csv()" }, { @@ -40450,7 +40600,7 @@ "source_location": "L257", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_report_skipped_tables", - "community": 46, + "community": 30, "norm_label": "report_skipped_tables()" }, { @@ -40460,7 +40610,7 @@ "source_location": "L273", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_migrate_invoice_info", - "community": 46, + "community": 30, "norm_label": "migrate_invoice_info()" }, { @@ -40470,7 +40620,7 @@ "source_location": "L315", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_print_report", - "community": 46, + "community": 30, "norm_label": "print_report()" }, { @@ -40480,7 +40630,7 @@ "source_location": "L330", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_run_migration", - "community": 46, + "community": 30, "norm_label": "run_migration()" }, { @@ -40490,7 +40640,7 @@ "source_location": "L360", "_origin": "ast", "id": "scripts_migrate_crm_payment_invoice_main", - "community": 46, + "community": 30, "norm_label": "main()" }, { @@ -41000,7 +41150,7 @@ "source_location": "L1", "_origin": "ast", "id": "scripts_migrate_crm_quote", - "community": 42, + "community": 34, "norm_label": "migrate_crm_quote.py" }, { @@ -41010,7 +41160,7 @@ "source_location": "L52", "_origin": "ast", "id": "scripts_migrate_crm_quote_stepstats", - "community": 42, + "community": 34, "norm_label": "stepstats" }, { @@ -41020,7 +41170,7 @@ "source_location": "L60", "_origin": "ast", "id": "scripts_migrate_crm_quote_migrationstats", - "community": 42, + "community": 34, "norm_label": "migrationstats" }, { @@ -41030,7 +41180,7 @@ "source_location": "L64", "_origin": "ast", "id": "scripts_migrate_crm_quote_migrationstats_step", - "community": 42, + "community": 34, "norm_label": ".step()" }, { @@ -41040,7 +41190,7 @@ "source_location": "L70", "_origin": "ast", "id": "scripts_migrate_crm_quote_legacy_id_to_str", - "community": 42, + "community": 34, "norm_label": "legacy_id_to_str()" }, { @@ -41050,7 +41200,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_quote_py_any", - "community": 42, + "community": 34, "norm_label": "any" }, { @@ -41060,7 +41210,7 @@ "source_location": "L79", "_origin": "ast", "id": "scripts_migrate_crm_quote_legacy_parent_id", - "community": 42, + "community": 34, "norm_label": "legacy_parent_id()" }, { @@ -41070,7 +41220,7 @@ "source_location": "L90", "_origin": "ast", "id": "scripts_migrate_crm_quote_derive_source_url", - "community": 42, + "community": 34, "norm_label": "derive_source_url()" }, { @@ -41080,7 +41230,7 @@ "source_location": "L94", "_origin": "ast", "id": "scripts_migrate_crm_quote_load_settings_env", - "community": 42, + "community": 34, "norm_label": "load_settings_env()" }, { @@ -41090,7 +41240,7 @@ "source_location": "L110", "_origin": "ast", "id": "scripts_migrate_crm_quote_load_runtime_settings", - "community": 42, + "community": 34, "norm_label": "load_runtime_settings()" }, { @@ -41100,7 +41250,7 @@ "source_location": "L116", "_origin": "ast", "id": "scripts_migrate_crm_quote_load_user_mapping", - "community": 42, + "community": 34, "norm_label": "load_user_mapping()" }, { @@ -41110,7 +41260,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_quote_py_path", - "community": 42, + "community": 34, "norm_label": "path" }, { @@ -41120,7 +41270,7 @@ "source_location": "L134", "_origin": "ast", "id": "scripts_migrate_crm_quote_fetch_portal_admin_id", - "community": 42, + "community": 34, "norm_label": "fetch_portal_admin_id()" }, { @@ -41130,7 +41280,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_quote_py_engine", - "community": 42, + "community": 34, "norm_label": "engine" }, { @@ -41140,7 +41290,7 @@ "source_location": "L142", "_origin": "ast", "id": "scripts_migrate_crm_quote_resolve_portal_user_id", - "community": 42, + "community": 34, "norm_label": "resolve_portal_user_id()" }, { @@ -41150,7 +41300,7 @@ "source_location": "L167", "_origin": "ast", "id": "scripts_migrate_crm_quote_load_oss_id_to_url", - "community": 42, + "community": 34, "norm_label": "load_oss_id_to_url()" }, { @@ -41160,7 +41310,7 @@ "source_location": "L176", "_origin": "ast", "id": "scripts_migrate_crm_quote_normalize_attachment_csv", - "community": 42, + "community": 34, "norm_label": "normalize_attachment_csv()" }, { @@ -41170,7 +41320,7 @@ "source_location": "L197", "_origin": "ast", "id": "scripts_migrate_crm_quote_normalize_pdf_url", - "community": 42, + "community": 34, "norm_label": "normalize_pdf_url()" }, { @@ -41180,7 +41330,7 @@ "source_location": "L207", "_origin": "ast", "id": "scripts_migrate_crm_quote_dec", - "community": 42, + "community": 34, "norm_label": "_dec()" }, { @@ -41190,7 +41340,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_quote_py_decimal", - "community": 42, + "community": 34, "norm_label": "decimal" }, { @@ -41200,7 +41350,7 @@ "source_location": "L213", "_origin": "ast", "id": "scripts_migrate_crm_quote_str_or_none", - "community": 42, + "community": 34, "norm_label": "_str_or_none()" }, { @@ -41210,7 +41360,7 @@ "source_location": "L222", "_origin": "ast", "id": "scripts_migrate_crm_quote_fetch_source_rows", - "community": 42, + "community": 34, "norm_label": "fetch_source_rows()" }, { @@ -41220,7 +41370,7 @@ "source_location": "L232", "_origin": "ast", "id": "scripts_migrate_crm_quote_target_row_exists", - "community": 42, + "community": 34, "norm_label": "target_row_exists()" }, { @@ -41230,7 +41380,7 @@ "source_location": "L236", "_origin": "ast", "id": "scripts_migrate_crm_quote_transform_supplier_info", - "community": 42, + "community": 34, "norm_label": "transform_supplier_info()" }, { @@ -41240,7 +41390,7 @@ "source_location": "L273", "_origin": "ast", "id": "scripts_migrate_crm_quote_transform_quote", - "community": 42, + "community": 34, "norm_label": "transform_quote()" }, { @@ -41250,7 +41400,7 @@ "source_location": "L344", "_origin": "ast", "id": "scripts_migrate_crm_quote_transform_quote_product", - "community": 42, + "community": 34, "norm_label": "transform_quote_product()" }, { @@ -41260,7 +41410,7 @@ "source_location": "L389", "_origin": "ast", "id": "scripts_migrate_crm_quote_transform_quote_approval", - "community": 42, + "community": 34, "norm_label": "transform_quote_approval()" }, { @@ -41270,7 +41420,7 @@ "source_location": "L424", "_origin": "ast", "id": "scripts_migrate_crm_quote_transform_quote_share_log", - "community": 42, + "community": 34, "norm_label": "transform_quote_share_log()" }, { @@ -41280,7 +41430,7 @@ "source_location": "L544", "_origin": "ast", "id": "scripts_migrate_crm_quote_write_mapping_csv", - "community": 42, + "community": 34, "norm_label": "write_mapping_csv()" }, { @@ -41290,7 +41440,7 @@ "source_location": "L555", "_origin": "ast", "id": "scripts_migrate_crm_quote_migrate_table", - "community": 42, + "community": 34, "norm_label": "migrate_table()" }, { @@ -41300,7 +41450,7 @@ "source_location": "L601", "_origin": "ast", "id": "scripts_migrate_crm_quote_print_report", - "community": 42, + "community": 34, "norm_label": "print_report()" }, { @@ -41310,7 +41460,7 @@ "source_location": "L615", "_origin": "ast", "id": "scripts_migrate_crm_quote_run_migration", - "community": 42, + "community": 34, "norm_label": "run_migration()" }, { @@ -41320,7 +41470,7 @@ "source_location": "L661", "_origin": "ast", "id": "scripts_migrate_crm_quote_main", - "community": 42, + "community": 34, "norm_label": "main()" }, { @@ -41330,7 +41480,7 @@ "source_location": "L1", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss", - "community": 42, + "community": 53, "norm_label": "migrate_crm_sys_oss.py" }, { @@ -41340,7 +41490,7 @@ "source_location": "L53", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_backfillrule", - "community": 42, + "community": 53, "norm_label": "backfillrule" }, { @@ -41350,7 +41500,7 @@ "source_location": "L93", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_bizref", - "community": 42, + "community": 53, "norm_label": "bizref" }, { @@ -41360,7 +41510,7 @@ "source_location": "L102", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_migrationstats", - "community": 42, + "community": 53, "norm_label": "migrationstats" }, { @@ -41370,7 +41520,7 @@ "source_location": "L113", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_legacy_id_to_str", - "community": 42, + "community": 53, "norm_label": "legacy_id_to_str()" }, { @@ -41380,7 +41530,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_py_any", - "community": 42, + "community": 53, "norm_label": "any" }, { @@ -41390,7 +41540,7 @@ "source_location": "L122", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_derive_source_url", - "community": 42, + "community": 53, "norm_label": "derive_source_url()" }, { @@ -41400,7 +41550,7 @@ "source_location": "L126", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_load_settings_env", - "community": 42, + "community": 53, "norm_label": "load_settings_env()" }, { @@ -41410,7 +41560,7 @@ "source_location": "L142", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_load_runtime_settings", - "community": 42, + "community": 53, "norm_label": "load_runtime_settings()" }, { @@ -41420,7 +41570,7 @@ "source_location": "L148", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_load_user_mapping", - "community": 42, + "community": 53, "norm_label": "load_user_mapping()" }, { @@ -41430,7 +41580,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_py_path", - "community": 42, + "community": 53, "norm_label": "path" }, { @@ -41440,7 +41590,7 @@ "source_location": "L166", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_fetch_portal_admin_id", - "community": 42, + "community": 53, "norm_label": "fetch_portal_admin_id()" }, { @@ -41450,7 +41600,7 @@ "source_location": "", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_py_engine", - "community": 42, + "community": 53, "norm_label": "engine" }, { @@ -41460,7 +41610,7 @@ "source_location": "L174", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_resolve_portal_user_id", - "community": 42, + "community": 53, "norm_label": "resolve_portal_user_id()" }, { @@ -41470,7 +41620,7 @@ "source_location": "L196", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_fetch_source_rows", - "community": 42, + "community": 53, "norm_label": "fetch_source_rows()" }, { @@ -41480,7 +41630,7 @@ "source_location": "L202", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_count_target_rows", - "community": 42, + "community": 53, "norm_label": "count_target_rows()" }, { @@ -41490,7 +41640,7 @@ "source_location": "L212", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_transform_row", - "community": 42, + "community": 53, "norm_label": "transform_row()" }, { @@ -41500,7 +41650,7 @@ "source_location": "L288", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_target_row_exists", - "community": 42, + "community": 53, "norm_label": "target_row_exists()" }, { @@ -41510,7 +41660,7 @@ "source_location": "L295", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_parse_oss_id_tokens", - "community": 42, + "community": 53, "norm_label": "parse_oss_id_tokens()" }, { @@ -41520,7 +41670,7 @@ "source_location": "L335", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_normalize_oss_token", - "community": 42, + "community": 53, "norm_label": "_normalize_oss_token()" }, { @@ -41530,7 +41680,7 @@ "source_location": "L348", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_table_exists", - "community": 42, + "community": 53, "norm_label": "table_exists()" }, { @@ -41540,7 +41690,7 @@ "source_location": "L360", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_build_biz_index", - "community": 42, + "community": 53, "norm_label": "build_biz_index()" }, { @@ -41550,7 +41700,7 @@ "source_location": "L415", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_apply_biz_backfill", - "community": 42, + "community": 53, "norm_label": "apply_biz_backfill()" }, { @@ -41560,7 +41710,7 @@ "source_location": "L445", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_write_mapping_csv", - "community": 42, + "community": 53, "norm_label": "write_mapping_csv()" }, { @@ -41570,7 +41720,7 @@ "source_location": "L475", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_write_backfill_csv", - "community": 42, + "community": 53, "norm_label": "write_backfill_csv()" }, { @@ -41580,7 +41730,7 @@ "source_location": "L497", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_write_unresolved_csv", - "community": 42, + "community": 53, "norm_label": "write_unresolved_csv()" }, { @@ -41590,7 +41740,7 @@ "source_location": "L511", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_print_report", - "community": 42, + "community": 53, "norm_label": "print_report()" }, { @@ -41600,7 +41750,7 @@ "source_location": "L525", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_run_migration", - "community": 42, + "community": 53, "norm_label": "run_migration()" }, { @@ -41610,7 +41760,7 @@ "source_location": "L597", "_origin": "ast", "id": "scripts_migrate_crm_sys_oss_main", - "community": 42, + "community": 53, "norm_label": "main()" }, { @@ -42220,7 +42370,7 @@ "source_location": "L1", "_origin": "ast", "id": "scripts_migration_minio_url", - "community": 42, + "community": 125, "norm_label": "minio_url.py" }, { @@ -42230,7 +42380,7 @@ "source_location": "L39", "_origin": "ast", "id": "scripts_migration_minio_url_strip_url_query", - "community": 42, + "community": 125, "norm_label": "strip_url_query()" }, { @@ -42240,7 +42390,7 @@ "source_location": "L47", "_origin": "ast", "id": "scripts_migration_minio_url_strip_legacy_prefix", - "community": 42, + "community": 125, "norm_label": "_strip_legacy_prefix()" }, { @@ -42250,7 +42400,7 @@ "source_location": "L55", "_origin": "ast", "id": "scripts_migration_minio_url_extract_minio_object_key", - "community": 42, + "community": 125, "norm_label": "extract_minio_object_key()" }, { @@ -42260,7 +42410,7 @@ "source_location": "L83", "_origin": "ast", "id": "scripts_migration_minio_url_normalize_oss_storage_url", - "community": 42, + "community": 125, "norm_label": "normalize_oss_storage_url()" }, { @@ -42270,7 +42420,7 @@ "source_location": "L96", "_origin": "ast", "id": "scripts_migration_minio_url_join_relative_urls", - "community": 42, + "community": 125, "norm_label": "join_relative_urls()" }, { @@ -42280,7 +42430,7 @@ "source_location": "L109", "_origin": "ast", "id": "scripts_migration_minio_url_resolve_oss_id_csv", - "community": 42, + "community": 125, "norm_label": "resolve_oss_id_csv()" }, { @@ -42290,7 +42440,7 @@ "source_location": "L1", "_origin": "ast", "id": "scripts_migration_minio_url_rationale_1", - "community": 42, + "community": 125, "norm_label": "minio \u9644\u4ef6 url \u89c4\u8303\u5316(\u6570\u636e\u8fc1\u79fb\u5171\u7528)\u3002 \u80cc\u666f ---- crm / \u5730\u78c5 / \u62a5\u9500\u4e0e shanxia2.0 \u5171\u7528\u540c\u4e00 minio(bucket \u9ed8" }, { @@ -42300,7 +42450,7 @@ "source_location": "L40", "_origin": "ast", "id": "scripts_migration_minio_url_rationale_40", - "community": 42, + "community": 125, "norm_label": "\u53bb\u6389\u9884\u7b7e\u540d query(``?x-amz-...``)\u3002" }, { @@ -42310,7 +42460,7 @@ "source_location": "L61", "_origin": "ast", "id": "scripts_migration_minio_url_rationale_61", - "community": 42, + "community": 125, "norm_label": "\u5c06\u7edd\u5bf9/\u76f8\u5bf9 url \u89c4\u8303\u4e3a minio object key(\u4e0d\u542b bucket)\u3002" }, { @@ -42320,7 +42470,7 @@ "source_location": "L89", "_origin": "ast", "id": "scripts_migration_minio_url_rationale_89", - "community": 42, + "community": 125, "norm_label": "\u8fc1\u79fb crm ``sys_oss`` \u884c:``url`` + ``file_name`` \u2192 \u95e8\u6237\u76f8\u5bf9\u8def\u5f84\u3002" }, { @@ -42330,7 +42480,7 @@ "source_location": "L113", "_origin": "ast", "id": "scripts_migration_minio_url_rationale_113", - "community": 42, + "community": 125, "norm_label": "\u4e1a\u52a1\u8868 oss id \u4e32 \u2192 \u76f8\u5bf9 url \u4e32(\u7528\u4e8e\u5ba2\u6237\u8bc1\u7167\u3001\u8ddf\u8fdb\u9644\u4ef6\u7b49)\u3002" }, { @@ -43072,7 +43222,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_bx_optional_date", - "community": 17, + "community": 58, "norm_label": "test_bx_optional_date.py" }, { @@ -43082,7 +43232,7 @@ "source_location": "L8", "_origin": "ast", "id": "tests_test_bx_optional_date_test_parse_optional_date_none_and_blank", - "community": 17, + "community": 58, "norm_label": "test_parse_optional_date_none_and_blank()" }, { @@ -43092,7 +43242,7 @@ "source_location": "L14", "_origin": "ast", "id": "tests_test_bx_optional_date_test_parse_optional_date_string_and_date", - "community": 17, + "community": 58, "norm_label": "test_parse_optional_date_string_and_date()" }, { @@ -43102,7 +43252,7 @@ "source_location": "L20", "_origin": "ast", "id": "tests_test_bx_optional_date_test_parse_optional_date_invalid", - "community": 17, + "community": 58, "norm_label": "test_parse_optional_date_invalid()" }, { @@ -43255,6 +43405,26 @@ "community": 9, "norm_label": "\u7236\u7ea7\u672a\u4f20\u5165(\u7b49\u540c\u5df2\u5220\u9664)\u65f6,\u5b50\u8282\u70b9\u4e0d\u5e94\u8fdb\u5165\u4e0b\u62c9\u2014\u2014\u4e0e web \u6811\u4e00\u81f4\u3002" }, + { + "label": "test_bx_reimburse_my_page_size.py", + "file_type": "code", + "source_file": "tests/test_bx_reimburse_my_page_size.py", + "source_location": "L1", + "_origin": "ast", + "id": "tests_test_bx_reimburse_my_page_size", + "community": 15, + "norm_label": "test_bx_reimburse_my_page_size.py" + }, + { + "label": "test_my_reimburses_page_size_query_bounds()", + "file_type": "code", + "source_file": "tests/test_bx_reimburse_my_page_size.py", + "source_location": "L8", + "_origin": "ast", + "id": "tests_test_bx_reimburse_my_page_size_test_my_reimburses_page_size_query_bounds", + "community": 15, + "norm_label": "test_my_reimburses_page_size_query_bounds()" + }, { "label": "test_crm_approval_reedit.py", "file_type": "code", @@ -43712,7 +43882,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_crm_name_pinyin_search", - "community": 86, + "community": 108, "norm_label": "test_crm_name_pinyin_search.py" }, { @@ -43722,27 +43892,37 @@ "source_location": "L10", "_origin": "ast", "id": "tests_test_crm_name_pinyin_search_test_list_products_keyword_includes_name_and_pinyin", - "community": 86, + "community": 108, "norm_label": "test_list_products_keyword_includes_name_and_pinyin()" }, + { + "label": "test_list_products_keyword_selector_mode_excludes_product_no_includes_model()", + "file_type": "code", + "source_file": "tests/test_crm_name_pinyin_search.py", + "source_location": "L31", + "_origin": "ast", + "id": "tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", + "community": 108, + "norm_label": "test_list_products_keyword_selector_mode_excludes_product_no_includes_model()" + }, { "label": "test_list_customers_keyword_includes_name_and_pinyin()", "file_type": "code", "source_file": "tests/test_crm_name_pinyin_search.py", - "source_location": "L30", + "source_location": "L60", "_origin": "ast", "id": "tests_test_crm_name_pinyin_search_test_list_customers_keyword_includes_name_and_pinyin", - "community": 86, + "community": 108, "norm_label": "test_list_customers_keyword_includes_name_and_pinyin()" }, { "label": "test_list_customer_options_keyword_includes_name_and_pinyin()", "file_type": "code", "source_file": "tests/test_crm_name_pinyin_search.py", - "source_location": "L50", + "source_location": "L80", "_origin": "ast", "id": "tests_test_crm_name_pinyin_search_test_list_customer_options_keyword_includes_name_and_pinyin", - "community": 86, + "community": 108, "norm_label": "test_list_customer_options_keyword_includes_name_and_pinyin()" }, { @@ -43752,9 +43932,19 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_crm_name_pinyin_search_rationale_1", - "community": 86, + "community": 108, "norm_label": "\u4ea7\u54c1/\u5ba2\u6237\u5217\u8868 keyword:\u540d\u79f0/\u7f16\u53f7/\u62fc\u97f3\u9996\u5b57\u6bcd or \u5339\u914d\u3002" }, + { + "label": "\u9009\u62e9\u5668\uff1a\u540d\u79f0/\u62fc\u97f3/\u89c4\u683c\u578b\u53f7\uff0c\u4e0d\u5339\u914d\u4ea7\u54c1\u7f16\u53f7\u3002", + "file_type": "rationale", + "source_file": "tests/test_crm_name_pinyin_search.py", + "source_location": "L32", + "_origin": "ast", + "id": "tests_test_crm_name_pinyin_search_rationale_32", + "community": 108, + "norm_label": "\u9009\u62e9\u5668:\u540d\u79f0/\u62fc\u97f3/\u89c4\u683c\u578b\u53f7,\u4e0d\u5339\u914d\u4ea7\u54c1\u7f16\u53f7\u3002" + }, { "label": "test_crm_product_options_keyword.py", "file_type": "code", @@ -43762,7 +43952,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_crm_product_options_keyword", - "community": 88, + "community": 131, "norm_label": "test_crm_product_options_keyword.py" }, { @@ -43772,7 +43962,7 @@ "source_location": "L9", "_origin": "ast", "id": "tests_test_crm_product_options_keyword_test_list_product_options_keyword_only_filters_product_name", - "community": 88, + "community": 131, "norm_label": "test_list_product_options_keyword_only_filters_product_name()" }, { @@ -43782,7 +43972,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_crm_product_options_keyword_rationale_1", - "community": 88, + "community": 131, "norm_label": "\u4ea7\u54c1\u4e0b\u62c9 options:keyword \u6309\u4ea7\u54c1\u540d\u79f0/\u62fc\u97f3\u9996\u5b57\u6bcd\u6a21\u7cca\u5339\u914d,\u4e0d\u5339\u914d\u4ea7\u54c1\u7f16\u53f7\u3002" }, { @@ -43862,7 +44052,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_crm_supplier_hazard", - "community": 102, + "community": 128, "norm_label": "test_crm_supplier_hazard.py" }, { @@ -43872,7 +44062,7 @@ "source_location": "L4", "_origin": "ast", "id": "tests_test_crm_supplier_hazard_test_plain_always_allowed", - "community": 102, + "community": 128, "norm_label": "test_plain_always_allowed()" }, { @@ -43882,7 +44072,7 @@ "source_location": "L8", "_origin": "ast", "id": "tests_test_crm_supplier_hazard_test_toxic_only_requires_allow_toxic", - "community": 102, + "community": 128, "norm_label": "test_toxic_only_requires_allow_toxic()" }, { @@ -43892,7 +44082,7 @@ "source_location": "L13", "_origin": "ast", "id": "tests_test_crm_supplier_hazard_test_explosive_only_requires_allow_explosive", - "community": 102, + "community": 128, "norm_label": "test_explosive_only_requires_allow_explosive()" }, { @@ -43902,7 +44092,7 @@ "source_location": "L18", "_origin": "ast", "id": "tests_test_crm_supplier_hazard_test_dual_requires_both", - "community": 102, + "community": 128, "norm_label": "test_dual_requires_both()" }, { @@ -44032,7 +44222,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_db_inventory_id", - "community": 114, + "community": 19, "norm_label": "test_db_inventory_id.py" }, { @@ -44042,7 +44232,7 @@ "source_location": "L7", "_origin": "ast", "id": "tests_test_db_inventory_id_test_max_numeric_inbound_outbound_id_parses_scalar", - "community": 114, + "community": 19, "norm_label": "test_max_numeric_inbound_outbound_id_parses_scalar()" }, { @@ -44052,7 +44242,7 @@ "source_location": "L14", "_origin": "ast", "id": "tests_test_db_inventory_id_test_max_numeric_inbound_outbound_id_empty", - "community": 114, + "community": 19, "norm_label": "test_max_numeric_inbound_outbound_id_empty()" }, { @@ -44062,7 +44252,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_db_resolve_crm_product", - "community": 40, + "community": 10, "norm_label": "test_db_resolve_crm_product.py" }, { @@ -44072,7 +44262,7 @@ "source_location": "L13", "_origin": "ast", "id": "tests_test_db_resolve_crm_product_product", - "community": 40, + "community": 10, "norm_label": "_product()" }, { @@ -44082,7 +44272,7 @@ "source_location": "L25", "_origin": "ast", "id": "tests_test_db_resolve_crm_product_test_resolve_rejects_off_shelf_by_default", - "community": 40, + "community": 10, "norm_label": "test_resolve_rejects_off_shelf_by_default()" }, { @@ -44092,7 +44282,7 @@ "source_location": "L34", "_origin": "ast", "id": "tests_test_db_resolve_crm_product_test_resolve_allows_off_shelf_when_not_required", - "community": 40, + "community": 10, "norm_label": "test_resolve_allows_off_shelf_when_not_required()" }, { @@ -44102,7 +44292,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_db_resolve_crm_product_rationale_1", - "community": 40, + "community": 10, "norm_label": "resolve_crm_product:\u8fd0\u8f93\u8054\u52a8\u573a\u666f\u5141\u8bb8\u5df2\u4e0b\u67b6\u4ea7\u54c1\u3002" }, { @@ -44185,6 +44375,126 @@ "community": 78, "norm_label": "test_legacy_name_match()" }, + { + "label": "test_dict_ensure.py", + "file_type": "code", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L1", + "_origin": "ast", + "id": "tests_test_dict_ensure", + "community": 24, + "norm_label": "test_dict_ensure.py" + }, + { + "label": "test_whitelist_contains_crm_types()", + "file_type": "code", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L15", + "_origin": "ast", + "id": "tests_test_dict_ensure_test_whitelist_contains_crm_types", + "community": 24, + "norm_label": "test_whitelist_contains_crm_types()" + }, + { + "label": "test_ensure_rejects_unknown_dict_type()", + "file_type": "code", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L22", + "_origin": "ast", + "id": "tests_test_dict_ensure_test_ensure_rejects_unknown_dict_type", + "community": 24, + "norm_label": "test_ensure_rejects_unknown_dict_type()" + }, + { + "label": "test_ensure_rejects_empty_label()", + "file_type": "code", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L30", + "_origin": "ast", + "id": "tests_test_dict_ensure_test_ensure_rejects_empty_label", + "community": 24, + "norm_label": "test_ensure_rejects_empty_label()" + }, + { + "label": "test_ensure_reuses_existing_label()", + "file_type": "code", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L38", + "_origin": "ast", + "id": "tests_test_dict_ensure_test_ensure_reuses_existing_label", + "community": 24, + "norm_label": "test_ensure_reuses_existing_label()" + }, + { + "label": "test_ensure_inserts_new_with_value_equals_label()", + "file_type": "code", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L52", + "_origin": "ast", + "id": "tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", + "community": 24, + "norm_label": "test_ensure_inserts_new_with_value_equals_label()" + }, + { + "label": "test_ensure_reuses_existing_by_preferred_value()", + "file_type": "code", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L75", + "_origin": "ast", + "id": "tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", + "community": 24, + "norm_label": "test_ensure_reuses_existing_by_preferred_value()" + }, + { + "label": "test_ensure_honors_explicit_preferred_value_on_insert()", + "file_type": "code", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L91", + "_origin": "ast", + "id": "tests_test_dict_ensure_test_ensure_honors_explicit_preferred_value_on_insert", + "community": 24, + "norm_label": "test_ensure_honors_explicit_preferred_value_on_insert()" + }, + { + "label": "test_ensure_remove_soft_deletes_own_row()", + "file_type": "code", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L110", + "_origin": "ast", + "id": "tests_test_dict_ensure_test_ensure_remove_soft_deletes_own_row", + "community": 24, + "norm_label": "test_ensure_remove_soft_deletes_own_row()" + }, + { + "label": "test_ensure_remove_rejects_other_users_row()", + "file_type": "code", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L136", + "_origin": "ast", + "id": "tests_test_dict_ensure_test_ensure_remove_rejects_other_users_row", + "community": 24, + "norm_label": "test_ensure_remove_rejects_other_users_row()" + }, + { + "label": "test_ensure_remove_rejects_unknown_type()", + "file_type": "code", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L153", + "_origin": "ast", + "id": "tests_test_dict_ensure_test_ensure_remove_rejects_unknown_type", + "community": 24, + "norm_label": "test_ensure_remove_rejects_unknown_type()" + }, + { + "label": "label miss, but preferred value already exists \u2192 reuse, no insert", + "file_type": "rationale", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L76", + "_origin": "ast", + "id": "tests_test_dict_ensure_rationale_76", + "community": 24, + "norm_label": "label miss, but preferred value already exists \u2192 reuse, no insert" + }, { "label": "test_duty_schedule.py", "file_type": "code", @@ -44192,7 +44502,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_duty_schedule", - "community": 26, + "community": 17, "norm_label": "test_duty_schedule.py" }, { @@ -44202,7 +44512,7 @@ "source_location": "L38", "_origin": "ast", "id": "tests_test_duty_schedule_test_parse_hhmm", - "community": 26, + "community": 114, "norm_label": "test_parse_hhmm()" }, { @@ -44212,7 +44522,7 @@ "source_location": "L45", "_origin": "ast", "id": "tests_test_duty_schedule_test_parse_hhmm_invalid_raises", - "community": 26, + "community": 114, "norm_label": "test_parse_hhmm_invalid_raises()" }, { @@ -44222,7 +44532,7 @@ "source_location": "L50", "_origin": "ast", "id": "tests_test_duty_schedule_test_parse_time_range_input_day", - "community": 26, + "community": 17, "norm_label": "test_parse_time_range_input_day()" }, { @@ -44232,7 +44542,7 @@ "source_location": "L61", "_origin": "ast", "id": "tests_test_duty_schedule_test_parse_time_range_input_cross_day", - "community": 26, + "community": 17, "norm_label": "test_parse_time_range_input_cross_day()" }, { @@ -44242,7 +44552,7 @@ "source_location": "L72", "_origin": "ast", "id": "tests_test_duty_schedule_test_format_time_label_same_day", - "community": 26, + "community": 114, "norm_label": "test_format_time_label_same_day()" }, { @@ -44252,7 +44562,7 @@ "source_location": "L76", "_origin": "ast", "id": "tests_test_duty_schedule_test_format_time_label_cross_day", - "community": 26, + "community": 114, "norm_label": "test_format_time_label_cross_day()" }, { @@ -44262,7 +44572,7 @@ "source_location": "L80", "_origin": "ast", "id": "tests_test_duty_schedule_test_format_time_label_empty", - "community": 26, + "community": 114, "norm_label": "test_format_time_label_empty()" }, { @@ -44272,7 +44582,7 @@ "source_location": "L84", "_origin": "ast", "id": "tests_test_duty_schedule_test_work_plans_join_split", - "community": 26, + "community": 17, "norm_label": "test_work_plans_join_split()" }, { @@ -44282,7 +44592,7 @@ "source_location": "L90", "_origin": "ast", "id": "tests_test_duty_schedule_test_build_dict_value_from_label", - "community": 26, + "community": 17, "norm_label": "test_build_dict_value_from_label()" }, { @@ -44292,7 +44602,7 @@ "source_location": "L96", "_origin": "ast", "id": "tests_test_duty_schedule_test_ensure_dict_data_reuses_existing_label", - "community": 26, + "community": 17, "norm_label": "test_ensure_dict_data_reuses_existing_label()" }, { @@ -44302,7 +44612,7 @@ "source_location": "L110", "_origin": "ast", "id": "tests_test_duty_schedule_test_ensure_dict_data_inserts_new_without_commit", - "community": 26, + "community": 17, "norm_label": "test_ensure_dict_data_inserts_new_without_commit()" }, { @@ -44312,7 +44622,7 @@ "source_location": "L130", "_origin": "ast", "id": "tests_test_duty_schedule_test_normalize_person_name_ok", - "community": 26, + "community": 17, "norm_label": "test_normalize_person_name_ok()" }, { @@ -44322,7 +44632,7 @@ "source_location": "L134", "_origin": "ast", "id": "tests_test_duty_schedule_test_normalize_person_name_empty", - "community": 26, + "community": 17, "norm_label": "test_normalize_person_name_empty()" }, { @@ -44332,7 +44642,7 @@ "source_location": "L139", "_origin": "ast", "id": "tests_test_duty_schedule_test_normalize_person_name_too_long", - "community": 26, + "community": 17, "norm_label": "test_normalize_person_name_too_long()" }, { @@ -44342,7 +44652,7 @@ "source_location": "L144", "_origin": "ast", "id": "tests_test_duty_schedule_test_shift_labels", - "community": 26, + "community": 17, "norm_label": "test_shift_labels()" }, { @@ -44352,7 +44662,7 @@ "source_location": "L148", "_origin": "ast", "id": "tests_test_duty_schedule_test_grab_rejects_when_full", - "community": 26, + "community": 17, "norm_label": "test_grab_rejects_when_full()" }, { @@ -44362,7 +44672,7 @@ "source_location": "L210", "_origin": "ast", "id": "tests_test_duty_schedule_test_grab_allows_custom_shift_type_when_slot_exists", - "community": 26, + "community": 17, "norm_label": "test_grab_allows_custom_shift_type_when_slot_exists()" }, { @@ -44372,7 +44682,7 @@ "source_location": "L278", "_origin": "ast", "id": "tests_test_duty_schedule_test_grab_rejects_when_closed", - "community": 26, + "community": 17, "norm_label": "test_grab_rejects_when_closed()" }, { @@ -44382,7 +44692,7 @@ "source_location": "L296", "_origin": "ast", "id": "tests_test_duty_schedule_test_grab_rejects_invalid_user", - "community": 26, + "community": 17, "norm_label": "test_grab_rejects_invalid_user()" }, { @@ -44392,7 +44702,7 @@ "source_location": "L325", "_origin": "ast", "id": "tests_test_duty_schedule_test_grab_rejects_duplicate_same_shift", - "community": 26, + "community": 17, "norm_label": "test_grab_rejects_duplicate_same_shift()" }, { @@ -44402,7 +44712,7 @@ "source_location": "L391", "_origin": "ast", "id": "tests_test_duty_schedule_test_save_day_rejects_shrink_below_grab_count", - "community": 26, + "community": 121, "norm_label": "test_save_day_rejects_shrink_below_grab_count()" }, { @@ -44412,7 +44722,7 @@ "source_location": "L465", "_origin": "ast", "id": "tests_test_duty_schedule_test_resolve_duty_staff_role_id_by_fixed_id", - "community": 26, + "community": 17, "norm_label": "test_resolve_duty_staff_role_id_by_fixed_id()" }, { @@ -44422,7 +44732,7 @@ "source_location": "L474", "_origin": "ast", "id": "tests_test_duty_schedule_test_list_duty_staff_users_empty_when_no_role", - "community": 26, + "community": 17, "norm_label": "test_list_duty_staff_users_empty_when_no_role()" }, { @@ -44432,7 +44742,7 @@ "source_location": "L482", "_origin": "ast", "id": "tests_test_duty_schedule_test_assert_user_is_duty_staff_rejects_without_role", - "community": 26, + "community": 17, "norm_label": "test_assert_user_is_duty_staff_rejects_without_role()" }, { @@ -44442,7 +44752,7 @@ "source_location": "L503", "_origin": "ast", "id": "tests_test_duty_schedule_test_grab_rejects_non_duty_staff", - "community": 26, + "community": 17, "norm_label": "test_grab_rejects_non_duty_staff()" }, { @@ -44452,7 +44762,7 @@ "source_location": "L548", "_origin": "ast", "id": "tests_test_duty_schedule_test_save_day_grandfathers_existing_assign_without_role", - "community": 26, + "community": 121, "norm_label": "test_save_day_grandfathers_existing_assign_without_role()" }, { @@ -44462,7 +44772,7 @@ "source_location": "L636", "_origin": "ast", "id": "tests_test_duty_schedule_test_save_day_rejects_new_assign_without_role", - "community": 26, + "community": 121, "norm_label": "test_save_day_rejects_new_assign_without_role()" }, { @@ -44472,7 +44782,7 @@ "source_location": "L211", "_origin": "ast", "id": "tests_test_duty_schedule_rationale_211", - "community": 26, + "community": 17, "norm_label": "\u81ea\u5b9a\u4e49 shift_type \u53ea\u8981\u5f53\u65e5\u5b58\u5728 slot \u5373\u53ef,\u4e0d\u5fc5\u5728 shift_labels\u3002" }, { @@ -44482,7 +44792,7 @@ "source_location": "L392", "_origin": "ast", "id": "tests_test_duty_schedule_rationale_392", - "community": 26, + "community": 121, "norm_label": "\u7f29\u5bb9:\u5df2\u6709 1 \u4eba\u62a2\u73ed\u65f6 capacity=1 \u4e14\u518d\u6307\u5b9a 1 \u4eba\u5e94\u5931\u8d25\u3002" }, { @@ -44492,7 +44802,7 @@ "source_location": "L549", "_origin": "ast", "id": "tests_test_duty_schedule_rationale_549", - "community": 26, + "community": 121, "norm_label": "\u5386\u53f2\u6307\u5b9a\u7528\u6237\u65e0\u503c\u73ed\u4eba\u5458\u89d2\u8272\u65f6,\u539f\u6837\u518d\u4fdd\u5b58\u4e0d\u5f97\u56e0\u89d2\u8272\u6821\u9a8c\u5931\u8d25\u3002" }, { @@ -44502,7 +44812,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_id_card_age", - "community": 82, + "community": 86, "norm_label": "test_id_card_age.py" }, { @@ -44512,7 +44822,7 @@ "source_location": "L6", "_origin": "ast", "id": "tests_test_id_card_age_test_calc_age_from_18_digit_id", - "community": 82, + "community": 86, "norm_label": "test_calc_age_from_18_digit_id()" }, { @@ -44522,7 +44832,7 @@ "source_location": "L14", "_origin": "ast", "id": "tests_test_id_card_age_test_calc_age_rejects_invalid", - "community": 82, + "community": 86, "norm_label": "test_calc_age_rejects_invalid()" }, { @@ -44562,7 +44872,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_pinyin_abbr", - "community": 56, + "community": 105, "norm_label": "test_pinyin_abbr.py" }, { @@ -44572,7 +44882,7 @@ "source_location": "L8", "_origin": "ast", "id": "tests_test_pinyin_abbr_test_empty_and_whitespace", - "community": 56, + "community": 105, "norm_label": "test_empty_and_whitespace()" }, { @@ -44582,7 +44892,7 @@ "source_location": "L15", "_origin": "ast", "id": "tests_test_pinyin_abbr_test_chinese_and_alnum", - "community": 56, + "community": 105, "norm_label": "test_chinese_and_alnum()" }, { @@ -44592,7 +44902,7 @@ "source_location": "L23", "_origin": "ast", "id": "tests_test_pinyin_abbr_test_truncate_to_100", - "community": 56, + "community": 105, "norm_label": "test_truncate_to_100()" }, { @@ -44602,7 +44912,7 @@ "source_location": "L29", "_origin": "ast", "id": "tests_test_pinyin_abbr_test_resolve_submitted_provided_nonempty", - "community": 56, + "community": 105, "norm_label": "test_resolve_submitted_provided_nonempty()" }, { @@ -44612,7 +44922,7 @@ "source_location": "L41", "_origin": "ast", "id": "tests_test_pinyin_abbr_test_resolve_submitted_provided_empty_generates", - "community": 56, + "community": 105, "norm_label": "test_resolve_submitted_provided_empty_generates()" }, { @@ -44622,7 +44932,7 @@ "source_location": "L53", "_origin": "ast", "id": "tests_test_pinyin_abbr_test_resolve_not_submitted_keeps_existing", - "community": 56, + "community": 105, "norm_label": "test_resolve_not_submitted_keeps_existing()" }, { @@ -44632,7 +44942,7 @@ "source_location": "L65", "_origin": "ast", "id": "tests_test_pinyin_abbr_test_resolve_not_submitted_empty_existing_generates", - "community": 56, + "community": 105, "norm_label": "test_resolve_not_submitted_empty_existing_generates()" }, { @@ -44642,7 +44952,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_pl_brand_archive", - "community": 80, + "community": 145, "norm_label": "test_pl_brand_archive.py" }, { @@ -44652,7 +44962,7 @@ "source_location": "L8", "_origin": "ast", "id": "tests_test_pl_brand_archive_test_required_allows_other_brand_when_sum_matches", - "community": 80, + "community": 145, "norm_label": "test_required_allows_other_brand_when_sum_matches()" }, { @@ -44662,7 +44972,7 @@ "source_location": "L17", "_origin": "ast", "id": "tests_test_pl_brand_archive_test_required_allows_multi_brand_when_sum_matches", - "community": 80, + "community": 145, "norm_label": "test_required_allows_multi_brand_when_sum_matches()" }, { @@ -44672,7 +44982,7 @@ "source_location": "L29", "_origin": "ast", "id": "tests_test_pl_brand_archive_test_required_sum_must_match", - "community": 80, + "community": 145, "norm_label": "test_required_sum_must_match()" }, { @@ -44682,7 +44992,7 @@ "source_location": "L42", "_origin": "ast", "id": "tests_test_pl_brand_archive_test_any_sum_must_match", - "community": 80, + "community": 145, "norm_label": "test_any_sum_must_match()" }, { @@ -44692,7 +45002,7 @@ "source_location": "L55", "_origin": "ast", "id": "tests_test_pl_brand_archive_test_any_ok", - "community": 80, + "community": 145, "norm_label": "test_any_ok()" }, { @@ -44702,7 +45012,7 @@ "source_location": "L67", "_origin": "ast", "id": "tests_test_pl_brand_archive_test_no_brand_ignores_rows", - "community": 80, + "community": 145, "norm_label": "test_no_brand_ignores_rows()" }, { @@ -44712,7 +45022,7 @@ "source_location": "L76", "_origin": "ast", "id": "tests_test_pl_brand_archive_test_delta_for_plan_type", - "community": 80, + "community": 145, "norm_label": "test_delta_for_plan_type()" }, { @@ -44722,7 +45032,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_pl_carrier_eligible", - "community": 62, + "community": 80, "norm_label": "test_pl_carrier_eligible.py" }, { @@ -44732,7 +45042,7 @@ "source_location": "L9", "_origin": "ast", "id": "tests_test_pl_carrier_eligible_carrier", - "community": 62, + "community": 80, "norm_label": "_carrier()" }, { @@ -44742,7 +45052,7 @@ "source_location": "L22", "_origin": "ast", "id": "tests_test_pl_carrier_eligible_test_eligible_ignores_audit_qualification_agreement", - "community": 62, + "community": 80, "norm_label": "test_eligible_ignores_audit_qualification_agreement()" }, { @@ -44832,7 +45142,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_pl_feedback_brand_qty", - "community": 41, + "community": 145, "norm_label": "test_pl_feedback_brand_qty.py" }, { @@ -44842,7 +45152,7 @@ "source_location": "L8", "_origin": "ast", "id": "tests_test_pl_feedback_brand_qty_test_format_brand_qty_summary", - "community": 41, + "community": 145, "norm_label": "test_format_brand_qty_summary()" }, { @@ -44852,7 +45162,7 @@ "source_location": "L16", "_origin": "ast", "id": "tests_test_pl_feedback_brand_qty_test_format_brand_qty_summary_empty", - "community": 41, + "community": 145, "norm_label": "test_format_brand_qty_summary_empty()" }, { @@ -44862,7 +45172,7 @@ "source_location": "L20", "_origin": "ast", "id": "tests_test_pl_feedback_brand_qty_test_format_brand_qty_summary_zero_only", - "community": 41, + "community": 145, "norm_label": "test_format_brand_qty_summary_zero_only()" }, { @@ -44872,7 +45182,7 @@ "source_location": "L24", "_origin": "ast", "id": "tests_test_pl_feedback_brand_qty_test_require_skips_when_no_brand_mode", - "community": 41, + "community": 145, "norm_label": "test_require_skips_when_no_brand_mode()" }, { @@ -44882,7 +45192,7 @@ "source_location": "L34", "_origin": "ast", "id": "tests_test_pl_feedback_brand_qty_test_require_skips_when_not_enforced", - "community": 41, + "community": 145, "norm_label": "test_require_skips_when_not_enforced()" }, { @@ -44892,7 +45202,7 @@ "source_location": "L44", "_origin": "ast", "id": "tests_test_pl_feedback_brand_qty_test_require_enforces_when_completed", - "community": 41, + "community": 145, "norm_label": "test_require_enforces_when_completed()" }, { @@ -44902,7 +45212,7 @@ "source_location": "L55", "_origin": "ast", "id": "tests_test_pl_feedback_brand_qty_test_require_calls_validate_when_positive_rows", - "community": 41, + "community": 145, "norm_label": "test_require_calls_validate_when_positive_rows()" }, { @@ -44912,7 +45222,7 @@ "source_location": "L78", "_origin": "ast", "id": "tests_test_pl_feedback_brand_qty_test_persist_io_item_brand_qtys_writes_when_brand_mode_missing", - "community": 41, + "community": 145, "norm_label": "test_persist_io_item_brand_qtys_writes_when_brand_mode_missing()" }, { @@ -44922,7 +45232,7 @@ "source_location": "L79", "_origin": "ast", "id": "tests_test_pl_feedback_brand_qty_rationale_79", - "community": 41, + "community": 145, "norm_label": "\u8ba1\u5212\u884c brand_mode \u4e22\u5931\u65f6,\u5ba2\u6237\u7aef\u63d0\u4ea4\u7684\u591a\u54c1\u724c\u660e\u7ec6\u4ecd\u5e94\u843d\u5e93(\u4e0d\u80fd\u53ea\u8f6f\u5220\u4e0d\u5199)\u3002" }, { @@ -44962,7 +45272,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_pl_io_order_enrichment", - "community": 145, + "community": 54, "norm_label": "test_pl_io_order_enrichment.py" }, { @@ -44972,7 +45282,7 @@ "source_location": "L9", "_origin": "ast", "id": "tests_test_pl_io_order_enrichment_test_resolve_unit_label_maps_dun", - "community": 145, + "community": 54, "norm_label": "test_resolve_unit_label_maps_dun()" }, { @@ -44982,7 +45292,7 @@ "source_location": "L16", "_origin": "ast", "id": "tests_test_pl_io_order_enrichment_test_merge_plan_logistics_into_order", - "community": 145, + "community": 54, "norm_label": "test_merge_plan_logistics_into_order()" }, { @@ -44992,7 +45302,7 @@ "source_location": "L50", "_origin": "ast", "id": "tests_test_pl_io_order_enrichment_test_merge_plan_product_into_item", - "community": 145, + "community": 54, "norm_label": "test_merge_plan_product_into_item()" }, { @@ -45002,7 +45312,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_pl_io_order_site_feedback_status", - "community": 145, + "community": 54, "norm_label": "test_pl_io_order_site_feedback_status.py" }, { @@ -45012,7 +45322,7 @@ "source_location": "L11", "_origin": "ast", "id": "tests_test_pl_io_order_site_feedback_status_header", - "community": 145, + "community": 54, "norm_label": "_header()" }, { @@ -45022,7 +45332,7 @@ "source_location": "L26", "_origin": "ast", "id": "tests_test_pl_io_order_site_feedback_status_item", - "community": 145, + "community": 54, "norm_label": "_item()" }, { @@ -45032,7 +45342,7 @@ "source_location": "L36", "_origin": "ast", "id": "tests_test_pl_io_order_site_feedback_status_test_apply_site_feedback_sets_status_completed", - "community": 145, + "community": 54, "norm_label": "test_apply_site_feedback_sets_status_completed()" }, { @@ -45042,7 +45352,7 @@ "source_location": "L57", "_origin": "ast", "id": "tests_test_pl_io_order_site_feedback_status_test_apply_site_feedback_sets_status_voided", - "community": 145, + "community": 54, "norm_label": "test_apply_site_feedback_sets_status_voided()" }, { @@ -45052,7 +45362,7 @@ "source_location": "L72", "_origin": "ast", "id": "tests_test_pl_io_order_site_feedback_status_test_apply_site_feedback_keeps_in_progress_when_requested", - "community": 145, + "community": 54, "norm_label": "test_apply_site_feedback_keeps_in_progress_when_requested()" }, { @@ -45062,7 +45372,7 @@ "source_location": "L89", "_origin": "ast", "id": "tests_test_pl_io_order_site_feedback_status_test_apply_site_feedback_rejects_invalid_status", - "community": 145, + "community": 54, "norm_label": "test_apply_site_feedback_rejects_invalid_status()" }, { @@ -45072,7 +45382,7 @@ "source_location": "L104", "_origin": "ast", "id": "tests_test_pl_io_order_site_feedback_status_test_apply_site_feedback_rejects_already_voided", - "community": 145, + "community": 54, "norm_label": "test_apply_site_feedback_rejects_already_voided()" }, { @@ -45082,7 +45392,7 @@ "source_location": "L119", "_origin": "ast", "id": "tests_test_pl_io_order_site_feedback_status_test_apply_site_feedback_does_not_reset_first_submitted_at", - "community": 145, + "community": 54, "norm_label": "test_apply_site_feedback_does_not_reset_first_submitted_at()" }, { @@ -45192,7 +45502,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_pl_plan_cert_list_filters", - "community": 117, + "community": 123, "norm_label": "test_pl_plan_cert_list_filters.py" }, { @@ -45202,7 +45512,7 @@ "source_location": "L12", "_origin": "ast", "id": "tests_test_pl_plan_cert_list_filters_compile", - "community": 117, + "community": 123, "norm_label": "_compile()" }, { @@ -45212,7 +45522,7 @@ "source_location": "L18", "_origin": "ast", "id": "tests_test_pl_plan_cert_list_filters_test_plan_has_hazard_product_exists_joins_crm_flags", - "community": 117, + "community": 123, "norm_label": "test_plan_has_hazard_product_exists_joins_crm_flags()" }, { @@ -45222,7 +45532,7 @@ "source_location": "L29", "_origin": "ast", "id": "tests_test_pl_plan_cert_list_filters_test_plan_has_incomplete_hazard_cert_exists_checks_required_urls", - "community": 117, + "community": 123, "norm_label": "test_plan_has_incomplete_hazard_cert_exists_checks_required_urls()" }, { @@ -45232,7 +45542,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_pl_plan_cert_list_filters_rationale_1", - "community": 117, + "community": 123, "norm_label": "\u5371\u5316\u54c1\u8bc1\u4e0a\u4f20\u5217\u8868\u7b5b\u9009:exists \u5b50\u67e5\u8be2\u5e94\u8986\u76d6 crm \u5371\u5316\u6807\u8bc6\u4e0e\u8bc1\u4e66\u7f3a\u53e3\u3002" }, { @@ -45402,7 +45712,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_pl_public_link_archived", - "community": 79, + "community": 31, "norm_label": "test_pl_public_link_archived.py" }, { @@ -45412,7 +45722,7 @@ "source_location": "L10", "_origin": "ast", "id": "tests_test_pl_public_link_archived_test_driver_link_flags_archived_when_plan_archived", - "community": 79, + "community": 31, "norm_label": "test_driver_link_flags_archived_when_plan_archived()" }, { @@ -45422,7 +45732,7 @@ "source_location": "L18", "_origin": "ast", "id": "tests_test_pl_public_link_archived_test_driver_link_flags_voided_takes_precedence_shape", - "community": 79, + "community": 31, "norm_label": "test_driver_link_flags_voided_takes_precedence_shape()" }, { @@ -45432,7 +45742,7 @@ "source_location": "L26", "_origin": "ast", "id": "tests_test_pl_public_link_archived_test_driver_link_flags_voided_by_transport_cancelled", - "community": 79, + "community": 31, "norm_label": "test_driver_link_flags_voided_by_transport_cancelled()" }, { @@ -45442,7 +45752,7 @@ "source_location": "L34", "_origin": "ast", "id": "tests_test_pl_public_link_archived_test_site_link_flags_archived_when_plan_archived", - "community": 79, + "community": 31, "norm_label": "test_site_link_flags_archived_when_plan_archived()" }, { @@ -45452,7 +45762,7 @@ "source_location": "L41", "_origin": "ast", "id": "tests_test_pl_public_link_archived_test_site_link_flags_voided_when_cancelled", - "community": 79, + "community": 31, "norm_label": "test_site_link_flags_voided_when_cancelled()" }, { @@ -45462,7 +45772,7 @@ "source_location": "L48", "_origin": "ast", "id": "tests_test_pl_public_link_archived_test_site_link_flags_false_when_no_plan", - "community": 79, + "community": 31, "norm_label": "test_site_link_flags_false_when_no_plan()" }, { @@ -45472,7 +45782,7 @@ "source_location": "L54", "_origin": "ast", "id": "tests_test_pl_public_link_archived_test_public_transport_page_schema_exposes_plan_archived", - "community": 79, + "community": 31, "norm_label": "test_public_transport_page_schema_exposes_plan_archived()" }, { @@ -45482,7 +45792,7 @@ "source_location": "L64", "_origin": "ast", "id": "tests_test_pl_public_link_archived_test_public_site_page_schema_exposes_archived", - "community": 79, + "community": 31, "norm_label": "test_public_site_page_schema_exposes_archived()" }, { @@ -45492,7 +45802,7 @@ "source_location": "L75", "_origin": "ast", "id": "tests_test_pl_public_link_archived_test_io_order_link_flags_archived_when_plan_archived", - "community": 79, + "community": 31, "norm_label": "test_io_order_link_flags_archived_when_plan_archived()" }, { @@ -45502,7 +45812,7 @@ "source_location": "L83", "_origin": "ast", "id": "tests_test_pl_public_link_archived_test_io_order_link_flags_voided_by_header_or_plan", - "community": 79, + "community": 31, "norm_label": "test_io_order_link_flags_voided_by_header_or_plan()" }, { @@ -45512,7 +45822,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_pl_public_link_archived_rationale_1", - "community": 79, + "community": 31, "norm_label": "\u8fd0\u8f93\u8ba1\u5212\u53f8\u673a/\u73b0\u573a\u516c\u5171\u94fe\u63a5:\u5f52\u6863\u540e\u5e94\u6807\u8bb0\u5e76\u62e6\u622a\u5199\u64cd\u4f5c\u3002" }, { @@ -45522,7 +45832,7 @@ "source_location": "L1", "_origin": "ast", "id": "tests_test_pl_public_transport_history", - "community": 79, + "community": 31, "norm_label": "test_pl_public_transport_history.py" }, { @@ -45532,7 +45842,7 @@ "source_location": "L11", "_origin": "ast", "id": "tests_test_pl_public_transport_history_test_normalize_main_plate_trims", - "community": 79, + "community": 31, "norm_label": "test_normalize_main_plate_trims()" }, { @@ -45542,7 +45852,7 @@ "source_location": "L17", "_origin": "ast", "id": "tests_test_pl_public_transport_history_test_parse_history_date_ok_and_bad", - "community": 79, + "community": 31, "norm_label": "test_parse_history_date_ok_and_bad()" }, { @@ -45552,7 +45862,7 @@ "source_location": "L23", "_origin": "ast", "id": "tests_test_pl_public_transport_history_test_history_matches_date_or_logic", - "community": 79, + "community": 31, "norm_label": "test_history_matches_date_or_logic()" }, { @@ -45562,7 +45872,7 @@ "source_location": "L33", "_origin": "ast", "id": "tests_test_pl_public_transport_history_test_history_status_label", - "community": 79, + "community": 31, "norm_label": "test_history_status_label()" }, { @@ -57735,6 +58045,17 @@ "target": "fastapi", "confidence_score": 1.0 }, + { + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "tests/test_bx_reimburse_my_page_size.py", + "source_location": "L5", + "weight": 1.0, + "source": "tests_test_bx_reimburse_my_page_size", + "target": "app_api_bx_reimburse", + "confidence_score": 1.0 + }, { "relation": "calls", "context": "call", @@ -58571,6 +58892,17 @@ "source": "app_api_bx_reimburse_my_reimburses", "target": "app_utils_bx_date_range_append_create_time_filters" }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "tests/test_bx_reimburse_my_page_size.py", + "source_location": "L5", + "weight": 1.0, + "source": "tests_test_bx_reimburse_my_page_size", + "target": "app_api_bx_reimburse_my_reimburses", + "confidence_score": 1.0 + }, { "relation": "references", "context": "parameter_type", @@ -60093,7 +60425,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3608", + "source_location": "L3612", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_assign", @@ -60103,7 +60435,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3664", + "source_location": "L3668", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_check_convert", @@ -60113,7 +60445,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4218", + "source_location": "L4222", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_check_duplicate", @@ -60123,7 +60455,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3636", + "source_location": "L3640", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_convert", @@ -60133,7 +60465,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3532", + "source_location": "L3536", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_create", @@ -60143,7 +60475,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3577", + "source_location": "L3581", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_delete", @@ -60153,7 +60485,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3505", + "source_location": "L3509", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_detail", @@ -60163,7 +60495,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4074", + "source_location": "L4078", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_export", @@ -60173,7 +60505,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3942", + "source_location": "L3946", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_follow_create", @@ -60183,7 +60515,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3974", + "source_location": "L3978", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_follow_delete", @@ -60193,7 +60525,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4242", + "source_location": "L4246", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_follow_detail", @@ -60203,7 +60535,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3910", + "source_location": "L3914", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_follow_list", @@ -60213,7 +60545,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4005", + "source_location": "L4009", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_follow_statistics", @@ -60223,7 +60555,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4266", + "source_location": "L4270", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_follow_update", @@ -60233,7 +60565,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4166", + "source_location": "L4170", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_import", @@ -60243,7 +60575,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4131", + "source_location": "L4135", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_import_template", @@ -60253,7 +60585,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3705", + "source_location": "L3709", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_invalid", @@ -60263,7 +60595,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3458", + "source_location": "L3462", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_list", @@ -60273,7 +60605,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3757", + "source_location": "L3761", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_mine", @@ -60283,7 +60615,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3895", + "source_location": "L3899", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_park_area_list", @@ -60293,7 +60625,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4340", + "source_location": "L4344", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_statistics_level", @@ -60303,7 +60635,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4287", + "source_location": "L4291", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_statistics_overview", @@ -60313,7 +60645,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4384", + "source_location": "L4388", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_statistics_owner", @@ -60323,7 +60655,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4315", + "source_location": "L4319", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_statistics_source", @@ -60333,7 +60665,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4357", + "source_location": "L4361", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_statistics_trend", @@ -60343,7 +60675,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3803", + "source_location": "L3807", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_to_follow", @@ -60353,7 +60685,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3849", + "source_location": "L3853", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_today_new", @@ -60363,7 +60695,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3555", + "source_location": "L3559", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_update", @@ -60373,7 +60705,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3736", + "source_location": "L3740", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_update_level", @@ -60383,7 +60715,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3684", + "source_location": "L3688", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_clue_update_status", @@ -60393,7 +60725,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1550", + "source_location": "L1554", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contact_add", @@ -60403,7 +60735,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1728", + "source_location": "L1732", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contact_birthday", @@ -60413,7 +60745,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1529", + "source_location": "L1533", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contact_by_customer", @@ -60423,7 +60755,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1666", + "source_location": "L1670", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contact_decision", @@ -60433,7 +60765,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1594", + "source_location": "L1598", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contact_delete", @@ -60443,7 +60775,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1505", + "source_location": "L1509", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contact_detail", @@ -60453,7 +60785,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1636", + "source_location": "L1640", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contact_export", @@ -60463,7 +60795,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1469", + "source_location": "L1473", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contact_list", @@ -60473,7 +60805,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1697", + "source_location": "L1701", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contact_primary", @@ -60483,7 +60815,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1614", + "source_location": "L1618", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contact_set_primary", @@ -60493,7 +60825,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1573", + "source_location": "L1577", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contact_update", @@ -60504,7 +60836,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4577", + "source_location": "L4581", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contract_routes", @@ -60515,7 +60847,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4577", + "source_location": "L4581", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contract_routes_register_contract_routes", @@ -60526,7 +60858,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4578", + "source_location": "L4582", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contract_sub_routes", @@ -60537,7 +60869,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4578", + "source_location": "L4582", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_contract_sub_routes_register_contract_sub_routes", @@ -60547,7 +60879,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1032", + "source_location": "L1036", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_check_duplicate", @@ -60567,7 +60899,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1003", + "source_location": "L1007", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_deal", @@ -60577,7 +60909,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1232", + "source_location": "L1236", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_dealed", @@ -60607,7 +60939,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1055", + "source_location": "L1059", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_export", @@ -60627,7 +60959,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1091", + "source_location": "L1095", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_import_template", @@ -60637,7 +60969,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L978", + "source_location": "L982", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_into_pool", @@ -60647,7 +60979,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1198", + "source_location": "L1202", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_key", @@ -60667,7 +60999,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1296", + "source_location": "L1300", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_long_time_no_follow", @@ -60677,7 +61009,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1130", + "source_location": "L1134", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_mine", @@ -60697,7 +61029,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1328", + "source_location": "L1332", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_park_area_list", @@ -60707,7 +61039,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1164", + "source_location": "L1168", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_to_follow", @@ -60717,7 +61049,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L952", + "source_location": "L956", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_transfer", @@ -60737,7 +61069,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1264", + "source_location": "L1268", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_customer_week_new", @@ -60747,7 +61079,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1841", + "source_location": "L1845", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_follow_add", @@ -60757,7 +61089,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1820", + "source_location": "L1824", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_follow_by_customer", @@ -60767,7 +61099,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1884", + "source_location": "L1888", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_follow_delete", @@ -60777,7 +61109,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1794", + "source_location": "L1798", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_follow_detail", @@ -60787,7 +61119,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1901", + "source_location": "L1905", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_follow_export", @@ -60797,7 +61129,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1762", + "source_location": "L1766", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_follow_list", @@ -60807,7 +61139,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1865", + "source_location": "L1869", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_follow_update", @@ -60817,7 +61149,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3354", + "source_location": "L3358", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_invoice_info_add", @@ -60827,7 +61159,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3339", + "source_location": "L3343", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_invoice_info_by_customer", @@ -60837,7 +61169,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3310", + "source_location": "L3314", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_invoice_info_by_customer_impl", @@ -60847,7 +61179,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3407", + "source_location": "L3411", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_invoice_info_delete", @@ -60857,7 +61189,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3324", + "source_location": "L3328", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_invoice_info_list", @@ -60867,7 +61199,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3430", + "source_location": "L3434", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_invoice_info_set_default", @@ -60877,7 +61209,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3379", + "source_location": "L3383", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_invoice_info_update", @@ -60887,7 +61219,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2238", + "source_location": "L2242", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opp_list_kwargs", @@ -60897,7 +61229,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2363", + "source_location": "L2367", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_add", @@ -60907,7 +61239,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2429", + "source_location": "L2433", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_assign", @@ -60917,7 +61249,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2572", + "source_location": "L2576", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_batch_update_expect_date", @@ -60927,7 +61259,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2543", + "source_location": "L2547", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_batch_update_stage", @@ -60937,7 +61269,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2456", + "source_location": "L2460", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_change_stage", @@ -60947,7 +61279,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2408", + "source_location": "L2412", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_delete", @@ -60957,7 +61289,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2333", + "source_location": "L2337", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_detail", @@ -60967,7 +61299,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3065", + "source_location": "L3069", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_export", @@ -60977,7 +61309,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2800", + "source_location": "L2804", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_follow_add", @@ -60987,7 +61319,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2848", + "source_location": "L2852", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_follow_delete", @@ -60997,7 +61329,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2872", + "source_location": "L2876", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_follow_detail", @@ -61007,7 +61339,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2768", + "source_location": "L2772", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_follow_list", @@ -61017,7 +61349,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2825", + "source_location": "L2829", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_follow_update", @@ -61027,7 +61359,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2618", + "source_location": "L2622", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_kanban", @@ -61037,7 +61369,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2267", + "source_location": "L2271", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_list", @@ -61047,7 +61379,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2514", + "source_location": "L2518", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_mark_lost", @@ -61057,7 +61389,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2486", + "source_location": "L2490", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_mark_won", @@ -61067,7 +61399,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2300", + "source_location": "L2304", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_mine_list", @@ -61077,7 +61409,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2946", + "source_location": "L2950", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_product_add", @@ -61087,7 +61419,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2971", + "source_location": "L2975", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_product_batch_add", @@ -61097,7 +61429,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3024", + "source_location": "L3028", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_product_delete", @@ -61107,7 +61439,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3045", + "source_location": "L3049", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_product_detail", @@ -61117,7 +61449,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2892", + "source_location": "L2896", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_product_list", @@ -61127,7 +61459,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2925", + "source_location": "L2929", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_product_list_by_opportunity", @@ -61137,7 +61469,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3001", + "source_location": "L3005", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_product_update", @@ -61147,7 +61479,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2600", + "source_location": "L2604", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_stage_log_list", @@ -61157,7 +61489,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2742", + "source_location": "L2746", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_statistics_funnel", @@ -61167,7 +61499,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2649", + "source_location": "L2653", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_statistics_overview", @@ -61177,7 +61509,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2717", + "source_location": "L2721", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_statistics_owner", @@ -61187,7 +61519,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2675", + "source_location": "L2679", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_statistics_stage", @@ -61197,7 +61529,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2691", + "source_location": "L2695", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_statistics_win_rate", @@ -61207,7 +61539,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2387", + "source_location": "L2391", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_opportunity_update", @@ -61217,7 +61549,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1380", + "source_location": "L1384", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_pool_customer_assign", @@ -61227,7 +61559,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1399", + "source_location": "L1403", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_pool_customer_claim", @@ -61237,7 +61569,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1348", + "source_location": "L1352", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_pool_customer_list", @@ -61247,7 +61579,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1447", + "source_location": "L1451", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_pool_record_detail", @@ -61257,7 +61589,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1417", + "source_location": "L1421", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_pool_record_list", @@ -61267,7 +61599,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1986", + "source_location": "L1990", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_pool_rule_add", @@ -61277,7 +61609,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2042", + "source_location": "L2046", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_pool_rule_delete", @@ -61287,7 +61619,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1965", + "source_location": "L1969", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_pool_rule_detail", @@ -61297,7 +61629,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2079", + "source_location": "L2083", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_pool_rule_execute", @@ -61307,7 +61639,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1934", + "source_location": "L1938", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_pool_rule_list", @@ -61317,7 +61649,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2013", + "source_location": "L2017", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_pool_rule_update", @@ -61327,7 +61659,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2059", + "source_location": "L2063", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_pool_rule_update_status", @@ -61337,7 +61669,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4492", + "source_location": "L4496", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_price_letter_add", @@ -61347,7 +61679,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4470", + "source_location": "L4474", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_price_letter_detail", @@ -61357,7 +61689,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4429", + "source_location": "L4433", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_price_letter_list", @@ -61367,7 +61699,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4519", + "source_location": "L4523", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_price_letter_update", @@ -61377,7 +61709,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4550", + "source_location": "L4554", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_price_letter_void", @@ -61387,7 +61719,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L660", + "source_location": "L662", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_product_add", @@ -61397,7 +61729,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L705", + "source_location": "L707", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_product_delete", @@ -61407,7 +61739,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L639", + "source_location": "L641", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_product_detail", @@ -61417,7 +61749,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L873", + "source_location": "L875", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_product_export", @@ -61427,7 +61759,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L782", + "source_location": "L784", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_product_import", @@ -61437,7 +61769,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L908", + "source_location": "L912", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_product_import_template", @@ -61457,7 +61789,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L754", + "source_location": "L756", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_product_options", @@ -61467,7 +61799,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L684", + "source_location": "L686", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_product_update", @@ -61477,7 +61809,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L733", + "source_location": "L735", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_product_update_status", @@ -61488,7 +61820,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4576", + "source_location": "L4580", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_quote_routes", @@ -61499,7 +61831,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4576", + "source_location": "L4580", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_quote_routes_register_quote_routes", @@ -61509,7 +61841,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2213", + "source_location": "L2217", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_statistics_follow", @@ -61519,7 +61851,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2154", + "source_location": "L2158", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_statistics_industry", @@ -61529,7 +61861,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2136", + "source_location": "L2140", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_statistics_level", @@ -61539,7 +61871,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2098", + "source_location": "L2102", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_statistics_overview", @@ -61549,7 +61881,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2195", + "source_location": "L2199", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_statistics_owner", @@ -61559,7 +61891,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2118", + "source_location": "L2122", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_statistics_source", @@ -61569,7 +61901,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2172", + "source_location": "L2176", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_statistics_trend", @@ -61579,7 +61911,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3190", + "source_location": "L3194", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_supplier_info_add", @@ -61589,7 +61921,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3244", + "source_location": "L3248", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_supplier_info_delete", @@ -61599,7 +61931,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3167", + "source_location": "L3171", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_supplier_info_detail", @@ -61609,7 +61941,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3273", + "source_location": "L3277", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_supplier_info_export", @@ -61619,7 +61951,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3107", + "source_location": "L3111", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_supplier_info_list", @@ -61629,7 +61961,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3142", + "source_location": "L3146", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_supplier_info_list_all", @@ -61639,7 +61971,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3216", + "source_location": "L3220", "weight": 1.0, "source": "app_api_crm", "target": "app_api_crm_supplier_info_update", @@ -62552,7 +62884,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1454", + "source_location": "L1458", "weight": 1.0, "source": "app_api_crm", "target": "app_crud_crm_customer_pool_row_to_dict", @@ -63245,7 +63577,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1973", + "source_location": "L1977", "weight": 1.0, "source": "app_api_crm", "target": "app_crud_crm_pool_rule_row_to_dict", @@ -63289,7 +63621,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4410", + "source_location": "L4414", "weight": 1.0, "source": "app_api_crm", "target": "app_crud_crm_price_letter", @@ -63300,7 +63632,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4410", + "source_location": "L4414", "weight": 1.0, "source": "app_api_crm", "target": "app_crud_crm_price_letter_create_price_letter", @@ -63311,7 +63643,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4410", + "source_location": "L4414", "weight": 1.0, "source": "app_api_crm", "target": "app_crud_crm_price_letter_get_price_letter", @@ -63322,7 +63654,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4410", + "source_location": "L4414", "weight": 1.0, "source": "app_api_crm", "target": "app_crud_crm_price_letter_list_price_letters", @@ -63333,7 +63665,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4410", + "source_location": "L4414", "weight": 1.0, "source": "app_api_crm", "target": "app_crud_crm_price_letter_row_to_dict", @@ -63344,7 +63676,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4410", + "source_location": "L4414", "weight": 1.0, "source": "app_api_crm", "target": "app_crud_crm_price_letter_total_pages", @@ -63355,7 +63687,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4410", + "source_location": "L4414", "weight": 1.0, "source": "app_api_crm", "target": "app_crud_crm_price_letter_update_price_letter", @@ -63366,7 +63698,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4410", + "source_location": "L4414", "weight": 1.0, "source": "app_api_crm", "target": "app_crud_crm_price_letter_void_price_letter", @@ -63751,7 +64083,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2342", + "source_location": "L2346", "weight": 1.0, "source": "app_api_crm", "target": "app_models_crm_models_crmopportunity", @@ -64620,7 +64952,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4419", + "source_location": "L4423", "weight": 1.0, "source": "app_api_crm", "target": "app_schemas_crm_price_letter", @@ -64631,7 +64963,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4419", + "source_location": "L4423", "weight": 1.0, "source": "app_api_crm", "target": "app_schemas_crm_price_letter_pricelettercreatebody", @@ -64642,7 +64974,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4419", + "source_location": "L4423", "weight": 1.0, "source": "app_api_crm", "target": "app_schemas_crm_price_letter_priceletterdetailbody", @@ -64653,7 +64985,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4419", + "source_location": "L4423", "weight": 1.0, "source": "app_api_crm", "target": "app_schemas_crm_price_letter_priceletterlistbody", @@ -64664,7 +64996,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4419", + "source_location": "L4423", "weight": 1.0, "source": "app_api_crm", "target": "app_schemas_crm_price_letter_priceletterupdatebody", @@ -64675,7 +65007,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4419", + "source_location": "L4423", "weight": 1.0, "source": "app_api_crm", "target": "app_schemas_crm_price_letter_pricelettervoidbody", @@ -65081,7 +65413,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3608", + "source_location": "L3612", "weight": 1.0, "source": "app_api_crm_clue_assign", "target": "app_api_crm_py_session", @@ -65092,7 +65424,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3664", + "source_location": "L3668", "weight": 1.0, "source": "app_api_crm_clue_check_convert", "target": "app_api_crm_py_session", @@ -65103,7 +65435,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4218", + "source_location": "L4222", "weight": 1.0, "source": "app_api_crm_clue_check_duplicate", "target": "app_api_crm_py_session", @@ -65114,7 +65446,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3636", + "source_location": "L3640", "weight": 1.0, "source": "app_api_crm_clue_convert", "target": "app_api_crm_py_session", @@ -65125,7 +65457,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3532", + "source_location": "L3536", "weight": 1.0, "source": "app_api_crm_clue_create", "target": "app_api_crm_py_session", @@ -65136,7 +65468,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3577", + "source_location": "L3581", "weight": 1.0, "source": "app_api_crm_clue_delete", "target": "app_api_crm_py_session", @@ -65147,7 +65479,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3505", + "source_location": "L3509", "weight": 1.0, "source": "app_api_crm_clue_detail", "target": "app_api_crm_py_session", @@ -65158,7 +65490,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4074", + "source_location": "L4078", "weight": 1.0, "source": "app_api_crm_clue_export", "target": "app_api_crm_py_session", @@ -65169,7 +65501,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3942", + "source_location": "L3946", "weight": 1.0, "source": "app_api_crm_clue_follow_create", "target": "app_api_crm_py_session", @@ -65180,7 +65512,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3974", + "source_location": "L3978", "weight": 1.0, "source": "app_api_crm_clue_follow_delete", "target": "app_api_crm_py_session", @@ -65191,7 +65523,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4242", + "source_location": "L4246", "weight": 1.0, "source": "app_api_crm_clue_follow_detail", "target": "app_api_crm_py_session", @@ -65202,7 +65534,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3910", + "source_location": "L3914", "weight": 1.0, "source": "app_api_crm_clue_follow_list", "target": "app_api_crm_py_session", @@ -65213,7 +65545,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4005", + "source_location": "L4009", "weight": 1.0, "source": "app_api_crm_clue_follow_statistics", "target": "app_api_crm_py_session", @@ -65224,7 +65556,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4266", + "source_location": "L4270", "weight": 1.0, "source": "app_api_crm_clue_follow_update", "target": "app_api_crm_py_session", @@ -65235,7 +65567,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4166", + "source_location": "L4170", "weight": 1.0, "source": "app_api_crm_clue_import", "target": "app_api_crm_py_session", @@ -65246,7 +65578,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3705", + "source_location": "L3709", "weight": 1.0, "source": "app_api_crm_clue_invalid", "target": "app_api_crm_py_session", @@ -65257,7 +65589,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3458", + "source_location": "L3462", "weight": 1.0, "source": "app_api_crm_clue_list", "target": "app_api_crm_py_session", @@ -65268,7 +65600,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3757", + "source_location": "L3761", "weight": 1.0, "source": "app_api_crm_clue_mine", "target": "app_api_crm_py_session", @@ -65279,7 +65611,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3895", + "source_location": "L3899", "weight": 1.0, "source": "app_api_crm_clue_park_area_list", "target": "app_api_crm_py_session", @@ -65290,7 +65622,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4340", + "source_location": "L4344", "weight": 1.0, "source": "app_api_crm_clue_statistics_level", "target": "app_api_crm_py_session", @@ -65301,7 +65633,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4287", + "source_location": "L4291", "weight": 1.0, "source": "app_api_crm_clue_statistics_overview", "target": "app_api_crm_py_session", @@ -65312,7 +65644,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4384", + "source_location": "L4388", "weight": 1.0, "source": "app_api_crm_clue_statistics_owner", "target": "app_api_crm_py_session", @@ -65323,7 +65655,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4315", + "source_location": "L4319", "weight": 1.0, "source": "app_api_crm_clue_statistics_source", "target": "app_api_crm_py_session", @@ -65334,7 +65666,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4357", + "source_location": "L4361", "weight": 1.0, "source": "app_api_crm_clue_statistics_trend", "target": "app_api_crm_py_session", @@ -65345,7 +65677,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3803", + "source_location": "L3807", "weight": 1.0, "source": "app_api_crm_clue_to_follow", "target": "app_api_crm_py_session", @@ -65356,7 +65688,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3849", + "source_location": "L3853", "weight": 1.0, "source": "app_api_crm_clue_today_new", "target": "app_api_crm_py_session", @@ -65367,7 +65699,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3555", + "source_location": "L3559", "weight": 1.0, "source": "app_api_crm_clue_update", "target": "app_api_crm_py_session", @@ -65378,7 +65710,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3736", + "source_location": "L3740", "weight": 1.0, "source": "app_api_crm_clue_update_level", "target": "app_api_crm_py_session", @@ -65389,7 +65721,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3684", + "source_location": "L3688", "weight": 1.0, "source": "app_api_crm_clue_update_status", "target": "app_api_crm_py_session", @@ -65400,7 +65732,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1550", + "source_location": "L1554", "weight": 1.0, "source": "app_api_crm_contact_add", "target": "app_api_crm_py_session", @@ -65411,7 +65743,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1728", + "source_location": "L1732", "weight": 1.0, "source": "app_api_crm_contact_birthday", "target": "app_api_crm_py_session", @@ -65422,7 +65754,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1529", + "source_location": "L1533", "weight": 1.0, "source": "app_api_crm_contact_by_customer", "target": "app_api_crm_py_session", @@ -65433,7 +65765,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1666", + "source_location": "L1670", "weight": 1.0, "source": "app_api_crm_contact_decision", "target": "app_api_crm_py_session", @@ -65444,7 +65776,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1594", + "source_location": "L1598", "weight": 1.0, "source": "app_api_crm_contact_delete", "target": "app_api_crm_py_session", @@ -65455,7 +65787,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1505", + "source_location": "L1509", "weight": 1.0, "source": "app_api_crm_contact_detail", "target": "app_api_crm_py_session", @@ -65466,7 +65798,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1636", + "source_location": "L1640", "weight": 1.0, "source": "app_api_crm_contact_export", "target": "app_api_crm_py_session", @@ -65477,7 +65809,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1469", + "source_location": "L1473", "weight": 1.0, "source": "app_api_crm_contact_list", "target": "app_api_crm_py_session", @@ -65488,7 +65820,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1697", + "source_location": "L1701", "weight": 1.0, "source": "app_api_crm_contact_primary", "target": "app_api_crm_py_session", @@ -65499,7 +65831,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1614", + "source_location": "L1618", "weight": 1.0, "source": "app_api_crm_contact_set_primary", "target": "app_api_crm_py_session", @@ -65510,7 +65842,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1573", + "source_location": "L1577", "weight": 1.0, "source": "app_api_crm_contact_update", "target": "app_api_crm_py_session", @@ -65521,7 +65853,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1032", + "source_location": "L1036", "weight": 1.0, "source": "app_api_crm_customer_check_duplicate", "target": "app_api_crm_py_session", @@ -65543,7 +65875,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1003", + "source_location": "L1007", "weight": 1.0, "source": "app_api_crm_customer_deal", "target": "app_api_crm_py_session", @@ -65554,7 +65886,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1232", + "source_location": "L1236", "weight": 1.0, "source": "app_api_crm_customer_dealed", "target": "app_api_crm_py_session", @@ -65587,7 +65919,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1055", + "source_location": "L1059", "weight": 1.0, "source": "app_api_crm_customer_export", "target": "app_api_crm_py_session", @@ -65609,7 +65941,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L978", + "source_location": "L982", "weight": 1.0, "source": "app_api_crm_customer_into_pool", "target": "app_api_crm_py_session", @@ -65620,7 +65952,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1198", + "source_location": "L1202", "weight": 1.0, "source": "app_api_crm_customer_key", "target": "app_api_crm_py_session", @@ -65642,7 +65974,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1296", + "source_location": "L1300", "weight": 1.0, "source": "app_api_crm_customer_long_time_no_follow", "target": "app_api_crm_py_session", @@ -65653,7 +65985,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1130", + "source_location": "L1134", "weight": 1.0, "source": "app_api_crm_customer_mine", "target": "app_api_crm_py_session", @@ -65675,7 +66007,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1328", + "source_location": "L1332", "weight": 1.0, "source": "app_api_crm_customer_park_area_list", "target": "app_api_crm_py_session", @@ -65686,7 +66018,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1164", + "source_location": "L1168", "weight": 1.0, "source": "app_api_crm_customer_to_follow", "target": "app_api_crm_py_session", @@ -65697,7 +66029,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L952", + "source_location": "L956", "weight": 1.0, "source": "app_api_crm_customer_transfer", "target": "app_api_crm_py_session", @@ -65719,7 +66051,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1264", + "source_location": "L1268", "weight": 1.0, "source": "app_api_crm_customer_week_new", "target": "app_api_crm_py_session", @@ -65730,7 +66062,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1841", + "source_location": "L1845", "weight": 1.0, "source": "app_api_crm_follow_add", "target": "app_api_crm_py_session", @@ -65741,7 +66073,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1820", + "source_location": "L1824", "weight": 1.0, "source": "app_api_crm_follow_by_customer", "target": "app_api_crm_py_session", @@ -65752,7 +66084,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1884", + "source_location": "L1888", "weight": 1.0, "source": "app_api_crm_follow_delete", "target": "app_api_crm_py_session", @@ -65763,7 +66095,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1794", + "source_location": "L1798", "weight": 1.0, "source": "app_api_crm_follow_detail", "target": "app_api_crm_py_session", @@ -65774,7 +66106,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1901", + "source_location": "L1905", "weight": 1.0, "source": "app_api_crm_follow_export", "target": "app_api_crm_py_session", @@ -65785,7 +66117,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1762", + "source_location": "L1766", "weight": 1.0, "source": "app_api_crm_follow_list", "target": "app_api_crm_py_session", @@ -65796,7 +66128,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1865", + "source_location": "L1869", "weight": 1.0, "source": "app_api_crm_follow_update", "target": "app_api_crm_py_session", @@ -65807,7 +66139,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3354", + "source_location": "L3358", "weight": 1.0, "source": "app_api_crm_invoice_info_add", "target": "app_api_crm_py_session", @@ -65818,7 +66150,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3339", + "source_location": "L3343", "weight": 1.0, "source": "app_api_crm_invoice_info_by_customer", "target": "app_api_crm_py_session", @@ -65829,7 +66161,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3310", + "source_location": "L3314", "weight": 1.0, "source": "app_api_crm_invoice_info_by_customer_impl", "target": "app_api_crm_py_session", @@ -65840,7 +66172,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3407", + "source_location": "L3411", "weight": 1.0, "source": "app_api_crm_invoice_info_delete", "target": "app_api_crm_py_session", @@ -65851,7 +66183,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3324", + "source_location": "L3328", "weight": 1.0, "source": "app_api_crm_invoice_info_list", "target": "app_api_crm_py_session", @@ -65862,7 +66194,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3430", + "source_location": "L3434", "weight": 1.0, "source": "app_api_crm_invoice_info_set_default", "target": "app_api_crm_py_session", @@ -65873,7 +66205,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3379", + "source_location": "L3383", "weight": 1.0, "source": "app_api_crm_invoice_info_update", "target": "app_api_crm_py_session", @@ -65884,7 +66216,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2363", + "source_location": "L2367", "weight": 1.0, "source": "app_api_crm_opportunity_add", "target": "app_api_crm_py_session", @@ -65895,7 +66227,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2429", + "source_location": "L2433", "weight": 1.0, "source": "app_api_crm_opportunity_assign", "target": "app_api_crm_py_session", @@ -65906,7 +66238,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2572", + "source_location": "L2576", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_expect_date", "target": "app_api_crm_py_session", @@ -65917,7 +66249,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2543", + "source_location": "L2547", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_stage", "target": "app_api_crm_py_session", @@ -65928,7 +66260,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2456", + "source_location": "L2460", "weight": 1.0, "source": "app_api_crm_opportunity_change_stage", "target": "app_api_crm_py_session", @@ -65939,7 +66271,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2408", + "source_location": "L2412", "weight": 1.0, "source": "app_api_crm_opportunity_delete", "target": "app_api_crm_py_session", @@ -65950,7 +66282,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2333", + "source_location": "L2337", "weight": 1.0, "source": "app_api_crm_opportunity_detail", "target": "app_api_crm_py_session", @@ -65961,7 +66293,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3065", + "source_location": "L3069", "weight": 1.0, "source": "app_api_crm_opportunity_export", "target": "app_api_crm_py_session", @@ -65972,7 +66304,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2800", + "source_location": "L2804", "weight": 1.0, "source": "app_api_crm_opportunity_follow_add", "target": "app_api_crm_py_session", @@ -65983,7 +66315,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2848", + "source_location": "L2852", "weight": 1.0, "source": "app_api_crm_opportunity_follow_delete", "target": "app_api_crm_py_session", @@ -65994,7 +66326,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2872", + "source_location": "L2876", "weight": 1.0, "source": "app_api_crm_opportunity_follow_detail", "target": "app_api_crm_py_session", @@ -66005,7 +66337,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2768", + "source_location": "L2772", "weight": 1.0, "source": "app_api_crm_opportunity_follow_list", "target": "app_api_crm_py_session", @@ -66016,7 +66348,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2825", + "source_location": "L2829", "weight": 1.0, "source": "app_api_crm_opportunity_follow_update", "target": "app_api_crm_py_session", @@ -66027,7 +66359,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2618", + "source_location": "L2622", "weight": 1.0, "source": "app_api_crm_opportunity_kanban", "target": "app_api_crm_py_session", @@ -66038,7 +66370,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2267", + "source_location": "L2271", "weight": 1.0, "source": "app_api_crm_opportunity_list", "target": "app_api_crm_py_session", @@ -66049,7 +66381,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2514", + "source_location": "L2518", "weight": 1.0, "source": "app_api_crm_opportunity_mark_lost", "target": "app_api_crm_py_session", @@ -66060,7 +66392,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2486", + "source_location": "L2490", "weight": 1.0, "source": "app_api_crm_opportunity_mark_won", "target": "app_api_crm_py_session", @@ -66071,7 +66403,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2300", + "source_location": "L2304", "weight": 1.0, "source": "app_api_crm_opportunity_mine_list", "target": "app_api_crm_py_session", @@ -66082,7 +66414,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2946", + "source_location": "L2950", "weight": 1.0, "source": "app_api_crm_opportunity_product_add", "target": "app_api_crm_py_session", @@ -66093,7 +66425,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2971", + "source_location": "L2975", "weight": 1.0, "source": "app_api_crm_opportunity_product_batch_add", "target": "app_api_crm_py_session", @@ -66104,7 +66436,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3024", + "source_location": "L3028", "weight": 1.0, "source": "app_api_crm_opportunity_product_delete", "target": "app_api_crm_py_session", @@ -66115,7 +66447,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3045", + "source_location": "L3049", "weight": 1.0, "source": "app_api_crm_opportunity_product_detail", "target": "app_api_crm_py_session", @@ -66126,7 +66458,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2892", + "source_location": "L2896", "weight": 1.0, "source": "app_api_crm_opportunity_product_list", "target": "app_api_crm_py_session", @@ -66137,7 +66469,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2925", + "source_location": "L2929", "weight": 1.0, "source": "app_api_crm_opportunity_product_list_by_opportunity", "target": "app_api_crm_py_session", @@ -66148,7 +66480,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3001", + "source_location": "L3005", "weight": 1.0, "source": "app_api_crm_opportunity_product_update", "target": "app_api_crm_py_session", @@ -66159,7 +66491,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2600", + "source_location": "L2604", "weight": 1.0, "source": "app_api_crm_opportunity_stage_log_list", "target": "app_api_crm_py_session", @@ -66170,7 +66502,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2742", + "source_location": "L2746", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_funnel", "target": "app_api_crm_py_session", @@ -66181,7 +66513,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2649", + "source_location": "L2653", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_overview", "target": "app_api_crm_py_session", @@ -66192,7 +66524,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2717", + "source_location": "L2721", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_owner", "target": "app_api_crm_py_session", @@ -66203,7 +66535,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2675", + "source_location": "L2679", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_stage", "target": "app_api_crm_py_session", @@ -66214,7 +66546,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2691", + "source_location": "L2695", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_win_rate", "target": "app_api_crm_py_session", @@ -66225,7 +66557,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2387", + "source_location": "L2391", "weight": 1.0, "source": "app_api_crm_opportunity_update", "target": "app_api_crm_py_session", @@ -66236,7 +66568,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1380", + "source_location": "L1384", "weight": 1.0, "source": "app_api_crm_pool_customer_assign", "target": "app_api_crm_py_session", @@ -66247,7 +66579,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1399", + "source_location": "L1403", "weight": 1.0, "source": "app_api_crm_pool_customer_claim", "target": "app_api_crm_py_session", @@ -66258,7 +66590,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1348", + "source_location": "L1352", "weight": 1.0, "source": "app_api_crm_pool_customer_list", "target": "app_api_crm_py_session", @@ -66269,7 +66601,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1447", + "source_location": "L1451", "weight": 1.0, "source": "app_api_crm_pool_record_detail", "target": "app_api_crm_py_session", @@ -66280,7 +66612,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1417", + "source_location": "L1421", "weight": 1.0, "source": "app_api_crm_pool_record_list", "target": "app_api_crm_py_session", @@ -66291,7 +66623,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1986", + "source_location": "L1990", "weight": 1.0, "source": "app_api_crm_pool_rule_add", "target": "app_api_crm_py_session", @@ -66302,7 +66634,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2042", + "source_location": "L2046", "weight": 1.0, "source": "app_api_crm_pool_rule_delete", "target": "app_api_crm_py_session", @@ -66313,7 +66645,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1965", + "source_location": "L1969", "weight": 1.0, "source": "app_api_crm_pool_rule_detail", "target": "app_api_crm_py_session", @@ -66324,7 +66656,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2079", + "source_location": "L2083", "weight": 1.0, "source": "app_api_crm_pool_rule_execute", "target": "app_api_crm_py_session", @@ -66335,7 +66667,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1934", + "source_location": "L1938", "weight": 1.0, "source": "app_api_crm_pool_rule_list", "target": "app_api_crm_py_session", @@ -66346,7 +66678,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2013", + "source_location": "L2017", "weight": 1.0, "source": "app_api_crm_pool_rule_update", "target": "app_api_crm_py_session", @@ -66357,7 +66689,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2059", + "source_location": "L2063", "weight": 1.0, "source": "app_api_crm_pool_rule_update_status", "target": "app_api_crm_py_session", @@ -66368,7 +66700,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4492", + "source_location": "L4496", "weight": 1.0, "source": "app_api_crm_price_letter_add", "target": "app_api_crm_py_session", @@ -66379,7 +66711,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4470", + "source_location": "L4474", "weight": 1.0, "source": "app_api_crm_price_letter_detail", "target": "app_api_crm_py_session", @@ -66390,7 +66722,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4429", + "source_location": "L4433", "weight": 1.0, "source": "app_api_crm_price_letter_list", "target": "app_api_crm_py_session", @@ -66401,7 +66733,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4519", + "source_location": "L4523", "weight": 1.0, "source": "app_api_crm_price_letter_update", "target": "app_api_crm_py_session", @@ -66412,7 +66744,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4550", + "source_location": "L4554", "weight": 1.0, "source": "app_api_crm_price_letter_void", "target": "app_api_crm_py_session", @@ -66423,7 +66755,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L660", + "source_location": "L662", "weight": 1.0, "source": "app_api_crm_product_add", "target": "app_api_crm_py_session", @@ -66434,7 +66766,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L705", + "source_location": "L707", "weight": 1.0, "source": "app_api_crm_product_delete", "target": "app_api_crm_py_session", @@ -66445,7 +66777,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L639", + "source_location": "L641", "weight": 1.0, "source": "app_api_crm_product_detail", "target": "app_api_crm_py_session", @@ -66456,7 +66788,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L873", + "source_location": "L875", "weight": 1.0, "source": "app_api_crm_product_export", "target": "app_api_crm_py_session", @@ -66467,7 +66799,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L782", + "source_location": "L784", "weight": 1.0, "source": "app_api_crm_product_import", "target": "app_api_crm_py_session", @@ -66489,7 +66821,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L754", + "source_location": "L756", "weight": 1.0, "source": "app_api_crm_product_options", "target": "app_api_crm_py_session", @@ -66500,7 +66832,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L684", + "source_location": "L686", "weight": 1.0, "source": "app_api_crm_product_update", "target": "app_api_crm_py_session", @@ -66511,7 +66843,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L733", + "source_location": "L735", "weight": 1.0, "source": "app_api_crm_product_update_status", "target": "app_api_crm_py_session", @@ -66522,7 +66854,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2213", + "source_location": "L2217", "weight": 1.0, "source": "app_api_crm_statistics_follow", "target": "app_api_crm_py_session", @@ -66533,7 +66865,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2154", + "source_location": "L2158", "weight": 1.0, "source": "app_api_crm_statistics_industry", "target": "app_api_crm_py_session", @@ -66544,7 +66876,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2136", + "source_location": "L2140", "weight": 1.0, "source": "app_api_crm_statistics_level", "target": "app_api_crm_py_session", @@ -66555,7 +66887,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2098", + "source_location": "L2102", "weight": 1.0, "source": "app_api_crm_statistics_overview", "target": "app_api_crm_py_session", @@ -66566,7 +66898,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2195", + "source_location": "L2199", "weight": 1.0, "source": "app_api_crm_statistics_owner", "target": "app_api_crm_py_session", @@ -66577,7 +66909,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2118", + "source_location": "L2122", "weight": 1.0, "source": "app_api_crm_statistics_source", "target": "app_api_crm_py_session", @@ -66588,7 +66920,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2172", + "source_location": "L2176", "weight": 1.0, "source": "app_api_crm_statistics_trend", "target": "app_api_crm_py_session", @@ -66599,7 +66931,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3190", + "source_location": "L3194", "weight": 1.0, "source": "app_api_crm_supplier_info_add", "target": "app_api_crm_py_session", @@ -66610,7 +66942,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3244", + "source_location": "L3248", "weight": 1.0, "source": "app_api_crm_supplier_info_delete", "target": "app_api_crm_py_session", @@ -66621,7 +66953,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3167", + "source_location": "L3171", "weight": 1.0, "source": "app_api_crm_supplier_info_detail", "target": "app_api_crm_py_session", @@ -66632,7 +66964,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3273", + "source_location": "L3277", "weight": 1.0, "source": "app_api_crm_supplier_info_export", "target": "app_api_crm_py_session", @@ -66643,7 +66975,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3107", + "source_location": "L3111", "weight": 1.0, "source": "app_api_crm_supplier_info_list", "target": "app_api_crm_py_session", @@ -66654,7 +66986,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3142", + "source_location": "L3146", "weight": 1.0, "source": "app_api_crm_supplier_info_list_all", "target": "app_api_crm_py_session", @@ -66665,7 +66997,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3216", + "source_location": "L3220", "weight": 1.0, "source": "app_api_crm_supplier_info_update", "target": "app_api_crm_py_session", @@ -67314,7 +67646,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L633", + "source_location": "L635", "weight": 1.0, "source": "app_api_crm_product_list", "target": "app_core_response_error_response" @@ -67325,7 +67657,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L623", + "source_location": "L625", "weight": 1.0, "source": "app_api_crm_product_list", "target": "app_core_response_success_response" @@ -67380,7 +67712,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L650", + "source_location": "L652", "weight": 1.0, "source": "app_api_crm_product_detail", "target": "app_core_response_error_response" @@ -67391,7 +67723,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L652", + "source_location": "L654", "weight": 1.0, "source": "app_api_crm_product_detail", "target": "app_core_response_success_response" @@ -67402,7 +67734,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L646", + "source_location": "L648", "weight": 1.0, "source": "app_api_crm_product_detail", "target": "app_core_tenant_context_get_tenant_no" @@ -67413,7 +67745,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L647", + "source_location": "L649", "weight": 1.0, "source": "app_api_crm_product_detail", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -67424,7 +67756,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L651", + "source_location": "L653", "weight": 1.0, "source": "app_api_crm_product_detail", "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope" @@ -67435,7 +67767,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L648", + "source_location": "L650", "weight": 1.0, "source": "app_api_crm_product_detail", "target": "app_crud_crm_product_get_product" @@ -67446,7 +67778,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L652", + "source_location": "L654", "weight": 1.0, "source": "app_api_crm_product_detail", "target": "app_crud_crm_product_product_to_dict" @@ -67456,7 +67788,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L639", + "source_location": "L641", "weight": 1.0, "source": "app_api_crm_product_detail", "target": "app_schemas_crm_product_productdetailbody", @@ -67468,7 +67800,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L678", + "source_location": "L680", "weight": 1.0, "source": "app_api_crm_product_add", "target": "app_core_response_error_response" @@ -67479,7 +67811,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L676", + "source_location": "L678", "weight": 1.0, "source": "app_api_crm_product_add", "target": "app_core_response_success_response" @@ -67490,7 +67822,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L667", + "source_location": "L669", "weight": 1.0, "source": "app_api_crm_product_add", "target": "app_core_tenant_context_get_tenant_no" @@ -67501,7 +67833,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L668", + "source_location": "L670", "weight": 1.0, "source": "app_api_crm_product_add", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -67512,7 +67844,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L670", + "source_location": "L672", "weight": 1.0, "source": "app_api_crm_product_add", "target": "app_crud_crm_product_create_product" @@ -67523,7 +67855,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L676", + "source_location": "L678", "weight": 1.0, "source": "app_api_crm_product_add", "target": "app_crud_crm_product_product_to_dict" @@ -67533,7 +67865,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L660", + "source_location": "L662", "weight": 1.0, "source": "app_api_crm_product_add", "target": "app_schemas_crm_product_productcreatebody", @@ -67545,7 +67877,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L699", + "source_location": "L701", "weight": 1.0, "source": "app_api_crm_product_update", "target": "app_core_response_error_response" @@ -67556,7 +67888,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L697", + "source_location": "L699", "weight": 1.0, "source": "app_api_crm_product_update", "target": "app_core_response_success_response" @@ -67567,7 +67899,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L694", + "source_location": "L696", "weight": 1.0, "source": "app_api_crm_product_update", "target": "app_core_tenant_context_get_tenant_no" @@ -67578,7 +67910,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L695", + "source_location": "L697", "weight": 1.0, "source": "app_api_crm_product_update", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -67589,7 +67921,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L697", + "source_location": "L699", "weight": 1.0, "source": "app_api_crm_product_update", "target": "app_crud_crm_product_product_to_dict" @@ -67600,7 +67932,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L696", + "source_location": "L698", "weight": 1.0, "source": "app_api_crm_product_update", "target": "app_crud_crm_product_update_product" @@ -67610,7 +67942,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L684", + "source_location": "L686", "weight": 1.0, "source": "app_api_crm_product_update", "target": "app_schemas_crm_product_productupdatebody", @@ -67622,11 +67954,44 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L720", + "source_location": "L722", "weight": 1.0, "source": "app_api_crm_product_delete", "target": "app_core_response_error_response" }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L727", + "weight": 1.0, + "source": "app_api_crm_product_delete", + "target": "app_core_response_success_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L714", + "weight": 1.0, + "source": "app_api_crm_product_delete", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L715", + "weight": 1.0, + "source": "app_api_crm_product_delete", + "target": "app_crud_crm_data_scope_helpers_crm_user_info" + }, { "relation": "calls", "context": "call", @@ -67636,39 +68001,6 @@ "source_location": "L725", "weight": 1.0, "source": "app_api_crm_product_delete", - "target": "app_core_response_success_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L712", - "weight": 1.0, - "source": "app_api_crm_product_delete", - "target": "app_core_tenant_context_get_tenant_no" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L713", - "weight": 1.0, - "source": "app_api_crm_product_delete", - "target": "app_crud_crm_data_scope_helpers_crm_user_info" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L723", - "weight": 1.0, - "source": "app_api_crm_product_delete", "target": "app_crud_crm_product_soft_delete_product" }, { @@ -67676,7 +68008,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L705", + "source_location": "L707", "weight": 1.0, "source": "app_api_crm_product_delete", "target": "app_schemas_crm_product_productdeletebody", @@ -67686,9 +68018,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L710", + "source_location": "L712", "weight": 1.0, - "source": "app_api_crm_rationale_710", + "source": "app_api_crm_rationale_712", "target": "app_api_crm_product_delete", "confidence_score": 1.0 }, @@ -67698,7 +68030,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L748", + "source_location": "L750", "weight": 1.0, "source": "app_api_crm_product_update_status", "target": "app_core_response_error_response" @@ -67709,7 +68041,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L746", + "source_location": "L748", "weight": 1.0, "source": "app_api_crm_product_update_status", "target": "app_core_response_success_response" @@ -67720,7 +68052,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L740", + "source_location": "L742", "weight": 1.0, "source": "app_api_crm_product_update_status", "target": "app_core_tenant_context_get_tenant_no" @@ -67731,7 +68063,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L741", + "source_location": "L743", "weight": 1.0, "source": "app_api_crm_product_update_status", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -67742,7 +68074,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L745", + "source_location": "L747", "weight": 1.0, "source": "app_api_crm_product_update_status", "target": "app_crud_crm_product_update_product" @@ -67752,7 +68084,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L733", + "source_location": "L735", "weight": 1.0, "source": "app_api_crm_product_update_status", "target": "app_schemas_crm_product_productupdatestatusbody", @@ -67764,7 +68096,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L773", + "source_location": "L775", "weight": 1.0, "source": "app_api_crm_product_options", "target": "app_core_response_error_response" @@ -67775,7 +68107,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L771", + "source_location": "L773", "weight": 1.0, "source": "app_api_crm_product_options", "target": "app_core_response_success_response" @@ -67786,7 +68118,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L761", + "source_location": "L763", "weight": 1.0, "source": "app_api_crm_product_options", "target": "app_core_tenant_context_get_tenant_no" @@ -67797,7 +68129,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L762", + "source_location": "L764", "weight": 1.0, "source": "app_api_crm_product_options", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -67808,7 +68140,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L763", + "source_location": "L765", "weight": 1.0, "source": "app_api_crm_product_options", "target": "app_crud_crm_product_list_product_options" @@ -67818,7 +68150,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L754", + "source_location": "L756", "weight": 1.0, "source": "app_api_crm_product_options", "target": "app_schemas_crm_product_productoptionsbody", @@ -67829,7 +68161,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L782", + "source_location": "L784", "weight": 1.0, "source": "app_api_crm_product_import", "target": "app_api_crm_py_uploadfile", @@ -67841,7 +68173,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L867", + "source_location": "L869", "weight": 1.0, "source": "app_api_crm_product_import", "target": "app_core_response_error_response" @@ -67852,7 +68184,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L863", + "source_location": "L865", "weight": 1.0, "source": "app_api_crm_product_import", "target": "app_core_response_success_response" @@ -67863,7 +68195,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L791", + "source_location": "L793", "weight": 1.0, "source": "app_api_crm_product_import", "target": "app_core_tenant_context_get_tenant_no" @@ -67874,7 +68206,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L792", + "source_location": "L794", "weight": 1.0, "source": "app_api_crm_product_import", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -67885,7 +68217,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L845", + "source_location": "L847", "weight": 1.0, "source": "app_api_crm_product_import", "target": "app_crud_crm_product_create_product" @@ -67896,7 +68228,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L800", + "source_location": "L802", "weight": 1.0, "source": "app_api_crm_product_import", "target": "app_crud_crm_product_list_categories" @@ -67907,7 +68239,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L830", + "source_location": "L832", "weight": 1.0, "source": "app_api_crm_product_import", "target": "app_crud_crm_product_product_no_exists" @@ -67917,7 +68249,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4166", + "source_location": "L4170", "weight": 1.0, "source": "app_api_crm_clue_import", "target": "app_api_crm_py_uploadfile", @@ -67929,7 +68261,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L902", + "source_location": "L906", "weight": 1.0, "source": "app_api_crm_product_export", "target": "app_core_response_error_response" @@ -67940,7 +68272,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L880", + "source_location": "L882", "weight": 1.0, "source": "app_api_crm_product_export", "target": "app_core_tenant_context_get_tenant_no" @@ -67951,7 +68283,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L881", + "source_location": "L883", "weight": 1.0, "source": "app_api_crm_product_export", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -67962,7 +68294,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L882", + "source_location": "L884", "weight": 1.0, "source": "app_api_crm_product_export", "target": "app_crud_crm_product_list_products" @@ -67972,7 +68304,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L873", + "source_location": "L875", "weight": 1.0, "source": "app_api_crm_product_export", "target": "app_schemas_crm_product_productlistbody", @@ -67984,7 +68316,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L893", + "source_location": "L897", "weight": 1.0, "source": "app_api_crm_product_export", "target": "app_utils_excel_export_export_rows_to_xlsx_response" @@ -67995,7 +68327,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L944", + "source_location": "L948", "weight": 1.0, "source": "app_api_crm_product_import_template", "target": "app_core_response_error_response" @@ -68006,7 +68338,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "app/api/crm.py", - "source_location": "L936", + "source_location": "L940", "weight": 1.0, "source": "app_api_crm_product_import_template", "target": "streamingresponse" @@ -68017,7 +68349,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "app/api/crm.py", - "source_location": "L916", + "source_location": "L920", "weight": 1.0, "source": "app_api_crm_product_import_template", "target": "workbook" @@ -68028,7 +68360,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L966", + "source_location": "L970", "weight": 1.0, "source": "app_api_crm_customer_transfer", "target": "app_core_response_error_response" @@ -68039,7 +68371,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L969", + "source_location": "L973", "weight": 1.0, "source": "app_api_crm_customer_transfer", "target": "app_core_response_success_response" @@ -68050,7 +68382,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L959", + "source_location": "L963", "weight": 1.0, "source": "app_api_crm_customer_transfer", "target": "app_core_tenant_context_get_tenant_no" @@ -68061,7 +68393,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L968", + "source_location": "L972", "weight": 1.0, "source": "app_api_crm_customer_transfer", "target": "app_crud_crm_customer_transfer_customer" @@ -68072,7 +68404,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L960", + "source_location": "L964", "weight": 1.0, "source": "app_api_crm_customer_transfer", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -68083,7 +68415,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L991", + "source_location": "L995", "weight": 1.0, "source": "app_api_crm_customer_into_pool", "target": "app_core_response_error_response" @@ -68094,7 +68426,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L994", + "source_location": "L998", "weight": 1.0, "source": "app_api_crm_customer_into_pool", "target": "app_core_response_success_response" @@ -68105,7 +68437,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L985", + "source_location": "L989", "weight": 1.0, "source": "app_api_crm_customer_into_pool", "target": "app_core_tenant_context_get_tenant_no" @@ -68116,7 +68448,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L993", + "source_location": "L997", "weight": 1.0, "source": "app_api_crm_customer_into_pool", "target": "app_crud_crm_customer_into_pool" @@ -68127,7 +68459,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L986", + "source_location": "L990", "weight": 1.0, "source": "app_api_crm_customer_into_pool", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -68138,7 +68470,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1026", + "source_location": "L1030", "weight": 1.0, "source": "app_api_crm_customer_deal", "target": "app_core_response_error_response" @@ -68149,7 +68481,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1024", + "source_location": "L1028", "weight": 1.0, "source": "app_api_crm_customer_deal", "target": "app_core_response_success_response" @@ -68160,7 +68492,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1022", + "source_location": "L1026", "weight": 1.0, "source": "app_api_crm_customer_deal", "target": "app_core_tenant_context_get_tenant_no" @@ -68171,7 +68503,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1015", + "source_location": "L1019", "weight": 1.0, "source": "app_api_crm_customer_deal", "target": "app_crud_crm_customer_deal_customer" @@ -68182,7 +68514,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1021", + "source_location": "L1025", "weight": 1.0, "source": "app_api_crm_customer_deal", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -68193,7 +68525,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1048", + "source_location": "L1052", "weight": 1.0, "source": "app_api_crm_customer_check_duplicate", "target": "app_core_response_error_response" @@ -68204,22 +68536,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1046", + "source_location": "L1050", "weight": 1.0, "source": "app_api_crm_customer_check_duplicate", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1039", - "weight": 1.0, - "source": "app_api_crm_customer_check_duplicate", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -68229,6 +68550,17 @@ "source_location": "L1043", "weight": 1.0, "source": "app_api_crm_customer_check_duplicate", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1047", + "weight": 1.0, + "source": "app_api_crm_customer_check_duplicate", "target": "app_crud_crm_customer_check_duplicate_customer" }, { @@ -68237,22 +68569,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1085", + "source_location": "L1089", "weight": 1.0, "source": "app_api_crm_customer_export", "target": "app_core_response_error_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1062", - "weight": 1.0, - "source": "app_api_crm_customer_export", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -68262,6 +68583,17 @@ "source_location": "L1066", "weight": 1.0, "source": "app_api_crm_customer_export", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1070", + "weight": 1.0, + "source": "app_api_crm_customer_export", "target": "app_crud_crm_customer_list_customers" }, { @@ -68270,7 +68602,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1063", + "source_location": "L1067", "weight": 1.0, "source": "app_api_crm_customer_export", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -68280,7 +68612,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1055", + "source_location": "L1059", "weight": 1.0, "source": "app_api_crm_customer_export", "target": "app_schemas_crm_customer_customerlistbody", @@ -68292,7 +68624,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1076", + "source_location": "L1080", "weight": 1.0, "source": "app_api_crm_customer_export", "target": "app_utils_excel_export_export_rows_to_xlsx_response" @@ -68303,7 +68635,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1123", + "source_location": "L1127", "weight": 1.0, "source": "app_api_crm_customer_import_template", "target": "app_core_response_error_response" @@ -68314,7 +68646,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "app/api/crm.py", - "source_location": "L1115", + "source_location": "L1119", "weight": 1.0, "source": "app_api_crm_customer_import_template", "target": "streamingresponse" @@ -68325,7 +68657,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "app/api/crm.py", - "source_location": "L1099", + "source_location": "L1103", "weight": 1.0, "source": "app_api_crm_customer_import_template", "target": "workbook" @@ -68336,7 +68668,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1158", + "source_location": "L1162", "weight": 1.0, "source": "app_api_crm_customer_mine", "target": "app_core_response_error_response" @@ -68347,22 +68679,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1150", + "source_location": "L1154", "weight": 1.0, "source": "app_api_crm_customer_mine", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1137", - "weight": 1.0, - "source": "app_api_crm_customer_mine", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -68372,6 +68693,17 @@ "source_location": "L1141", "weight": 1.0, "source": "app_api_crm_customer_mine", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1145", + "weight": 1.0, + "source": "app_api_crm_customer_mine", "target": "app_crud_crm_customer_list_customers" }, { @@ -68380,7 +68712,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1138", + "source_location": "L1142", "weight": 1.0, "source": "app_api_crm_customer_mine", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -68390,7 +68722,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1130", + "source_location": "L1134", "weight": 1.0, "source": "app_api_crm_customer_mine", "target": "app_schemas_crm_customer_customerlistbody", @@ -68402,7 +68734,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1192", + "source_location": "L1196", "weight": 1.0, "source": "app_api_crm_customer_to_follow", "target": "app_core_response_error_response" @@ -68413,22 +68745,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1184", + "source_location": "L1188", "weight": 1.0, "source": "app_api_crm_customer_to_follow", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1171", - "weight": 1.0, - "source": "app_api_crm_customer_to_follow", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -68438,6 +68759,17 @@ "source_location": "L1175", "weight": 1.0, "source": "app_api_crm_customer_to_follow", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1179", + "weight": 1.0, + "source": "app_api_crm_customer_to_follow", "target": "app_crud_crm_customer_list_customers" }, { @@ -68446,7 +68778,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1172", + "source_location": "L1176", "weight": 1.0, "source": "app_api_crm_customer_to_follow", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -68456,7 +68788,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1164", + "source_location": "L1168", "weight": 1.0, "source": "app_api_crm_customer_to_follow", "target": "app_schemas_crm_customer_customerlistbody", @@ -68468,7 +68800,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1226", + "source_location": "L1230", "weight": 1.0, "source": "app_api_crm_customer_key", "target": "app_core_response_error_response" @@ -68479,22 +68811,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1218", + "source_location": "L1222", "weight": 1.0, "source": "app_api_crm_customer_key", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1205", - "weight": 1.0, - "source": "app_api_crm_customer_key", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -68504,6 +68825,17 @@ "source_location": "L1209", "weight": 1.0, "source": "app_api_crm_customer_key", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1213", + "weight": 1.0, + "source": "app_api_crm_customer_key", "target": "app_crud_crm_customer_list_customers" }, { @@ -68512,7 +68844,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1206", + "source_location": "L1210", "weight": 1.0, "source": "app_api_crm_customer_key", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -68522,7 +68854,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1198", + "source_location": "L1202", "weight": 1.0, "source": "app_api_crm_customer_key", "target": "app_schemas_crm_customer_customerlistbody", @@ -68534,7 +68866,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1258", + "source_location": "L1262", "weight": 1.0, "source": "app_api_crm_customer_dealed", "target": "app_core_response_error_response" @@ -68545,7 +68877,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1250", + "source_location": "L1254", "weight": 1.0, "source": "app_api_crm_customer_dealed", "target": "app_core_response_success_response" @@ -68556,11 +68888,22 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1239", + "source_location": "L1243", "weight": 1.0, "source": "app_api_crm_customer_dealed", "target": "app_core_tenant_context_get_tenant_no" }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1248", + "weight": 1.0, + "source": "app_api_crm_customer_dealed", + "target": "app_crud_crm_customer_list_customers" + }, { "relation": "calls", "context": "call", @@ -68570,17 +68913,6 @@ "source_location": "L1244", "weight": 1.0, "source": "app_api_crm_customer_dealed", - "target": "app_crud_crm_customer_list_customers" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1240", - "weight": 1.0, - "source": "app_api_crm_customer_dealed", "target": "app_crud_crm_data_scope_helpers_crm_user_info" }, { @@ -68588,7 +68920,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1232", + "source_location": "L1236", "weight": 1.0, "source": "app_api_crm_customer_dealed", "target": "app_schemas_crm_customer_customerlistbody", @@ -68600,7 +68932,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1290", + "source_location": "L1294", "weight": 1.0, "source": "app_api_crm_customer_week_new", "target": "app_core_response_error_response" @@ -68611,7 +68943,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1282", + "source_location": "L1286", "weight": 1.0, "source": "app_api_crm_customer_week_new", "target": "app_core_response_success_response" @@ -68622,11 +68954,22 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1271", + "source_location": "L1275", "weight": 1.0, "source": "app_api_crm_customer_week_new", "target": "app_core_tenant_context_get_tenant_no" }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1280", + "weight": 1.0, + "source": "app_api_crm_customer_week_new", + "target": "app_crud_crm_customer_list_customers" + }, { "relation": "calls", "context": "call", @@ -68636,17 +68979,6 @@ "source_location": "L1276", "weight": 1.0, "source": "app_api_crm_customer_week_new", - "target": "app_crud_crm_customer_list_customers" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1272", - "weight": 1.0, - "source": "app_api_crm_customer_week_new", "target": "app_crud_crm_data_scope_helpers_crm_user_info" }, { @@ -68654,7 +68986,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1264", + "source_location": "L1268", "weight": 1.0, "source": "app_api_crm_customer_week_new", "target": "app_schemas_crm_customer_customerlistbody", @@ -68666,7 +68998,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1322", + "source_location": "L1326", "weight": 1.0, "source": "app_api_crm_customer_long_time_no_follow", "target": "app_core_response_error_response" @@ -68677,7 +69009,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1314", + "source_location": "L1318", "weight": 1.0, "source": "app_api_crm_customer_long_time_no_follow", "target": "app_core_response_success_response" @@ -68688,11 +69020,22 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1303", + "source_location": "L1307", "weight": 1.0, "source": "app_api_crm_customer_long_time_no_follow", "target": "app_core_tenant_context_get_tenant_no" }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1312", + "weight": 1.0, + "source": "app_api_crm_customer_long_time_no_follow", + "target": "app_crud_crm_customer_list_customers" + }, { "relation": "calls", "context": "call", @@ -68702,17 +69045,6 @@ "source_location": "L1308", "weight": 1.0, "source": "app_api_crm_customer_long_time_no_follow", - "target": "app_crud_crm_customer_list_customers" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1304", - "weight": 1.0, - "source": "app_api_crm_customer_long_time_no_follow", "target": "app_crud_crm_data_scope_helpers_crm_user_info" }, { @@ -68720,12 +69052,34 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1296", + "source_location": "L1300", "weight": 1.0, "source": "app_api_crm_customer_long_time_no_follow", "target": "app_schemas_crm_customer_customerlistbody", "confidence_score": 1.0 }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1343", + "weight": 1.0, + "source": "app_api_crm_customer_park_area_list", + "target": "app_core_response_error_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1341", + "weight": 1.0, + "source": "app_api_crm_customer_park_area_list", + "target": "app_core_response_success_response" + }, { "relation": "calls", "context": "call", @@ -68735,28 +69089,6 @@ "source_location": "L1339", "weight": 1.0, "source": "app_api_crm_customer_park_area_list", - "target": "app_core_response_error_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1337", - "weight": 1.0, - "source": "app_api_crm_customer_park_area_list", - "target": "app_core_response_success_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1335", - "weight": 1.0, - "source": "app_api_crm_customer_park_area_list", "target": "app_core_tenant_context_get_tenant_no" }, { @@ -68765,7 +69097,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1373", + "source_location": "L1377", "weight": 1.0, "source": "app_api_crm_pool_customer_list", "target": "app_core_response_error_response" @@ -68776,7 +69108,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1365", + "source_location": "L1369", "weight": 1.0, "source": "app_api_crm_pool_customer_list", "target": "app_core_response_success_response" @@ -68787,7 +69119,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1354", + "source_location": "L1358", "weight": 1.0, "source": "app_api_crm_pool_customer_list", "target": "app_core_tenant_context_get_tenant_no" @@ -68798,7 +69130,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1357", + "source_location": "L1361", "weight": 1.0, "source": "app_api_crm_pool_customer_list", "target": "app_crud_crm_customer_list_pool_customers" @@ -68808,7 +69140,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1348", + "source_location": "L1352", "weight": 1.0, "source": "app_api_crm_pool_customer_list", "target": "app_schemas_crm_customer_pool_poolcustomerlistbody", @@ -68820,7 +69152,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1392", + "source_location": "L1396", "weight": 1.0, "source": "app_api_crm_pool_customer_assign", "target": "app_core_response_error_response" @@ -68831,7 +69163,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1390", + "source_location": "L1394", "weight": 1.0, "source": "app_api_crm_pool_customer_assign", "target": "app_core_response_success_response" @@ -68842,7 +69174,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1386", + "source_location": "L1390", "weight": 1.0, "source": "app_api_crm_pool_customer_assign", "target": "app_core_tenant_context_get_tenant_no" @@ -68853,7 +69185,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1389", + "source_location": "L1393", "weight": 1.0, "source": "app_api_crm_pool_customer_assign", "target": "app_crud_crm_customer_assign_customer" @@ -68864,7 +69196,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1387", + "source_location": "L1391", "weight": 1.0, "source": "app_api_crm_pool_customer_assign", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -68874,7 +69206,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1380", + "source_location": "L1384", "weight": 1.0, "source": "app_api_crm_pool_customer_assign", "target": "app_schemas_crm_customer_pool_poolassignbody", @@ -68886,7 +69218,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1411", + "source_location": "L1415", "weight": 1.0, "source": "app_api_crm_pool_customer_claim", "target": "app_core_response_error_response" @@ -68897,7 +69229,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1409", + "source_location": "L1413", "weight": 1.0, "source": "app_api_crm_pool_customer_claim", "target": "app_core_response_success_response" @@ -68908,7 +69240,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1405", + "source_location": "L1409", "weight": 1.0, "source": "app_api_crm_pool_customer_claim", "target": "app_core_tenant_context_get_tenant_no" @@ -68919,7 +69251,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1408", + "source_location": "L1412", "weight": 1.0, "source": "app_api_crm_pool_customer_claim", "target": "app_crud_crm_customer_batch_claim_customers" @@ -68929,7 +69261,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1399", + "source_location": "L1403", "weight": 1.0, "source": "app_api_crm_pool_customer_claim", "target": "app_schemas_crm_customer_pool_poolclaimbody", @@ -68941,7 +69273,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1441", + "source_location": "L1445", "weight": 1.0, "source": "app_api_crm_pool_record_list", "target": "app_core_response_error_response" @@ -68952,7 +69284,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1433", + "source_location": "L1437", "weight": 1.0, "source": "app_api_crm_pool_record_list", "target": "app_core_response_success_response" @@ -68963,7 +69295,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1423", + "source_location": "L1427", "weight": 1.0, "source": "app_api_crm_pool_record_list", "target": "app_core_tenant_context_get_tenant_no" @@ -68974,7 +69306,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1426", + "source_location": "L1430", "weight": 1.0, "source": "app_api_crm_pool_record_list", "target": "app_crud_crm_customer_pool_list_pool_records" @@ -68984,7 +69316,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1417", + "source_location": "L1421", "weight": 1.0, "source": "app_api_crm_pool_record_list", "target": "app_schemas_crm_customer_pool_poolrecordlistbody", @@ -68996,7 +69328,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1457", + "source_location": "L1461", "weight": 1.0, "source": "app_api_crm_pool_record_detail", "target": "app_core_response_error_response" @@ -69007,7 +69339,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1458", + "source_location": "L1462", "weight": 1.0, "source": "app_api_crm_pool_record_detail", "target": "app_core_response_success_response" @@ -69018,7 +69350,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1453", + "source_location": "L1457", "weight": 1.0, "source": "app_api_crm_pool_record_detail", "target": "app_core_tenant_context_get_tenant_no" @@ -69029,7 +69361,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1455", + "source_location": "L1459", "weight": 1.0, "source": "app_api_crm_pool_record_detail", "target": "app_crud_crm_customer_pool_get_pool_record" @@ -69039,7 +69371,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1447", + "source_location": "L1451", "weight": 1.0, "source": "app_api_crm_pool_record_detail", "target": "app_schemas_crm_customer_pool_poolrecorddetailbody", @@ -69051,7 +69383,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1499", + "source_location": "L1503", "weight": 1.0, "source": "app_api_crm_contact_list", "target": "app_core_response_error_response" @@ -69062,7 +69394,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1491", + "source_location": "L1495", "weight": 1.0, "source": "app_api_crm_contact_list", "target": "app_core_response_success_response" @@ -69073,7 +69405,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1476", + "source_location": "L1480", "weight": 1.0, "source": "app_api_crm_contact_list", "target": "app_core_tenant_context_get_tenant_no" @@ -69084,7 +69416,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1480", + "source_location": "L1484", "weight": 1.0, "source": "app_api_crm_contact_list", "target": "app_crud_crm_contact_list_contacts" @@ -69095,7 +69427,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1477", + "source_location": "L1481", "weight": 1.0, "source": "app_api_crm_contact_list", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69105,7 +69437,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1469", + "source_location": "L1473", "weight": 1.0, "source": "app_api_crm_contact_list", "target": "app_schemas_crm_contact_contactlistbody", @@ -69117,11 +69449,33 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1514", + "source_location": "L1518", "weight": 1.0, "source": "app_api_crm_contact_detail", "target": "app_core_response_error_response" }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1525", + "weight": 1.0, + "source": "app_api_crm_contact_detail", + "target": "app_core_response_success_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1519", + "weight": 1.0, + "source": "app_api_crm_contact_detail", + "target": "app_core_tenant_context_get_tenant_no" + }, { "relation": "calls", "context": "call", @@ -69131,41 +69485,8 @@ "source_location": "L1521", "weight": 1.0, "source": "app_api_crm_contact_detail", - "target": "app_core_response_success_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1515", - "weight": 1.0, - "source": "app_api_crm_contact_detail", - "target": "app_core_tenant_context_get_tenant_no" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1517", - "weight": 1.0, - "source": "app_api_crm_contact_detail", "target": "app_crud_crm_contact_get_contact" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1516", - "weight": 1.0, - "source": "app_api_crm_contact_detail", - "target": "app_crud_crm_data_scope_helpers_crm_user_info" - }, { "relation": "calls", "context": "call", @@ -69175,8 +69496,41 @@ "source_location": "L1520", "weight": 1.0, "source": "app_api_crm_contact_detail", + "target": "app_crud_crm_data_scope_helpers_crm_user_info" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1524", + "weight": 1.0, + "source": "app_api_crm_contact_detail", "target": "app_crud_crm_data_scope_helpers_ensure_crm_contact_row_in_scope" }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1544", + "weight": 1.0, + "source": "app_api_crm_contact_by_customer", + "target": "app_core_response_error_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1546", + "weight": 1.0, + "source": "app_api_crm_contact_by_customer", + "target": "app_core_response_success_response" + }, { "relation": "calls", "context": "call", @@ -69186,28 +69540,6 @@ "source_location": "L1540", "weight": 1.0, "source": "app_api_crm_contact_by_customer", - "target": "app_core_response_error_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1542", - "weight": 1.0, - "source": "app_api_crm_contact_by_customer", - "target": "app_core_response_success_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1536", - "weight": 1.0, - "source": "app_api_crm_contact_by_customer", "target": "app_core_tenant_context_get_tenant_no" }, { @@ -69216,7 +69548,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1541", + "source_location": "L1545", "weight": 1.0, "source": "app_api_crm_contact_by_customer", "target": "app_crud_crm_contact_list_contacts_by_customer" @@ -69227,7 +69559,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1537", + "source_location": "L1541", "weight": 1.0, "source": "app_api_crm_contact_by_customer", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69238,7 +69570,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1567", + "source_location": "L1571", "weight": 1.0, "source": "app_api_crm_contact_add", "target": "app_core_response_error_response" @@ -69249,7 +69581,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1565", + "source_location": "L1569", "weight": 1.0, "source": "app_api_crm_contact_add", "target": "app_core_response_success_response" @@ -69260,7 +69592,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1557", + "source_location": "L1561", "weight": 1.0, "source": "app_api_crm_contact_add", "target": "app_core_tenant_context_get_tenant_no" @@ -69271,7 +69603,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1561", + "source_location": "L1565", "weight": 1.0, "source": "app_api_crm_contact_add", "target": "app_crud_crm_contact_create_contact" @@ -69282,7 +69614,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1558", + "source_location": "L1562", "weight": 1.0, "source": "app_api_crm_contact_add", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69292,7 +69624,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1550", + "source_location": "L1554", "weight": 1.0, "source": "app_api_crm_contact_add", "target": "app_schemas_crm_contact_contactcreatebody", @@ -69304,7 +69636,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1588", + "source_location": "L1592", "weight": 1.0, "source": "app_api_crm_contact_update", "target": "app_core_response_error_response" @@ -69315,7 +69647,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1586", + "source_location": "L1590", "weight": 1.0, "source": "app_api_crm_contact_update", "target": "app_core_response_success_response" @@ -69326,7 +69658,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1583", + "source_location": "L1587", "weight": 1.0, "source": "app_api_crm_contact_update", "target": "app_core_tenant_context_get_tenant_no" @@ -69337,7 +69669,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1585", + "source_location": "L1589", "weight": 1.0, "source": "app_api_crm_contact_update", "target": "app_crud_crm_contact_update_contact" @@ -69348,7 +69680,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1584", + "source_location": "L1588", "weight": 1.0, "source": "app_api_crm_contact_update", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69358,7 +69690,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1573", + "source_location": "L1577", "weight": 1.0, "source": "app_api_crm_contact_update", "target": "app_schemas_crm_contact_contactupdatebody", @@ -69370,7 +69702,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1608", + "source_location": "L1612", "weight": 1.0, "source": "app_api_crm_contact_delete", "target": "app_core_response_error_response" @@ -69381,7 +69713,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1606", + "source_location": "L1610", "weight": 1.0, "source": "app_api_crm_contact_delete", "target": "app_core_response_success_response" @@ -69392,7 +69724,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1601", + "source_location": "L1605", "weight": 1.0, "source": "app_api_crm_contact_delete", "target": "app_core_tenant_context_get_tenant_no" @@ -69403,7 +69735,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1605", + "source_location": "L1609", "weight": 1.0, "source": "app_api_crm_contact_delete", "target": "app_crud_crm_contact_soft_delete_contact" @@ -69414,7 +69746,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1602", + "source_location": "L1606", "weight": 1.0, "source": "app_api_crm_contact_delete", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69424,7 +69756,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1594", + "source_location": "L1598", "weight": 1.0, "source": "app_api_crm_contact_delete", "target": "app_schemas_crm_contact_contactdeletebody", @@ -69436,7 +69768,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1623", + "source_location": "L1627", "weight": 1.0, "source": "app_api_crm_contact_set_primary", "target": "app_core_response_error_response" @@ -69447,7 +69779,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1628", + "source_location": "L1632", "weight": 1.0, "source": "app_api_crm_contact_set_primary", "target": "app_core_response_success_response" @@ -69458,7 +69790,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1625", + "source_location": "L1629", "weight": 1.0, "source": "app_api_crm_contact_set_primary", "target": "app_core_tenant_context_get_tenant_no" @@ -69469,7 +69801,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1627", + "source_location": "L1631", "weight": 1.0, "source": "app_api_crm_contact_set_primary", "target": "app_crud_crm_contact_set_primary_contact" @@ -69480,7 +69812,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1626", + "source_location": "L1630", "weight": 1.0, "source": "app_api_crm_contact_set_primary", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69491,7 +69823,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1660", + "source_location": "L1664", "weight": 1.0, "source": "app_api_crm_contact_export", "target": "app_core_response_error_response" @@ -69502,7 +69834,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1643", + "source_location": "L1647", "weight": 1.0, "source": "app_api_crm_contact_export", "target": "app_core_tenant_context_get_tenant_no" @@ -69513,7 +69845,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1645", + "source_location": "L1649", "weight": 1.0, "source": "app_api_crm_contact_export", "target": "app_crud_crm_contact_list_contacts" @@ -69524,7 +69856,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1644", + "source_location": "L1648", "weight": 1.0, "source": "app_api_crm_contact_export", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69534,7 +69866,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1636", + "source_location": "L1640", "weight": 1.0, "source": "app_api_crm_contact_export", "target": "app_schemas_crm_contact_contactlistbody", @@ -69546,7 +69878,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1651", + "source_location": "L1655", "weight": 1.0, "source": "app_api_crm_contact_export", "target": "app_utils_excel_export_export_rows_to_xlsx_response" @@ -69557,7 +69889,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1691", + "source_location": "L1695", "weight": 1.0, "source": "app_api_crm_contact_decision", "target": "app_core_response_error_response" @@ -69568,22 +69900,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1683", + "source_location": "L1687", "weight": 1.0, "source": "app_api_crm_contact_decision", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1673", - "weight": 1.0, - "source": "app_api_crm_contact_decision", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -69593,6 +69914,17 @@ "source_location": "L1677", "weight": 1.0, "source": "app_api_crm_contact_decision", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1681", + "weight": 1.0, + "source": "app_api_crm_contact_decision", "target": "app_crud_crm_contact_list_contacts" }, { @@ -69601,7 +69933,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1674", + "source_location": "L1678", "weight": 1.0, "source": "app_api_crm_contact_decision", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69611,7 +69943,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1666", + "source_location": "L1670", "weight": 1.0, "source": "app_api_crm_contact_decision", "target": "app_schemas_crm_contact_contactlistbody", @@ -69623,7 +69955,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1722", + "source_location": "L1726", "weight": 1.0, "source": "app_api_crm_contact_primary", "target": "app_core_response_error_response" @@ -69634,22 +69966,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1714", + "source_location": "L1718", "weight": 1.0, "source": "app_api_crm_contact_primary", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1704", - "weight": 1.0, - "source": "app_api_crm_contact_primary", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -69659,6 +69980,17 @@ "source_location": "L1708", "weight": 1.0, "source": "app_api_crm_contact_primary", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1712", + "weight": 1.0, + "source": "app_api_crm_contact_primary", "target": "app_crud_crm_contact_list_contacts" }, { @@ -69667,7 +69999,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1705", + "source_location": "L1709", "weight": 1.0, "source": "app_api_crm_contact_primary", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69677,7 +70009,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1697", + "source_location": "L1701", "weight": 1.0, "source": "app_api_crm_contact_primary", "target": "app_schemas_crm_contact_contactlistbody", @@ -69689,7 +70021,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1753", + "source_location": "L1757", "weight": 1.0, "source": "app_api_crm_contact_birthday", "target": "app_core_response_error_response" @@ -69700,22 +70032,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1745", + "source_location": "L1749", "weight": 1.0, "source": "app_api_crm_contact_birthday", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L1735", - "weight": 1.0, - "source": "app_api_crm_contact_birthday", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -69725,6 +70046,17 @@ "source_location": "L1739", "weight": 1.0, "source": "app_api_crm_contact_birthday", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L1743", + "weight": 1.0, + "source": "app_api_crm_contact_birthday", "target": "app_crud_crm_contact_list_contacts" }, { @@ -69733,7 +70065,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1736", + "source_location": "L1740", "weight": 1.0, "source": "app_api_crm_contact_birthday", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69743,7 +70075,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1728", + "source_location": "L1732", "weight": 1.0, "source": "app_api_crm_contact_birthday", "target": "app_schemas_crm_contact_contactlistbody", @@ -69755,7 +70087,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1788", + "source_location": "L1792", "weight": 1.0, "source": "app_api_crm_follow_list", "target": "app_core_response_error_response" @@ -69766,7 +70098,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1780", + "source_location": "L1784", "weight": 1.0, "source": "app_api_crm_follow_list", "target": "app_core_response_success_response" @@ -69777,7 +70109,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1769", + "source_location": "L1773", "weight": 1.0, "source": "app_api_crm_follow_list", "target": "app_core_tenant_context_get_tenant_no" @@ -69788,7 +70120,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1773", + "source_location": "L1777", "weight": 1.0, "source": "app_api_crm_follow_list", "target": "app_crud_crm_customer_follow_list_follows" @@ -69799,7 +70131,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1770", + "source_location": "L1774", "weight": 1.0, "source": "app_api_crm_follow_list", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69809,7 +70141,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1762", + "source_location": "L1766", "weight": 1.0, "source": "app_api_crm_follow_list", "target": "followlistbody", @@ -69820,7 +70152,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1901", + "source_location": "L1905", "weight": 1.0, "source": "app_api_crm_follow_export", "target": "followlistbody", @@ -69832,7 +70164,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1805", + "source_location": "L1809", "weight": 1.0, "source": "app_api_crm_follow_detail", "target": "app_core_response_error_response" @@ -69843,7 +70175,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1812", + "source_location": "L1816", "weight": 1.0, "source": "app_api_crm_follow_detail", "target": "app_core_response_success_response" @@ -69854,7 +70186,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1801", + "source_location": "L1805", "weight": 1.0, "source": "app_api_crm_follow_detail", "target": "app_core_tenant_context_get_tenant_no" @@ -69865,7 +70197,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1806", + "source_location": "L1810", "weight": 1.0, "source": "app_api_crm_follow_detail", "target": "app_crud_crm_customer_follow_get_follow" @@ -69876,7 +70208,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1802", + "source_location": "L1806", "weight": 1.0, "source": "app_api_crm_follow_detail", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69887,7 +70219,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1809", + "source_location": "L1813", "weight": 1.0, "source": "app_api_crm_follow_detail", "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope" @@ -69898,7 +70230,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1831", + "source_location": "L1835", "weight": 1.0, "source": "app_api_crm_follow_by_customer", "target": "app_core_response_error_response" @@ -69909,7 +70241,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1833", + "source_location": "L1837", "weight": 1.0, "source": "app_api_crm_follow_by_customer", "target": "app_core_response_success_response" @@ -69920,7 +70252,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1827", + "source_location": "L1831", "weight": 1.0, "source": "app_api_crm_follow_by_customer", "target": "app_core_tenant_context_get_tenant_no" @@ -69931,7 +70263,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1832", + "source_location": "L1836", "weight": 1.0, "source": "app_api_crm_follow_by_customer", "target": "app_crud_crm_customer_follow_list_follows_by_customer" @@ -69942,7 +70274,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1828", + "source_location": "L1832", "weight": 1.0, "source": "app_api_crm_follow_by_customer", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -69953,7 +70285,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1859", + "source_location": "L1863", "weight": 1.0, "source": "app_api_crm_follow_add", "target": "app_core_response_error_response" @@ -69964,7 +70296,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1857", + "source_location": "L1861", "weight": 1.0, "source": "app_api_crm_follow_add", "target": "app_core_response_success_response" @@ -69975,7 +70307,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1848", + "source_location": "L1852", "weight": 1.0, "source": "app_api_crm_follow_add", "target": "app_core_tenant_context_get_tenant_no" @@ -69986,7 +70318,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1852", + "source_location": "L1856", "weight": 1.0, "source": "app_api_crm_follow_add", "target": "app_crud_crm_customer_follow_create_follow" @@ -69997,7 +70329,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1849", + "source_location": "L1853", "weight": 1.0, "source": "app_api_crm_follow_add", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -70007,7 +70339,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1841", + "source_location": "L1845", "weight": 1.0, "source": "app_api_crm_follow_add", "target": "followcreatebody", @@ -70019,7 +70351,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1878", + "source_location": "L1882", "weight": 1.0, "source": "app_api_crm_follow_update", "target": "app_core_response_error_response" @@ -70030,7 +70362,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1876", + "source_location": "L1880", "weight": 1.0, "source": "app_api_crm_follow_update", "target": "app_core_response_success_response" @@ -70041,7 +70373,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1875", + "source_location": "L1879", "weight": 1.0, "source": "app_api_crm_follow_update", "target": "app_core_tenant_context_get_tenant_no" @@ -70052,7 +70384,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1875", + "source_location": "L1879", "weight": 1.0, "source": "app_api_crm_follow_update", "target": "app_crud_crm_customer_follow_update_follow" @@ -70063,7 +70395,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1875", + "source_location": "L1879", "weight": 1.0, "source": "app_api_crm_follow_update", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -70073,7 +70405,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1865", + "source_location": "L1869", "weight": 1.0, "source": "app_api_crm_follow_update", "target": "followupdatebody", @@ -70085,7 +70417,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1895", + "source_location": "L1899", "weight": 1.0, "source": "app_api_crm_follow_delete", "target": "app_core_response_error_response" @@ -70096,7 +70428,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1893", + "source_location": "L1897", "weight": 1.0, "source": "app_api_crm_follow_delete", "target": "app_core_response_success_response" @@ -70107,7 +70439,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1892", + "source_location": "L1896", "weight": 1.0, "source": "app_api_crm_follow_delete", "target": "app_core_tenant_context_get_tenant_no" @@ -70118,7 +70450,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1892", + "source_location": "L1896", "weight": 1.0, "source": "app_api_crm_follow_delete", "target": "app_crud_crm_customer_follow_soft_delete_follow" @@ -70129,7 +70461,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1892", + "source_location": "L1896", "weight": 1.0, "source": "app_api_crm_follow_delete", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -70139,7 +70471,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1884", + "source_location": "L1888", "weight": 1.0, "source": "app_api_crm_follow_delete", "target": "followdeletebody", @@ -70151,7 +70483,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1925", + "source_location": "L1929", "weight": 1.0, "source": "app_api_crm_follow_export", "target": "app_core_response_error_response" @@ -70162,7 +70494,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1908", + "source_location": "L1912", "weight": 1.0, "source": "app_api_crm_follow_export", "target": "app_core_tenant_context_get_tenant_no" @@ -70173,7 +70505,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1910", + "source_location": "L1914", "weight": 1.0, "source": "app_api_crm_follow_export", "target": "app_crud_crm_customer_follow_list_follows" @@ -70184,7 +70516,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1909", + "source_location": "L1913", "weight": 1.0, "source": "app_api_crm_follow_export", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -70195,7 +70527,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1916", + "source_location": "L1920", "weight": 1.0, "source": "app_api_crm_follow_export", "target": "app_utils_excel_export_export_rows_to_xlsx_response" @@ -70206,7 +70538,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1959", + "source_location": "L1963", "weight": 1.0, "source": "app_api_crm_pool_rule_list", "target": "app_core_response_error_response" @@ -70217,7 +70549,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1951", + "source_location": "L1955", "weight": 1.0, "source": "app_api_crm_pool_rule_list", "target": "app_core_response_success_response" @@ -70228,7 +70560,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1940", + "source_location": "L1944", "weight": 1.0, "source": "app_api_crm_pool_rule_list", "target": "app_core_tenant_context_get_tenant_no" @@ -70239,7 +70571,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1941", + "source_location": "L1945", "weight": 1.0, "source": "app_api_crm_pool_rule_list", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -70250,7 +70582,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1944", + "source_location": "L1948", "weight": 1.0, "source": "app_api_crm_pool_rule_list", "target": "app_crud_crm_pool_rule_list_pool_rules" @@ -70260,7 +70592,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1934", + "source_location": "L1938", "weight": 1.0, "source": "app_api_crm_pool_rule_list", "target": "app_schemas_crm_pool_rule_poolrulelistbody", @@ -70272,7 +70604,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1976", + "source_location": "L1980", "weight": 1.0, "source": "app_api_crm_pool_rule_detail", "target": "app_core_response_error_response" @@ -70283,7 +70615,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1978", + "source_location": "L1982", "weight": 1.0, "source": "app_api_crm_pool_rule_detail", "target": "app_core_response_success_response" @@ -70294,7 +70626,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1971", + "source_location": "L1975", "weight": 1.0, "source": "app_api_crm_pool_rule_detail", "target": "app_core_tenant_context_get_tenant_no" @@ -70305,7 +70637,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1972", + "source_location": "L1976", "weight": 1.0, "source": "app_api_crm_pool_rule_detail", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -70316,7 +70648,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1977", + "source_location": "L1981", "weight": 1.0, "source": "app_api_crm_pool_rule_detail", "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope" @@ -70327,7 +70659,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1974", + "source_location": "L1978", "weight": 1.0, "source": "app_api_crm_pool_rule_detail", "target": "app_crud_crm_pool_rule_get_pool_rule" @@ -70337,7 +70669,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1965", + "source_location": "L1969", "weight": 1.0, "source": "app_api_crm_pool_rule_detail", "target": "app_schemas_crm_pool_rule_poolruledetailbody", @@ -70349,7 +70681,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2007", + "source_location": "L2011", "weight": 1.0, "source": "app_api_crm_pool_rule_add", "target": "app_core_response_error_response" @@ -70360,7 +70692,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2005", + "source_location": "L2009", "weight": 1.0, "source": "app_api_crm_pool_rule_add", "target": "app_core_response_success_response" @@ -70371,7 +70703,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1992", + "source_location": "L1996", "weight": 1.0, "source": "app_api_crm_pool_rule_add", "target": "app_core_tenant_context_get_tenant_no" @@ -70382,7 +70714,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L1994", + "source_location": "L1998", "weight": 1.0, "source": "app_api_crm_pool_rule_add", "target": "app_crud_crm_pool_rule_create_pool_rule" @@ -70392,7 +70724,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L1986", + "source_location": "L1990", "weight": 1.0, "source": "app_api_crm_pool_rule_add", "target": "app_schemas_crm_pool_rule_poolruleaddbody", @@ -70404,7 +70736,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2036", + "source_location": "L2040", "weight": 1.0, "source": "app_api_crm_pool_rule_update", "target": "app_core_response_error_response" @@ -70415,7 +70747,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2034", + "source_location": "L2038", "weight": 1.0, "source": "app_api_crm_pool_rule_update", "target": "app_core_response_success_response" @@ -70426,7 +70758,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2019", + "source_location": "L2023", "weight": 1.0, "source": "app_api_crm_pool_rule_update", "target": "app_core_tenant_context_get_tenant_no" @@ -70437,7 +70769,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2020", + "source_location": "L2024", "weight": 1.0, "source": "app_api_crm_pool_rule_update", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -70448,7 +70780,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2022", + "source_location": "L2026", "weight": 1.0, "source": "app_api_crm_pool_rule_update", "target": "app_crud_crm_pool_rule_update_pool_rule" @@ -70458,7 +70790,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2013", + "source_location": "L2017", "weight": 1.0, "source": "app_api_crm_pool_rule_update", "target": "app_schemas_crm_pool_rule_poolruleupdatebody", @@ -70470,7 +70802,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2053", + "source_location": "L2057", "weight": 1.0, "source": "app_api_crm_pool_rule_delete", "target": "app_core_response_error_response" @@ -70481,7 +70813,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2051", + "source_location": "L2055", "weight": 1.0, "source": "app_api_crm_pool_rule_delete", "target": "app_core_response_success_response" @@ -70492,7 +70824,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2048", + "source_location": "L2052", "weight": 1.0, "source": "app_api_crm_pool_rule_delete", "target": "app_core_tenant_context_get_tenant_no" @@ -70503,7 +70835,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2049", + "source_location": "L2053", "weight": 1.0, "source": "app_api_crm_pool_rule_delete", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -70514,7 +70846,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2050", + "source_location": "L2054", "weight": 1.0, "source": "app_api_crm_pool_rule_delete", "target": "app_crud_crm_pool_rule_delete_pool_rules" @@ -70524,7 +70856,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2042", + "source_location": "L2046", "weight": 1.0, "source": "app_api_crm_pool_rule_delete", "target": "app_schemas_crm_pool_rule_poolruledeletebody", @@ -70536,7 +70868,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2073", + "source_location": "L2077", "weight": 1.0, "source": "app_api_crm_pool_rule_update_status", "target": "app_core_response_error_response" @@ -70547,7 +70879,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2071", + "source_location": "L2075", "weight": 1.0, "source": "app_api_crm_pool_rule_update_status", "target": "app_core_response_success_response" @@ -70558,7 +70890,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2065", + "source_location": "L2069", "weight": 1.0, "source": "app_api_crm_pool_rule_update_status", "target": "app_core_tenant_context_get_tenant_no" @@ -70569,7 +70901,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2066", + "source_location": "L2070", "weight": 1.0, "source": "app_api_crm_pool_rule_update_status", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -70580,7 +70912,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2068", + "source_location": "L2072", "weight": 1.0, "source": "app_api_crm_pool_rule_update_status", "target": "app_crud_crm_pool_rule_update_pool_rule_status" @@ -70590,7 +70922,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2059", + "source_location": "L2063", "weight": 1.0, "source": "app_api_crm_pool_rule_update_status", "target": "app_schemas_crm_pool_rule_poolruleupdatestatusbody", @@ -70602,7 +70934,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2089", + "source_location": "L2093", "weight": 1.0, "source": "app_api_crm_pool_rule_execute", "target": "app_core_response_error_response" @@ -70613,7 +70945,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2087", + "source_location": "L2091", "weight": 1.0, "source": "app_api_crm_pool_rule_execute", "target": "app_core_response_success_response" @@ -70624,7 +70956,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2085", + "source_location": "L2089", "weight": 1.0, "source": "app_api_crm_pool_rule_execute", "target": "app_core_tenant_context_get_tenant_no" @@ -70635,7 +70967,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2086", + "source_location": "L2090", "weight": 1.0, "source": "app_api_crm_pool_rule_execute", "target": "app_crud_crm_pool_rule_execute_pool_rules" @@ -70645,7 +70977,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2079", + "source_location": "L2083", "weight": 1.0, "source": "app_api_crm_pool_rule_execute", "target": "app_schemas_crm_pool_rule_poolruleexecutebody", @@ -70657,11 +70989,33 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2112", + "source_location": "L2116", "weight": 1.0, "source": "app_api_crm_statistics_overview", "target": "app_core_response_error_response" }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2114", + "weight": 1.0, + "source": "app_api_crm_statistics_overview", + "target": "app_core_response_success_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2109", + "weight": 1.0, + "source": "app_api_crm_statistics_overview", + "target": "app_core_tenant_context_get_tenant_no" + }, { "relation": "calls", "context": "call", @@ -70671,28 +71025,6 @@ "source_location": "L2110", "weight": 1.0, "source": "app_api_crm_statistics_overview", - "target": "app_core_response_success_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2105", - "weight": 1.0, - "source": "app_api_crm_statistics_overview", - "target": "app_core_tenant_context_get_tenant_no" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2106", - "weight": 1.0, - "source": "app_api_crm_statistics_overview", "target": "app_crud_crm_data_scope_helpers_crm_user_info" }, { @@ -70701,7 +71033,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2107", + "source_location": "L2111", "weight": 1.0, "source": "app_api_crm_statistics_overview", "target": "app_crud_crm_statistics_get_overview_statistics" @@ -70711,12 +71043,45 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2098", + "source_location": "L2102", "weight": 1.0, "source": "app_api_crm_statistics_overview", "target": "app_schemas_crm_statistics_statisticsbody", "confidence_score": 1.0 }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2134", + "weight": 1.0, + "source": "app_api_crm_statistics_source", + "target": "app_core_response_error_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2132", + "weight": 1.0, + "source": "app_api_crm_statistics_source", + "target": "app_core_response_success_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2129", + "weight": 1.0, + "source": "app_api_crm_statistics_source", + "target": "app_core_tenant_context_get_tenant_no" + }, { "relation": "calls", "context": "call", @@ -70726,39 +71091,6 @@ "source_location": "L2130", "weight": 1.0, "source": "app_api_crm_statistics_source", - "target": "app_core_response_error_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2128", - "weight": 1.0, - "source": "app_api_crm_statistics_source", - "target": "app_core_response_success_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2125", - "weight": 1.0, - "source": "app_api_crm_statistics_source", - "target": "app_core_tenant_context_get_tenant_no" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2126", - "weight": 1.0, - "source": "app_api_crm_statistics_source", "target": "app_crud_crm_data_scope_helpers_crm_user_info" }, { @@ -70767,7 +71099,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2127", + "source_location": "L2131", "weight": 1.0, "source": "app_api_crm_statistics_source", "target": "app_crud_crm_statistics_get_source_statistics" @@ -70777,12 +71109,45 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2118", + "source_location": "L2122", "weight": 1.0, "source": "app_api_crm_statistics_source", "target": "app_schemas_crm_statistics_statisticsbody", "confidence_score": 1.0 }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2152", + "weight": 1.0, + "source": "app_api_crm_statistics_level", + "target": "app_core_response_error_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2150", + "weight": 1.0, + "source": "app_api_crm_statistics_level", + "target": "app_core_response_success_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2147", + "weight": 1.0, + "source": "app_api_crm_statistics_level", + "target": "app_core_tenant_context_get_tenant_no" + }, { "relation": "calls", "context": "call", @@ -70792,39 +71157,6 @@ "source_location": "L2148", "weight": 1.0, "source": "app_api_crm_statistics_level", - "target": "app_core_response_error_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2146", - "weight": 1.0, - "source": "app_api_crm_statistics_level", - "target": "app_core_response_success_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2143", - "weight": 1.0, - "source": "app_api_crm_statistics_level", - "target": "app_core_tenant_context_get_tenant_no" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2144", - "weight": 1.0, - "source": "app_api_crm_statistics_level", "target": "app_crud_crm_data_scope_helpers_crm_user_info" }, { @@ -70833,7 +71165,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2145", + "source_location": "L2149", "weight": 1.0, "source": "app_api_crm_statistics_level", "target": "app_crud_crm_statistics_get_level_statistics" @@ -70843,12 +71175,45 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2136", + "source_location": "L2140", "weight": 1.0, "source": "app_api_crm_statistics_level", "target": "app_schemas_crm_statistics_statisticsbody", "confidence_score": 1.0 }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2170", + "weight": 1.0, + "source": "app_api_crm_statistics_industry", + "target": "app_core_response_error_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2168", + "weight": 1.0, + "source": "app_api_crm_statistics_industry", + "target": "app_core_response_success_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2165", + "weight": 1.0, + "source": "app_api_crm_statistics_industry", + "target": "app_core_tenant_context_get_tenant_no" + }, { "relation": "calls", "context": "call", @@ -70858,39 +71223,6 @@ "source_location": "L2166", "weight": 1.0, "source": "app_api_crm_statistics_industry", - "target": "app_core_response_error_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2164", - "weight": 1.0, - "source": "app_api_crm_statistics_industry", - "target": "app_core_response_success_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2161", - "weight": 1.0, - "source": "app_api_crm_statistics_industry", - "target": "app_core_tenant_context_get_tenant_no" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2162", - "weight": 1.0, - "source": "app_api_crm_statistics_industry", "target": "app_crud_crm_data_scope_helpers_crm_user_info" }, { @@ -70899,7 +71231,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2163", + "source_location": "L2167", "weight": 1.0, "source": "app_api_crm_statistics_industry", "target": "app_crud_crm_statistics_get_industry_statistics" @@ -70909,7 +71241,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2154", + "source_location": "L2158", "weight": 1.0, "source": "app_api_crm_statistics_industry", "target": "app_schemas_crm_statistics_statisticsbody", @@ -70921,7 +71253,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2189", + "source_location": "L2193", "weight": 1.0, "source": "app_api_crm_statistics_trend", "target": "app_core_response_error_response" @@ -70932,7 +71264,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2187", + "source_location": "L2191", "weight": 1.0, "source": "app_api_crm_statistics_trend", "target": "app_core_response_success_response" @@ -70943,7 +71275,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2179", + "source_location": "L2183", "weight": 1.0, "source": "app_api_crm_statistics_trend", "target": "app_core_tenant_context_get_tenant_no" @@ -70954,7 +71286,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2180", + "source_location": "L2184", "weight": 1.0, "source": "app_api_crm_statistics_trend", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -70965,7 +71297,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2181", + "source_location": "L2185", "weight": 1.0, "source": "app_api_crm_statistics_trend", "target": "app_crud_crm_statistics_get_trend_statistics" @@ -70975,12 +71307,45 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2172", + "source_location": "L2176", "weight": 1.0, "source": "app_api_crm_statistics_trend", "target": "app_schemas_crm_statistics_statisticsbody", "confidence_score": 1.0 }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2211", + "weight": 1.0, + "source": "app_api_crm_statistics_owner", + "target": "app_core_response_error_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2209", + "weight": 1.0, + "source": "app_api_crm_statistics_owner", + "target": "app_core_response_success_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2206", + "weight": 1.0, + "source": "app_api_crm_statistics_owner", + "target": "app_core_tenant_context_get_tenant_no" + }, { "relation": "calls", "context": "call", @@ -70990,39 +71355,6 @@ "source_location": "L2207", "weight": 1.0, "source": "app_api_crm_statistics_owner", - "target": "app_core_response_error_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2205", - "weight": 1.0, - "source": "app_api_crm_statistics_owner", - "target": "app_core_response_success_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2202", - "weight": 1.0, - "source": "app_api_crm_statistics_owner", - "target": "app_core_tenant_context_get_tenant_no" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2203", - "weight": 1.0, - "source": "app_api_crm_statistics_owner", "target": "app_crud_crm_data_scope_helpers_crm_user_info" }, { @@ -71031,7 +71363,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2204", + "source_location": "L2208", "weight": 1.0, "source": "app_api_crm_statistics_owner", "target": "app_crud_crm_statistics_get_owner_statistics" @@ -71041,7 +71373,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2195", + "source_location": "L2199", "weight": 1.0, "source": "app_api_crm_statistics_owner", "target": "app_schemas_crm_statistics_statisticsbody", @@ -71053,7 +71385,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2230", + "source_location": "L2234", "weight": 1.0, "source": "app_api_crm_statistics_follow", "target": "app_core_response_error_response" @@ -71064,7 +71396,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2228", + "source_location": "L2232", "weight": 1.0, "source": "app_api_crm_statistics_follow", "target": "app_core_response_success_response" @@ -71075,7 +71407,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2220", + "source_location": "L2224", "weight": 1.0, "source": "app_api_crm_statistics_follow", "target": "app_core_tenant_context_get_tenant_no" @@ -71086,7 +71418,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2221", + "source_location": "L2225", "weight": 1.0, "source": "app_api_crm_statistics_follow", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -71096,7 +71428,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2213", + "source_location": "L2217", "weight": 1.0, "source": "app_api_crm_statistics_follow", "target": "app_schemas_crm_statistics_statisticsbody", @@ -71107,7 +71439,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2238", + "source_location": "L2242", "weight": 1.0, "source": "app_api_crm_opp_list_kwargs", "target": "app_schemas_crm_opportunity_opportunitylistbody", @@ -71118,7 +71450,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3081", + "source_location": "L3085", "weight": 1.0, "source": "app_api_crm_opportunity_export", "target": "app_api_crm_opp_list_kwargs", @@ -71129,7 +71461,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2628", + "source_location": "L2632", "weight": 1.0, "source": "app_api_crm_opportunity_kanban", "target": "app_api_crm_opp_list_kwargs", @@ -71140,7 +71472,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2283", + "source_location": "L2287", "weight": 1.0, "source": "app_api_crm_opportunity_list", "target": "app_api_crm_opp_list_kwargs", @@ -71151,7 +71483,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2316", + "source_location": "L2320", "weight": 1.0, "source": "app_api_crm_opportunity_mine_list", "target": "app_api_crm_opp_list_kwargs", @@ -71163,7 +71495,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2294", + "source_location": "L2298", "weight": 1.0, "source": "app_api_crm_opportunity_list", "target": "app_core_response_error_response" @@ -71174,33 +71506,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2285", + "source_location": "L2289", "weight": 1.0, "source": "app_api_crm_opportunity_list", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2274", - "weight": 1.0, - "source": "app_api_crm_opportunity_list", - "target": "app_core_tenant_context_get_tenant_no" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2275", - "weight": 1.0, - "source": "app_api_crm_opportunity_list", - "target": "app_crud_crm_data_scope_helpers_crm_user_info" - }, { "relation": "calls", "context": "call", @@ -71210,6 +71520,28 @@ "source_location": "L2278", "weight": 1.0, "source": "app_api_crm_opportunity_list", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2279", + "weight": 1.0, + "source": "app_api_crm_opportunity_list", + "target": "app_crud_crm_data_scope_helpers_crm_user_info" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2282", + "weight": 1.0, + "source": "app_api_crm_opportunity_list", "target": "app_crud_crm_opportunity_list_opportunities" }, { @@ -71217,7 +71549,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2267", + "source_location": "L2271", "weight": 1.0, "source": "app_api_crm_opportunity_list", "target": "app_schemas_crm_opportunity_opportunitylistbody", @@ -71229,7 +71561,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2327", + "source_location": "L2331", "weight": 1.0, "source": "app_api_crm_opportunity_mine_list", "target": "app_core_response_error_response" @@ -71240,7 +71572,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2318", + "source_location": "L2322", "weight": 1.0, "source": "app_api_crm_opportunity_mine_list", "target": "app_core_response_success_response" @@ -71251,7 +71583,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2307", + "source_location": "L2311", "weight": 1.0, "source": "app_api_crm_opportunity_mine_list", "target": "app_core_tenant_context_get_tenant_no" @@ -71262,7 +71594,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2308", + "source_location": "L2312", "weight": 1.0, "source": "app_api_crm_opportunity_mine_list", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -71273,7 +71605,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2311", + "source_location": "L2315", "weight": 1.0, "source": "app_api_crm_opportunity_mine_list", "target": "app_crud_crm_opportunity_list_opportunities" @@ -71283,7 +71615,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2300", + "source_location": "L2304", "weight": 1.0, "source": "app_api_crm_opportunity_mine_list", "target": "app_schemas_crm_opportunity_opportunitylistbody", @@ -71295,7 +71627,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2350", + "source_location": "L2354", "weight": 1.0, "source": "app_api_crm_opportunity_detail", "target": "app_core_response_error_response" @@ -71306,7 +71638,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2355", + "source_location": "L2359", "weight": 1.0, "source": "app_api_crm_opportunity_detail", "target": "app_core_response_success_response" @@ -71317,7 +71649,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2340", + "source_location": "L2344", "weight": 1.0, "source": "app_api_crm_opportunity_detail", "target": "app_core_tenant_context_get_tenant_no" @@ -71328,7 +71660,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2341", + "source_location": "L2345", "weight": 1.0, "source": "app_api_crm_opportunity_detail", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -71339,7 +71671,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2351", + "source_location": "L2355", "weight": 1.0, "source": "app_api_crm_opportunity_detail", "target": "app_crud_crm_data_scope_helpers_ensure_crm_owner_row_in_scope" @@ -71350,7 +71682,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2352", + "source_location": "L2356", "weight": 1.0, "source": "app_api_crm_opportunity_detail", "target": "app_crud_crm_opportunity_get_opportunity" @@ -71360,7 +71692,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2333", + "source_location": "L2337", "weight": 1.0, "source": "app_api_crm_opportunity_detail", "target": "app_schemas_crm_opportunity_opportunitydetailbody", @@ -71372,7 +71704,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2381", + "source_location": "L2385", "weight": 1.0, "source": "app_api_crm_opportunity_add", "target": "app_core_response_error_response" @@ -71383,7 +71715,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2379", + "source_location": "L2383", "weight": 1.0, "source": "app_api_crm_opportunity_add", "target": "app_core_response_success_response" @@ -71394,7 +71726,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2370", + "source_location": "L2374", "weight": 1.0, "source": "app_api_crm_opportunity_add", "target": "app_core_tenant_context_get_tenant_no" @@ -71405,7 +71737,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2371", + "source_location": "L2375", "weight": 1.0, "source": "app_api_crm_opportunity_add", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -71416,7 +71748,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2373", + "source_location": "L2377", "weight": 1.0, "source": "app_api_crm_opportunity_add", "target": "app_crud_crm_opportunity_create_opportunity" @@ -71426,7 +71758,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2363", + "source_location": "L2367", "weight": 1.0, "source": "app_api_crm_opportunity_add", "target": "app_schemas_crm_opportunity_opportunitycreatebody", @@ -71438,7 +71770,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2402", + "source_location": "L2406", "weight": 1.0, "source": "app_api_crm_opportunity_update", "target": "app_core_response_error_response" @@ -71449,7 +71781,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2400", + "source_location": "L2404", "weight": 1.0, "source": "app_api_crm_opportunity_update", "target": "app_core_response_success_response" @@ -71460,7 +71792,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2394", + "source_location": "L2398", "weight": 1.0, "source": "app_api_crm_opportunity_update", "target": "app_core_tenant_context_get_tenant_no" @@ -71471,7 +71803,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2395", + "source_location": "L2399", "weight": 1.0, "source": "app_api_crm_opportunity_update", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -71482,7 +71814,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2399", + "source_location": "L2403", "weight": 1.0, "source": "app_api_crm_opportunity_update", "target": "app_crud_crm_opportunity_update_opportunity" @@ -71492,7 +71824,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2387", + "source_location": "L2391", "weight": 1.0, "source": "app_api_crm_opportunity_update", "target": "app_schemas_crm_opportunity_opportunityupdatebody", @@ -71504,7 +71836,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2423", + "source_location": "L2427", "weight": 1.0, "source": "app_api_crm_opportunity_delete", "target": "app_core_response_error_response" @@ -71515,7 +71847,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2421", + "source_location": "L2425", "weight": 1.0, "source": "app_api_crm_opportunity_delete", "target": "app_core_response_success_response" @@ -71526,7 +71858,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2415", + "source_location": "L2419", "weight": 1.0, "source": "app_api_crm_opportunity_delete", "target": "app_core_tenant_context_get_tenant_no" @@ -71537,7 +71869,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2416", + "source_location": "L2420", "weight": 1.0, "source": "app_api_crm_opportunity_delete", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -71548,7 +71880,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2418", + "source_location": "L2422", "weight": 1.0, "source": "app_api_crm_opportunity_delete", "target": "app_crud_crm_opportunity_soft_delete_opportunities" @@ -71558,7 +71890,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2408", + "source_location": "L2412", "weight": 1.0, "source": "app_api_crm_opportunity_delete", "target": "app_schemas_crm_opportunity_opportunitydeletebody", @@ -71570,7 +71902,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2450", + "source_location": "L2454", "weight": 1.0, "source": "app_api_crm_opportunity_assign", "target": "app_core_response_error_response" @@ -71581,7 +71913,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2448", + "source_location": "L2452", "weight": 1.0, "source": "app_api_crm_opportunity_assign", "target": "app_core_response_success_response" @@ -71592,7 +71924,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2436", + "source_location": "L2440", "weight": 1.0, "source": "app_api_crm_opportunity_assign", "target": "app_core_tenant_context_get_tenant_no" @@ -71603,7 +71935,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2437", + "source_location": "L2441", "weight": 1.0, "source": "app_api_crm_opportunity_assign", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -71614,7 +71946,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2439", + "source_location": "L2443", "weight": 1.0, "source": "app_api_crm_opportunity_assign", "target": "app_crud_crm_opportunity_assign_opportunities" @@ -71624,7 +71956,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2429", + "source_location": "L2433", "weight": 1.0, "source": "app_api_crm_opportunity_assign", "target": "app_schemas_crm_opportunity_opportunityassignbody", @@ -71636,7 +71968,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2480", + "source_location": "L2484", "weight": 1.0, "source": "app_api_crm_opportunity_change_stage", "target": "app_core_response_error_response" @@ -71647,7 +71979,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2478", + "source_location": "L2482", "weight": 1.0, "source": "app_api_crm_opportunity_change_stage", "target": "app_core_response_success_response" @@ -71658,7 +71990,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2463", + "source_location": "L2467", "weight": 1.0, "source": "app_api_crm_opportunity_change_stage", "target": "app_core_tenant_context_get_tenant_no" @@ -71669,7 +72001,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2464", + "source_location": "L2468", "weight": 1.0, "source": "app_api_crm_opportunity_change_stage", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -71680,7 +72012,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2466", + "source_location": "L2470", "weight": 1.0, "source": "app_api_crm_opportunity_change_stage", "target": "app_crud_crm_opportunity_change_stage" @@ -71690,7 +72022,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2456", + "source_location": "L2460", "weight": 1.0, "source": "app_api_crm_opportunity_change_stage", "target": "app_schemas_crm_opportunity_opportunitychangestagebody", @@ -71702,7 +72034,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2508", + "source_location": "L2512", "weight": 1.0, "source": "app_api_crm_opportunity_mark_won", "target": "app_core_response_error_response" @@ -71713,7 +72045,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2506", + "source_location": "L2510", "weight": 1.0, "source": "app_api_crm_opportunity_mark_won", "target": "app_core_response_success_response" @@ -71724,7 +72056,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2493", + "source_location": "L2497", "weight": 1.0, "source": "app_api_crm_opportunity_mark_won", "target": "app_core_tenant_context_get_tenant_no" @@ -71735,7 +72067,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2494", + "source_location": "L2498", "weight": 1.0, "source": "app_api_crm_opportunity_mark_won", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -71746,7 +72078,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2496", + "source_location": "L2500", "weight": 1.0, "source": "app_api_crm_opportunity_mark_won", "target": "app_crud_crm_opportunity_mark_won" @@ -71756,7 +72088,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2486", + "source_location": "L2490", "weight": 1.0, "source": "app_api_crm_opportunity_mark_won", "target": "app_schemas_crm_opportunity_opportunitymarkwonbody", @@ -71768,7 +72100,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2537", + "source_location": "L2541", "weight": 1.0, "source": "app_api_crm_opportunity_mark_lost", "target": "app_core_response_error_response" @@ -71779,7 +72111,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2535", + "source_location": "L2539", "weight": 1.0, "source": "app_api_crm_opportunity_mark_lost", "target": "app_core_response_success_response" @@ -71790,7 +72122,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2521", + "source_location": "L2525", "weight": 1.0, "source": "app_api_crm_opportunity_mark_lost", "target": "app_core_tenant_context_get_tenant_no" @@ -71801,7 +72133,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2522", + "source_location": "L2526", "weight": 1.0, "source": "app_api_crm_opportunity_mark_lost", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -71812,7 +72144,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2524", + "source_location": "L2528", "weight": 1.0, "source": "app_api_crm_opportunity_mark_lost", "target": "app_crud_crm_opportunity_mark_lost" @@ -71822,7 +72154,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2514", + "source_location": "L2518", "weight": 1.0, "source": "app_api_crm_opportunity_mark_lost", "target": "app_schemas_crm_opportunity_opportunitymarklostbody", @@ -71834,7 +72166,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2566", + "source_location": "L2570", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_stage", "target": "app_core_response_error_response" @@ -71845,7 +72177,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2564", + "source_location": "L2568", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_stage", "target": "app_core_response_success_response" @@ -71856,7 +72188,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2550", + "source_location": "L2554", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_stage", "target": "app_core_tenant_context_get_tenant_no" @@ -71867,7 +72199,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2551", + "source_location": "L2555", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_stage", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -71878,7 +72210,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2553", + "source_location": "L2557", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_stage", "target": "app_crud_crm_opportunity_batch_update_stage" @@ -71888,7 +72220,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2543", + "source_location": "L2547", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_stage", "target": "app_schemas_crm_opportunity_opportunitybatchupdatestagebody", @@ -71900,7 +72232,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2594", + "source_location": "L2598", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_expect_date", "target": "app_core_response_error_response" @@ -71911,7 +72243,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2592", + "source_location": "L2596", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_expect_date", "target": "app_core_response_success_response" @@ -71922,7 +72254,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2579", + "source_location": "L2583", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_expect_date", "target": "app_core_tenant_context_get_tenant_no" @@ -71933,7 +72265,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2580", + "source_location": "L2584", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_expect_date", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -71944,7 +72276,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2582", + "source_location": "L2586", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_expect_date", "target": "app_crud_crm_opportunity_batch_update_expect_date" @@ -71954,7 +72286,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2572", + "source_location": "L2576", "weight": 1.0, "source": "app_api_crm_opportunity_batch_update_expect_date", "target": "app_schemas_crm_opportunity_opportunitybatchupdateexpectdatebody", @@ -71966,7 +72298,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2612", + "source_location": "L2616", "weight": 1.0, "source": "app_api_crm_opportunity_stage_log_list", "target": "app_core_response_error_response" @@ -71977,7 +72309,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2610", + "source_location": "L2614", "weight": 1.0, "source": "app_api_crm_opportunity_stage_log_list", "target": "app_core_response_success_response" @@ -71988,7 +72320,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2607", + "source_location": "L2611", "weight": 1.0, "source": "app_api_crm_opportunity_stage_log_list", "target": "app_core_tenant_context_get_tenant_no" @@ -71999,7 +72331,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2608", + "source_location": "L2612", "weight": 1.0, "source": "app_api_crm_opportunity_stage_log_list", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72010,7 +72342,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2609", + "source_location": "L2613", "weight": 1.0, "source": "app_api_crm_opportunity_stage_log_list", "target": "app_crud_crm_opportunity_get_stage_log_list" @@ -72020,7 +72352,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2600", + "source_location": "L2604", "weight": 1.0, "source": "app_api_crm_opportunity_stage_log_list", "target": "app_schemas_crm_opportunity_opportunitystageloglistbody", @@ -72032,7 +72364,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2643", + "source_location": "L2647", "weight": 1.0, "source": "app_api_crm_opportunity_kanban", "target": "app_core_response_error_response" @@ -72043,7 +72375,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2641", + "source_location": "L2645", "weight": 1.0, "source": "app_api_crm_opportunity_kanban", "target": "app_core_response_success_response" @@ -72054,7 +72386,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2625", + "source_location": "L2629", "weight": 1.0, "source": "app_api_crm_opportunity_kanban", "target": "app_core_tenant_context_get_tenant_no" @@ -72065,7 +72397,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2626", + "source_location": "L2630", "weight": 1.0, "source": "app_api_crm_opportunity_kanban", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72076,7 +72408,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2629", + "source_location": "L2633", "weight": 1.0, "source": "app_api_crm_opportunity_kanban", "target": "app_crud_crm_opportunity_get_kanban_data" @@ -72086,7 +72418,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2618", + "source_location": "L2622", "weight": 1.0, "source": "app_api_crm_opportunity_kanban", "target": "app_schemas_crm_opportunity_opportunitykanbanbody", @@ -72098,7 +72430,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2669", + "source_location": "L2673", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_overview", "target": "app_core_response_error_response" @@ -72109,7 +72441,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2667", + "source_location": "L2671", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_overview", "target": "app_core_response_success_response" @@ -72120,7 +72452,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2656", + "source_location": "L2660", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_overview", "target": "app_core_tenant_context_get_tenant_no" @@ -72131,7 +72463,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2657", + "source_location": "L2661", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_overview", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72142,7 +72474,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2659", + "source_location": "L2663", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_overview", "target": "app_crud_crm_opportunity_get_statistics_overview" @@ -72152,12 +72484,34 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2649", + "source_location": "L2653", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_overview", "target": "app_schemas_crm_opportunity_opportunitystatisticsbody", "confidence_score": 1.0 }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2689", + "weight": 1.0, + "source": "app_api_crm_opportunity_statistics_stage", + "target": "app_core_response_error_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L2687", + "weight": 1.0, + "source": "app_api_crm_opportunity_statistics_stage", + "target": "app_core_response_success_response" + }, { "relation": "calls", "context": "call", @@ -72167,28 +72521,6 @@ "source_location": "L2685", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_stage", - "target": "app_core_response_error_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2683", - "weight": 1.0, - "source": "app_api_crm_opportunity_statistics_stage", - "target": "app_core_response_success_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L2681", - "weight": 1.0, - "source": "app_api_crm_opportunity_statistics_stage", "target": "app_core_tenant_context_get_tenant_no" }, { @@ -72197,7 +72529,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2682", + "source_location": "L2686", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_stage", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72208,7 +72540,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2683", + "source_location": "L2687", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_stage", "target": "app_crud_crm_opportunity_get_statistics_by_stage" @@ -72219,7 +72551,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2711", + "source_location": "L2715", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_win_rate", "target": "app_core_response_error_response" @@ -72230,7 +72562,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2709", + "source_location": "L2713", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_win_rate", "target": "app_core_response_success_response" @@ -72241,7 +72573,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2698", + "source_location": "L2702", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_win_rate", "target": "app_core_tenant_context_get_tenant_no" @@ -72252,7 +72584,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2699", + "source_location": "L2703", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_win_rate", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72263,7 +72595,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2701", + "source_location": "L2705", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_win_rate", "target": "app_crud_crm_opportunity_get_win_rate_statistics" @@ -72273,7 +72605,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2691", + "source_location": "L2695", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_win_rate", "target": "app_schemas_crm_opportunity_opportunitystatisticsbody", @@ -72285,7 +72617,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2736", + "source_location": "L2740", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_owner", "target": "app_core_response_error_response" @@ -72296,7 +72628,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2734", + "source_location": "L2738", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_owner", "target": "app_core_response_success_response" @@ -72307,7 +72639,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2724", + "source_location": "L2728", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_owner", "target": "app_core_tenant_context_get_tenant_no" @@ -72318,7 +72650,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2725", + "source_location": "L2729", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_owner", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72329,7 +72661,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2727", + "source_location": "L2731", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_owner", "target": "app_crud_crm_opportunity_get_statistics_by_owner" @@ -72339,7 +72671,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2717", + "source_location": "L2721", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_owner", "target": "app_schemas_crm_opportunity_opportunitystatisticsbody", @@ -72351,7 +72683,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2762", + "source_location": "L2766", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_funnel", "target": "app_core_response_error_response" @@ -72362,7 +72694,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2760", + "source_location": "L2764", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_funnel", "target": "app_core_response_success_response" @@ -72373,7 +72705,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2749", + "source_location": "L2753", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_funnel", "target": "app_core_tenant_context_get_tenant_no" @@ -72384,7 +72716,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2750", + "source_location": "L2754", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_funnel", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72395,7 +72727,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2752", + "source_location": "L2756", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_funnel", "target": "app_crud_crm_opportunity_get_sales_funnel" @@ -72405,7 +72737,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2742", + "source_location": "L2746", "weight": 1.0, "source": "app_api_crm_opportunity_statistics_funnel", "target": "app_schemas_crm_opportunity_opportunitystatisticsbody", @@ -72417,7 +72749,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2794", + "source_location": "L2798", "weight": 1.0, "source": "app_api_crm_opportunity_follow_list", "target": "app_core_response_error_response" @@ -72428,7 +72760,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2785", + "source_location": "L2789", "weight": 1.0, "source": "app_api_crm_opportunity_follow_list", "target": "app_core_response_success_response" @@ -72439,7 +72771,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2775", + "source_location": "L2779", "weight": 1.0, "source": "app_api_crm_opportunity_follow_list", "target": "app_core_tenant_context_get_tenant_no" @@ -72450,7 +72782,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2776", + "source_location": "L2780", "weight": 1.0, "source": "app_api_crm_opportunity_follow_list", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72461,7 +72793,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2777", + "source_location": "L2781", "weight": 1.0, "source": "app_api_crm_opportunity_follow_list", "target": "app_crud_crm_opportunity_follow_list_opportunity_follows" @@ -72471,7 +72803,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2768", + "source_location": "L2772", "weight": 1.0, "source": "app_api_crm_opportunity_follow_list", "target": "app_schemas_crm_opportunity_opportunityfollowlistbody", @@ -72483,7 +72815,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2819", + "source_location": "L2823", "weight": 1.0, "source": "app_api_crm_opportunity_follow_add", "target": "app_core_response_error_response" @@ -72494,7 +72826,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2817", + "source_location": "L2821", "weight": 1.0, "source": "app_api_crm_opportunity_follow_add", "target": "app_core_response_success_response" @@ -72505,7 +72837,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2807", + "source_location": "L2811", "weight": 1.0, "source": "app_api_crm_opportunity_follow_add", "target": "app_core_tenant_context_get_tenant_no" @@ -72516,7 +72848,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2808", + "source_location": "L2812", "weight": 1.0, "source": "app_api_crm_opportunity_follow_add", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72527,7 +72859,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2810", + "source_location": "L2814", "weight": 1.0, "source": "app_api_crm_opportunity_follow_add", "target": "app_crud_crm_opportunity_follow_create_opportunity_follow" @@ -72537,7 +72869,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2800", + "source_location": "L2804", "weight": 1.0, "source": "app_api_crm_opportunity_follow_add", "target": "app_schemas_crm_opportunity_opportunityfollowcreatebody", @@ -72549,7 +72881,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2842", + "source_location": "L2846", "weight": 1.0, "source": "app_api_crm_opportunity_follow_update", "target": "app_core_response_error_response" @@ -72560,7 +72892,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2840", + "source_location": "L2844", "weight": 1.0, "source": "app_api_crm_opportunity_follow_update", "target": "app_core_response_success_response" @@ -72571,7 +72903,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2832", + "source_location": "L2836", "weight": 1.0, "source": "app_api_crm_opportunity_follow_update", "target": "app_core_tenant_context_get_tenant_no" @@ -72582,7 +72914,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2833", + "source_location": "L2837", "weight": 1.0, "source": "app_api_crm_opportunity_follow_update", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72593,7 +72925,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2837", + "source_location": "L2841", "weight": 1.0, "source": "app_api_crm_opportunity_follow_update", "target": "app_crud_crm_opportunity_follow_update_opportunity_follow" @@ -72603,7 +72935,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2825", + "source_location": "L2829", "weight": 1.0, "source": "app_api_crm_opportunity_follow_update", "target": "app_schemas_crm_opportunity_opportunityfollowupdatebody", @@ -72615,7 +72947,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2866", + "source_location": "L2870", "weight": 1.0, "source": "app_api_crm_opportunity_follow_delete", "target": "app_core_response_error_response" @@ -72626,7 +72958,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2864", + "source_location": "L2868", "weight": 1.0, "source": "app_api_crm_opportunity_follow_delete", "target": "app_core_response_success_response" @@ -72637,7 +72969,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2855", + "source_location": "L2859", "weight": 1.0, "source": "app_api_crm_opportunity_follow_delete", "target": "app_core_tenant_context_get_tenant_no" @@ -72648,7 +72980,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2856", + "source_location": "L2860", "weight": 1.0, "source": "app_api_crm_opportunity_follow_delete", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72659,7 +72991,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2860", + "source_location": "L2864", "weight": 1.0, "source": "app_api_crm_opportunity_follow_delete", "target": "app_crud_crm_opportunity_follow_soft_delete_opportunity_follow" @@ -72669,7 +73001,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2848", + "source_location": "L2852", "weight": 1.0, "source": "app_api_crm_opportunity_follow_delete", "target": "app_schemas_crm_opportunity_opportunityfollowdeletebody", @@ -72681,7 +73013,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2883", + "source_location": "L2887", "weight": 1.0, "source": "app_api_crm_opportunity_follow_detail", "target": "app_core_response_error_response" @@ -72692,7 +73024,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2884", + "source_location": "L2888", "weight": 1.0, "source": "app_api_crm_opportunity_follow_detail", "target": "app_core_response_success_response" @@ -72703,7 +73035,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2879", + "source_location": "L2883", "weight": 1.0, "source": "app_api_crm_opportunity_follow_detail", "target": "app_core_tenant_context_get_tenant_no" @@ -72714,7 +73046,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2880", + "source_location": "L2884", "weight": 1.0, "source": "app_api_crm_opportunity_follow_detail", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72725,7 +73057,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2881", + "source_location": "L2885", "weight": 1.0, "source": "app_api_crm_opportunity_follow_detail", "target": "app_crud_crm_opportunity_follow_get_opportunity_follow" @@ -72735,7 +73067,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2872", + "source_location": "L2876", "weight": 1.0, "source": "app_api_crm_opportunity_follow_detail", "target": "app_schemas_crm_opportunity_opportunityfollowdetailbody", @@ -72747,7 +73079,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2919", + "source_location": "L2923", "weight": 1.0, "source": "app_api_crm_opportunity_product_list", "target": "app_core_response_error_response" @@ -72758,7 +73090,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2910", + "source_location": "L2914", "weight": 1.0, "source": "app_api_crm_opportunity_product_list", "target": "app_core_response_success_response" @@ -72769,7 +73101,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2899", + "source_location": "L2903", "weight": 1.0, "source": "app_api_crm_opportunity_product_list", "target": "app_core_tenant_context_get_tenant_no" @@ -72780,7 +73112,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2900", + "source_location": "L2904", "weight": 1.0, "source": "app_api_crm_opportunity_product_list", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72791,7 +73123,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2901", + "source_location": "L2905", "weight": 1.0, "source": "app_api_crm_opportunity_product_list", "target": "app_crud_crm_opportunity_product_list_opportunity_products" @@ -72801,7 +73133,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2892", + "source_location": "L2896", "weight": 1.0, "source": "app_api_crm_opportunity_product_list", "target": "app_schemas_crm_opportunity_opportunityproductlistbody", @@ -72813,7 +73145,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2936", + "source_location": "L2940", "weight": 1.0, "source": "app_api_crm_opportunity_product_list_by_opportunity", "target": "app_core_response_error_response" @@ -72824,7 +73156,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2938", + "source_location": "L2942", "weight": 1.0, "source": "app_api_crm_opportunity_product_list_by_opportunity", "target": "app_core_response_success_response" @@ -72835,7 +73167,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2932", + "source_location": "L2936", "weight": 1.0, "source": "app_api_crm_opportunity_product_list_by_opportunity", "target": "app_core_tenant_context_get_tenant_no" @@ -72846,7 +73178,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2933", + "source_location": "L2937", "weight": 1.0, "source": "app_api_crm_opportunity_product_list_by_opportunity", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72857,7 +73189,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2937", + "source_location": "L2941", "weight": 1.0, "source": "app_api_crm_opportunity_product_list_by_opportunity", "target": "app_crud_crm_opportunity_product_list_products_by_opportunity" @@ -72867,7 +73199,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2925", + "source_location": "L2929", "weight": 1.0, "source": "app_api_crm_opportunity_product_list_by_opportunity", "target": "app_schemas_crm_opportunity_opportunityproductbyopportunitybody", @@ -72879,7 +73211,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2965", + "source_location": "L2969", "weight": 1.0, "source": "app_api_crm_opportunity_product_add", "target": "app_core_response_error_response" @@ -72890,7 +73222,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2963", + "source_location": "L2967", "weight": 1.0, "source": "app_api_crm_opportunity_product_add", "target": "app_core_response_success_response" @@ -72901,7 +73233,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2953", + "source_location": "L2957", "weight": 1.0, "source": "app_api_crm_opportunity_product_add", "target": "app_core_tenant_context_get_tenant_no" @@ -72912,7 +73244,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2954", + "source_location": "L2958", "weight": 1.0, "source": "app_api_crm_opportunity_product_add", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72923,7 +73255,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2956", + "source_location": "L2960", "weight": 1.0, "source": "app_api_crm_opportunity_product_add", "target": "app_crud_crm_opportunity_product_create_opportunity_product" @@ -72933,7 +73265,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2946", + "source_location": "L2950", "weight": 1.0, "source": "app_api_crm_opportunity_product_add", "target": "app_schemas_crm_opportunity_opportunityproductcreatebody", @@ -72945,7 +73277,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2995", + "source_location": "L2999", "weight": 1.0, "source": "app_api_crm_opportunity_product_batch_add", "target": "app_core_response_error_response" @@ -72956,7 +73288,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2993", + "source_location": "L2997", "weight": 1.0, "source": "app_api_crm_opportunity_product_batch_add", "target": "app_core_response_success_response" @@ -72967,7 +73299,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2978", + "source_location": "L2982", "weight": 1.0, "source": "app_api_crm_opportunity_product_batch_add", "target": "app_core_tenant_context_get_tenant_no" @@ -72978,7 +73310,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2979", + "source_location": "L2983", "weight": 1.0, "source": "app_api_crm_opportunity_product_batch_add", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -72989,7 +73321,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L2985", + "source_location": "L2989", "weight": 1.0, "source": "app_api_crm_opportunity_product_batch_add", "target": "app_crud_crm_opportunity_product_batch_add_opportunity_products" @@ -72999,7 +73331,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L2971", + "source_location": "L2975", "weight": 1.0, "source": "app_api_crm_opportunity_product_batch_add", "target": "app_schemas_crm_opportunity_opportunityproductbatchaddbody", @@ -73011,7 +73343,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3018", + "source_location": "L3022", "weight": 1.0, "source": "app_api_crm_opportunity_product_update", "target": "app_core_response_error_response" @@ -73022,7 +73354,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3016", + "source_location": "L3020", "weight": 1.0, "source": "app_api_crm_opportunity_product_update", "target": "app_core_response_success_response" @@ -73033,7 +73365,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3008", + "source_location": "L3012", "weight": 1.0, "source": "app_api_crm_opportunity_product_update", "target": "app_core_tenant_context_get_tenant_no" @@ -73044,7 +73376,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3009", + "source_location": "L3013", "weight": 1.0, "source": "app_api_crm_opportunity_product_update", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -73055,7 +73387,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3013", + "source_location": "L3017", "weight": 1.0, "source": "app_api_crm_opportunity_product_update", "target": "app_crud_crm_opportunity_product_update_opportunity_product" @@ -73065,7 +73397,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3001", + "source_location": "L3005", "weight": 1.0, "source": "app_api_crm_opportunity_product_update", "target": "app_schemas_crm_opportunity_opportunityproductupdatebody", @@ -73077,7 +73409,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3039", + "source_location": "L3043", "weight": 1.0, "source": "app_api_crm_opportunity_product_delete", "target": "app_core_response_error_response" @@ -73088,7 +73420,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3037", + "source_location": "L3041", "weight": 1.0, "source": "app_api_crm_opportunity_product_delete", "target": "app_core_response_success_response" @@ -73099,7 +73431,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3031", + "source_location": "L3035", "weight": 1.0, "source": "app_api_crm_opportunity_product_delete", "target": "app_core_tenant_context_get_tenant_no" @@ -73110,7 +73442,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3032", + "source_location": "L3036", "weight": 1.0, "source": "app_api_crm_opportunity_product_delete", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -73121,7 +73453,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3034", + "source_location": "L3038", "weight": 1.0, "source": "app_api_crm_opportunity_product_delete", "target": "app_crud_crm_opportunity_product_soft_delete_opportunity_products" @@ -73131,7 +73463,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3024", + "source_location": "L3028", "weight": 1.0, "source": "app_api_crm_opportunity_product_delete", "target": "app_schemas_crm_opportunity_opportunityproductdeletebody", @@ -73143,7 +73475,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3056", + "source_location": "L3060", "weight": 1.0, "source": "app_api_crm_opportunity_product_detail", "target": "app_core_response_error_response" @@ -73154,7 +73486,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3057", + "source_location": "L3061", "weight": 1.0, "source": "app_api_crm_opportunity_product_detail", "target": "app_core_response_success_response" @@ -73165,7 +73497,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3052", + "source_location": "L3056", "weight": 1.0, "source": "app_api_crm_opportunity_product_detail", "target": "app_core_tenant_context_get_tenant_no" @@ -73176,7 +73508,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3053", + "source_location": "L3057", "weight": 1.0, "source": "app_api_crm_opportunity_product_detail", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -73187,7 +73519,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3054", + "source_location": "L3058", "weight": 1.0, "source": "app_api_crm_opportunity_product_detail", "target": "app_crud_crm_opportunity_product_get_opportunity_product" @@ -73197,7 +73529,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3045", + "source_location": "L3049", "weight": 1.0, "source": "app_api_crm_opportunity_product_detail", "target": "app_schemas_crm_opportunity_opportunityproductdetailbody", @@ -73209,7 +73541,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3095", + "source_location": "L3099", "weight": 1.0, "source": "app_api_crm_opportunity_export", "target": "app_core_response_error_response" @@ -73220,7 +73552,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3072", + "source_location": "L3076", "weight": 1.0, "source": "app_api_crm_opportunity_export", "target": "app_core_tenant_context_get_tenant_no" @@ -73231,7 +73563,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3073", + "source_location": "L3077", "weight": 1.0, "source": "app_api_crm_opportunity_export", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -73242,7 +73574,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3076", + "source_location": "L3080", "weight": 1.0, "source": "app_api_crm_opportunity_export", "target": "app_crud_crm_opportunity_list_opportunities" @@ -73252,7 +73584,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3065", + "source_location": "L3069", "weight": 1.0, "source": "app_api_crm_opportunity_export", "target": "app_schemas_crm_opportunity_opportunitylistbody", @@ -73264,7 +73596,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3085", + "source_location": "L3089", "weight": 1.0, "source": "app_api_crm_opportunity_export", "target": "app_utils_excel_export_export_rows_to_xlsx_response" @@ -73273,9 +73605,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3112", + "source_location": "L3116", "weight": 1.0, - "source": "app_api_crm_rationale_3112", + "source": "app_api_crm_rationale_3116", "target": "app_api_crm_supplier_info_list", "confidence_score": 1.0 }, @@ -73285,7 +73617,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3136", + "source_location": "L3140", "weight": 1.0, "source": "app_api_crm_supplier_info_list", "target": "app_core_response_error_response" @@ -73296,7 +73628,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3126", + "source_location": "L3130", "weight": 1.0, "source": "app_api_crm_supplier_info_list", "target": "app_core_response_success_response" @@ -73307,7 +73639,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3114", + "source_location": "L3118", "weight": 1.0, "source": "app_api_crm_supplier_info_list", "target": "app_core_tenant_context_get_tenant_no" @@ -73318,7 +73650,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3115", + "source_location": "L3119", "weight": 1.0, "source": "app_api_crm_supplier_info_list", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -73329,7 +73661,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3117", + "source_location": "L3121", "weight": 1.0, "source": "app_api_crm_supplier_info_list", "target": "app_crud_crm_supplier_info_list_supplier_info" @@ -73339,7 +73671,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3107", + "source_location": "L3111", "weight": 1.0, "source": "app_api_crm_supplier_info_list", "target": "app_schemas_crm_supplier_info_supplierinfolistbody", @@ -73349,9 +73681,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3147", + "source_location": "L3151", "weight": 1.0, - "source": "app_api_crm_rationale_3147", + "source": "app_api_crm_rationale_3151", "target": "app_api_crm_supplier_info_list_all", "confidence_score": 1.0 }, @@ -73361,7 +73693,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3161", + "source_location": "L3165", "weight": 1.0, "source": "app_api_crm_supplier_info_list_all", "target": "app_core_response_error_response" @@ -73372,7 +73704,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3159", + "source_location": "L3163", "weight": 1.0, "source": "app_api_crm_supplier_info_list_all", "target": "app_core_response_success_response" @@ -73383,7 +73715,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3149", + "source_location": "L3153", "weight": 1.0, "source": "app_api_crm_supplier_info_list_all", "target": "app_core_tenant_context_get_tenant_no" @@ -73394,7 +73726,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3150", + "source_location": "L3154", "weight": 1.0, "source": "app_api_crm_supplier_info_list_all", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -73405,7 +73737,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3152", + "source_location": "L3156", "weight": 1.0, "source": "app_api_crm_supplier_info_list_all", "target": "app_crud_crm_supplier_info_list_all_supplier_info" @@ -73415,7 +73747,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3142", + "source_location": "L3146", "weight": 1.0, "source": "app_api_crm_supplier_info_list_all", "target": "app_schemas_crm_supplier_info_supplierinfolistallbody", @@ -73425,23 +73757,12 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3172", + "source_location": "L3176", "weight": 1.0, - "source": "app_api_crm_rationale_3172", + "source": "app_api_crm_rationale_3176", "target": "app_api_crm_supplier_info_detail", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L3178", - "weight": 1.0, - "source": "app_api_crm_supplier_info_detail", - "target": "app_core_response_error_response" - }, { "relation": "calls", "context": "call", @@ -73451,6 +73772,17 @@ "source_location": "L3182", "weight": 1.0, "source": "app_api_crm_supplier_info_detail", + "target": "app_core_response_error_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L3186", + "weight": 1.0, + "source": "app_api_crm_supplier_info_detail", "target": "app_core_response_success_response" }, { @@ -73459,22 +73791,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3174", + "source_location": "L3178", "weight": 1.0, "source": "app_api_crm_supplier_info_detail", "target": "app_core_tenant_context_get_tenant_no" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L3175", - "weight": 1.0, - "source": "app_api_crm_supplier_info_detail", - "target": "app_crud_crm_data_scope_helpers_crm_user_info" - }, { "relation": "calls", "context": "call", @@ -73484,6 +73805,17 @@ "source_location": "L3179", "weight": 1.0, "source": "app_api_crm_supplier_info_detail", + "target": "app_crud_crm_data_scope_helpers_crm_user_info" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L3183", + "weight": 1.0, + "source": "app_api_crm_supplier_info_detail", "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope" }, { @@ -73492,7 +73824,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3176", + "source_location": "L3180", "weight": 1.0, "source": "app_api_crm_supplier_info_detail", "target": "app_crud_crm_supplier_info_get_supplier_info" @@ -73502,7 +73834,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3167", + "source_location": "L3171", "weight": 1.0, "source": "app_api_crm_supplier_info_detail", "target": "app_schemas_crm_supplier_info_supplierinfodetailbody", @@ -73512,9 +73844,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3195", + "source_location": "L3199", "weight": 1.0, - "source": "app_api_crm_rationale_3195", + "source": "app_api_crm_rationale_3199", "target": "app_api_crm_supplier_info_add", "confidence_score": 1.0 }, @@ -73524,7 +73856,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3210", + "source_location": "L3214", "weight": 1.0, "source": "app_api_crm_supplier_info_add", "target": "app_core_response_error_response" @@ -73535,33 +73867,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3208", + "source_location": "L3212", "weight": 1.0, "source": "app_api_crm_supplier_info_add", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L3197", - "weight": 1.0, - "source": "app_api_crm_supplier_info_add", - "target": "app_core_tenant_context_get_tenant_no" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L3198", - "weight": 1.0, - "source": "app_api_crm_supplier_info_add", - "target": "app_crud_crm_data_scope_helpers_crm_user_info" - }, { "relation": "calls", "context": "call", @@ -73571,6 +73881,28 @@ "source_location": "L3201", "weight": 1.0, "source": "app_api_crm_supplier_info_add", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L3202", + "weight": 1.0, + "source": "app_api_crm_supplier_info_add", + "target": "app_crud_crm_data_scope_helpers_crm_user_info" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L3205", + "weight": 1.0, + "source": "app_api_crm_supplier_info_add", "target": "app_crud_crm_supplier_info_create_supplier_info" }, { @@ -73578,7 +73910,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3190", + "source_location": "L3194", "weight": 1.0, "source": "app_api_crm_supplier_info_add", "target": "app_schemas_crm_supplier_info_supplierinfocreatebody", @@ -73588,9 +73920,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3221", + "source_location": "L3225", "weight": 1.0, - "source": "app_api_crm_rationale_3221", + "source": "app_api_crm_rationale_3225", "target": "app_api_crm_supplier_info_update", "confidence_score": 1.0 }, @@ -73600,7 +73932,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3238", + "source_location": "L3242", "weight": 1.0, "source": "app_api_crm_supplier_info_update", "target": "app_core_response_error_response" @@ -73611,7 +73943,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3236", + "source_location": "L3240", "weight": 1.0, "source": "app_api_crm_supplier_info_update", "target": "app_core_response_success_response" @@ -73622,22 +73954,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3223", + "source_location": "L3227", "weight": 1.0, "source": "app_api_crm_supplier_info_update", "target": "app_core_tenant_context_get_tenant_no" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L3224", - "weight": 1.0, - "source": "app_api_crm_supplier_info_update", - "target": "app_crud_crm_data_scope_helpers_crm_user_info" - }, { "relation": "calls", "context": "call", @@ -73647,6 +73968,17 @@ "source_location": "L3228", "weight": 1.0, "source": "app_api_crm_supplier_info_update", + "target": "app_crud_crm_data_scope_helpers_crm_user_info" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L3232", + "weight": 1.0, + "source": "app_api_crm_supplier_info_update", "target": "app_crud_crm_supplier_info_update_supplier_info" }, { @@ -73654,7 +73986,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3216", + "source_location": "L3220", "weight": 1.0, "source": "app_api_crm_supplier_info_update", "target": "app_schemas_crm_supplier_info_supplierinfoupdatebody", @@ -73664,9 +73996,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3249", + "source_location": "L3253", "weight": 1.0, - "source": "app_api_crm_rationale_3249", + "source": "app_api_crm_rationale_3253", "target": "app_api_crm_supplier_info_delete", "confidence_score": 1.0 }, @@ -73676,7 +74008,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3260", + "source_location": "L3264", "weight": 1.0, "source": "app_api_crm_supplier_info_delete", "target": "app_core_response_error_response" @@ -73687,7 +74019,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3265", + "source_location": "L3269", "weight": 1.0, "source": "app_api_crm_supplier_info_delete", "target": "app_core_response_success_response" @@ -73698,7 +74030,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3251", + "source_location": "L3255", "weight": 1.0, "source": "app_api_crm_supplier_info_delete", "target": "app_core_tenant_context_get_tenant_no" @@ -73709,7 +74041,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3252", + "source_location": "L3256", "weight": 1.0, "source": "app_api_crm_supplier_info_delete", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -73720,7 +74052,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3263", + "source_location": "L3267", "weight": 1.0, "source": "app_api_crm_supplier_info_delete", "target": "app_crud_crm_supplier_info_soft_delete_supplier_info" @@ -73730,7 +74062,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3244", + "source_location": "L3248", "weight": 1.0, "source": "app_api_crm_supplier_info_delete", "target": "app_schemas_crm_supplier_info_supplierinfodeletebody", @@ -73740,9 +74072,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3278", + "source_location": "L3282", "weight": 1.0, - "source": "app_api_crm_rationale_3278", + "source": "app_api_crm_rationale_3282", "target": "app_api_crm_supplier_info_export", "confidence_score": 1.0 }, @@ -73752,7 +74084,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3302", + "source_location": "L3306", "weight": 1.0, "source": "app_api_crm_supplier_info_export", "target": "app_core_response_error_response" @@ -73763,7 +74095,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3280", + "source_location": "L3284", "weight": 1.0, "source": "app_api_crm_supplier_info_export", "target": "app_core_tenant_context_get_tenant_no" @@ -73774,7 +74106,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3281", + "source_location": "L3285", "weight": 1.0, "source": "app_api_crm_supplier_info_export", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -73785,7 +74117,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3283", + "source_location": "L3287", "weight": 1.0, "source": "app_api_crm_supplier_info_export", "target": "app_crud_crm_supplier_info_list_supplier_info" @@ -73795,7 +74127,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3273", + "source_location": "L3277", "weight": 1.0, "source": "app_api_crm_supplier_info_export", "target": "app_schemas_crm_supplier_info_supplierinfolistbody", @@ -73807,7 +74139,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3292", + "source_location": "L3296", "weight": 1.0, "source": "app_api_crm_supplier_info_export", "target": "app_utils_excel_export_export_rows_to_xlsx_response" @@ -73817,7 +74149,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3346", + "source_location": "L3350", "weight": 1.0, "source": "app_api_crm_invoice_info_by_customer", "target": "app_api_crm_invoice_info_by_customer_impl", @@ -73828,7 +74160,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3320", + "source_location": "L3324", "weight": 1.0, "source": "app_api_crm_invoice_info_by_customer_impl", "target": "app_core_response_success_response", @@ -73839,7 +74171,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3315", + "source_location": "L3319", "weight": 1.0, "source": "app_api_crm_invoice_info_by_customer_impl", "target": "app_core_tenant_context_get_tenant_no", @@ -73850,7 +74182,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3316", + "source_location": "L3320", "weight": 1.0, "source": "app_api_crm_invoice_info_by_customer_impl", "target": "app_crud_crm_data_scope_helpers_crm_user_info", @@ -73861,7 +74193,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3317", + "source_location": "L3321", "weight": 1.0, "source": "app_api_crm_invoice_info_by_customer_impl", "target": "app_crud_crm_invoice_info_list_invoice_info_by_customer", @@ -73872,7 +74204,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3310", + "source_location": "L3314", "weight": 1.0, "source": "app_api_crm_invoice_info_by_customer_impl", "target": "app_schemas_crm_invoice_info_invoiceinfobycustomerbody", @@ -73883,7 +74215,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3331", + "source_location": "L3335", "weight": 1.0, "source": "app_api_crm_invoice_info_list", "target": "app_api_crm_invoice_info_by_customer_impl", @@ -73895,7 +74227,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3333", + "source_location": "L3337", "weight": 1.0, "source": "app_api_crm_invoice_info_list", "target": "app_core_response_error_response" @@ -73905,7 +74237,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3324", + "source_location": "L3328", "weight": 1.0, "source": "app_api_crm_invoice_info_list", "target": "app_schemas_crm_invoice_info_invoiceinfobycustomerbody", @@ -73915,9 +74247,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3329", + "source_location": "L3333", "weight": 1.0, - "source": "app_api_crm_rationale_3329", + "source": "app_api_crm_rationale_3333", "target": "app_api_crm_invoice_info_list", "confidence_score": 1.0 }, @@ -73927,7 +74259,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3348", + "source_location": "L3352", "weight": 1.0, "source": "app_api_crm_invoice_info_by_customer", "target": "app_core_response_error_response" @@ -73937,7 +74269,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3339", + "source_location": "L3343", "weight": 1.0, "source": "app_api_crm_invoice_info_by_customer", "target": "app_schemas_crm_invoice_info_invoiceinfobycustomerbody", @@ -73949,7 +74281,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3373", + "source_location": "L3377", "weight": 1.0, "source": "app_api_crm_invoice_info_add", "target": "app_core_response_error_response" @@ -73960,7 +74292,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3371", + "source_location": "L3375", "weight": 1.0, "source": "app_api_crm_invoice_info_add", "target": "app_core_response_success_response" @@ -73971,7 +74303,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3361", + "source_location": "L3365", "weight": 1.0, "source": "app_api_crm_invoice_info_add", "target": "app_core_tenant_context_get_tenant_no" @@ -73982,7 +74314,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3362", + "source_location": "L3366", "weight": 1.0, "source": "app_api_crm_invoice_info_add", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -73993,7 +74325,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3364", + "source_location": "L3368", "weight": 1.0, "source": "app_api_crm_invoice_info_add", "target": "app_crud_crm_invoice_info_create_invoice_info" @@ -74003,7 +74335,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3354", + "source_location": "L3358", "weight": 1.0, "source": "app_api_crm_invoice_info_add", "target": "app_schemas_crm_invoice_info_invoiceinfocreatebody", @@ -74015,7 +74347,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3401", + "source_location": "L3405", "weight": 1.0, "source": "app_api_crm_invoice_info_update", "target": "app_core_response_error_response" @@ -74026,7 +74358,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3399", + "source_location": "L3403", "weight": 1.0, "source": "app_api_crm_invoice_info_update", "target": "app_core_response_success_response" @@ -74037,7 +74369,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3386", + "source_location": "L3390", "weight": 1.0, "source": "app_api_crm_invoice_info_update", "target": "app_core_tenant_context_get_tenant_no" @@ -74048,7 +74380,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3387", + "source_location": "L3391", "weight": 1.0, "source": "app_api_crm_invoice_info_update", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -74059,7 +74391,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3391", + "source_location": "L3395", "weight": 1.0, "source": "app_api_crm_invoice_info_update", "target": "app_crud_crm_invoice_info_update_invoice_info" @@ -74069,7 +74401,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3379", + "source_location": "L3383", "weight": 1.0, "source": "app_api_crm_invoice_info_update", "target": "app_schemas_crm_invoice_info_invoiceinfoupdatebody", @@ -74081,7 +74413,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3419", + "source_location": "L3423", "weight": 1.0, "source": "app_api_crm_invoice_info_delete", "target": "app_core_response_error_response" @@ -74092,7 +74424,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3422", + "source_location": "L3426", "weight": 1.0, "source": "app_api_crm_invoice_info_delete", "target": "app_core_response_success_response" @@ -74103,7 +74435,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3421", + "source_location": "L3425", "weight": 1.0, "source": "app_api_crm_invoice_info_delete", "target": "app_crud_crm_invoice_info_soft_delete_invoice_info" @@ -74113,7 +74445,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3407", + "source_location": "L3411", "weight": 1.0, "source": "app_api_crm_invoice_info_delete", "target": "app_schemas_crm_invoice_info_invoiceinfodeletebody", @@ -74125,7 +74457,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3449", + "source_location": "L3453", "weight": 1.0, "source": "app_api_crm_invoice_info_set_default", "target": "app_core_response_error_response" @@ -74136,7 +74468,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3447", + "source_location": "L3451", "weight": 1.0, "source": "app_api_crm_invoice_info_set_default", "target": "app_core_response_success_response" @@ -74147,7 +74479,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3437", + "source_location": "L3441", "weight": 1.0, "source": "app_api_crm_invoice_info_set_default", "target": "app_core_tenant_context_get_tenant_no" @@ -74158,7 +74490,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3438", + "source_location": "L3442", "weight": 1.0, "source": "app_api_crm_invoice_info_set_default", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -74169,7 +74501,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3440", + "source_location": "L3444", "weight": 1.0, "source": "app_api_crm_invoice_info_set_default", "target": "app_crud_crm_invoice_info_set_default_invoice_info" @@ -74179,7 +74511,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3430", + "source_location": "L3434", "weight": 1.0, "source": "app_api_crm_invoice_info_set_default", "target": "app_schemas_crm_invoice_info_invoiceinfosetdefaultbody", @@ -74191,7 +74523,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3499", + "source_location": "L3503", "weight": 1.0, "source": "app_api_crm_clue_list", "target": "app_core_response_error_response" @@ -74202,7 +74534,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3491", + "source_location": "L3495", "weight": 1.0, "source": "app_api_crm_clue_list", "target": "app_core_response_success_response" @@ -74213,7 +74545,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3465", + "source_location": "L3469", "weight": 1.0, "source": "app_api_crm_clue_list", "target": "app_core_tenant_context_get_tenant_no" @@ -74224,7 +74556,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3469", + "source_location": "L3473", "weight": 1.0, "source": "app_api_crm_clue_list", "target": "app_crud_crm_clue_list_clues" @@ -74235,7 +74567,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3466", + "source_location": "L3470", "weight": 1.0, "source": "app_api_crm_clue_list", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -74245,7 +74577,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3458", + "source_location": "L3462", "weight": 1.0, "source": "app_api_crm_clue_list", "target": "app_schemas_crm_clue_cluelistbody", @@ -74257,7 +74589,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3516", + "source_location": "L3520", "weight": 1.0, "source": "app_api_crm_clue_detail", "target": "app_core_response_error_response" @@ -74268,7 +74600,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3524", + "source_location": "L3528", "weight": 1.0, "source": "app_api_crm_clue_detail", "target": "app_core_response_success_response" @@ -74279,7 +74611,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3512", + "source_location": "L3516", "weight": 1.0, "source": "app_api_crm_clue_detail", "target": "app_core_tenant_context_get_tenant_no" @@ -74290,7 +74622,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3518", + "source_location": "L3522", "weight": 1.0, "source": "app_api_crm_clue_detail", "target": "app_crud_crm_clue_get_clue" @@ -74301,7 +74633,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3513", + "source_location": "L3517", "weight": 1.0, "source": "app_api_crm_clue_detail", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -74312,7 +74644,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3521", + "source_location": "L3525", "weight": 1.0, "source": "app_api_crm_clue_detail", "target": "app_crud_crm_data_scope_helpers_ensure_crm_owner_row_in_scope" @@ -74323,7 +74655,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3549", + "source_location": "L3553", "weight": 1.0, "source": "app_api_crm_clue_create", "target": "app_core_response_error_response" @@ -74334,7 +74666,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3547", + "source_location": "L3551", "weight": 1.0, "source": "app_api_crm_clue_create", "target": "app_core_response_success_response" @@ -74345,7 +74677,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3539", + "source_location": "L3543", "weight": 1.0, "source": "app_api_crm_clue_create", "target": "app_core_tenant_context_get_tenant_no" @@ -74356,7 +74688,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3541", + "source_location": "L3545", "weight": 1.0, "source": "app_api_crm_clue_create", "target": "app_crud_crm_clue_create_clue" @@ -74366,7 +74698,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3532", + "source_location": "L3536", "weight": 1.0, "source": "app_api_crm_clue_create", "target": "app_schemas_crm_clue_cluecreatebody", @@ -74378,7 +74710,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3571", + "source_location": "L3575", "weight": 1.0, "source": "app_api_crm_clue_update", "target": "app_core_response_error_response" @@ -74389,7 +74721,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3569", + "source_location": "L3573", "weight": 1.0, "source": "app_api_crm_clue_update", "target": "app_core_response_success_response" @@ -74400,7 +74732,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3562", + "source_location": "L3566", "weight": 1.0, "source": "app_api_crm_clue_update", "target": "app_core_tenant_context_get_tenant_no" @@ -74411,7 +74743,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3568", + "source_location": "L3572", "weight": 1.0, "source": "app_api_crm_clue_update", "target": "app_crud_crm_clue_update_clue" @@ -74422,7 +74754,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3563", + "source_location": "L3567", "weight": 1.0, "source": "app_api_crm_clue_update", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -74432,7 +74764,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3555", + "source_location": "L3559", "weight": 1.0, "source": "app_api_crm_clue_update", "target": "app_schemas_crm_clue_clueupdatebody", @@ -74444,7 +74776,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3601", + "source_location": "L3605", "weight": 1.0, "source": "app_api_crm_clue_delete", "target": "app_core_response_error_response" @@ -74455,7 +74787,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3602", + "source_location": "L3606", "weight": 1.0, "source": "app_api_crm_clue_delete", "target": "app_core_response_success_response" @@ -74466,7 +74798,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3584", + "source_location": "L3588", "weight": 1.0, "source": "app_api_crm_clue_delete", "target": "app_core_tenant_context_get_tenant_no" @@ -74477,7 +74809,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3591", + "source_location": "L3595", "weight": 1.0, "source": "app_api_crm_clue_delete", "target": "app_crud_crm_clue_soft_delete_clue" @@ -74488,7 +74820,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3585", + "source_location": "L3589", "weight": 1.0, "source": "app_api_crm_clue_delete", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -74498,7 +74830,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3577", + "source_location": "L3581", "weight": 1.0, "source": "app_api_crm_clue_delete", "target": "app_schemas_crm_clue_cluedeletebody", @@ -74510,7 +74842,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3630", + "source_location": "L3634", "weight": 1.0, "source": "app_api_crm_clue_assign", "target": "app_core_response_error_response" @@ -74521,7 +74853,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3628", + "source_location": "L3632", "weight": 1.0, "source": "app_api_crm_clue_assign", "target": "app_core_response_success_response" @@ -74532,7 +74864,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3615", + "source_location": "L3619", "weight": 1.0, "source": "app_api_crm_clue_assign", "target": "app_core_tenant_context_get_tenant_no" @@ -74543,7 +74875,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3618", + "source_location": "L3622", "weight": 1.0, "source": "app_api_crm_clue_assign", "target": "app_crud_crm_clue_assign_clues" @@ -74554,7 +74886,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3616", + "source_location": "L3620", "weight": 1.0, "source": "app_api_crm_clue_assign", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -74564,7 +74896,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3608", + "source_location": "L3612", "weight": 1.0, "source": "app_api_crm_clue_assign", "target": "app_schemas_crm_clue_clueassignbody", @@ -74576,7 +74908,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3658", + "source_location": "L3662", "weight": 1.0, "source": "app_api_crm_clue_convert", "target": "app_core_response_error_response" @@ -74587,7 +74919,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3656", + "source_location": "L3660", "weight": 1.0, "source": "app_api_crm_clue_convert", "target": "app_core_response_success_response" @@ -74598,7 +74930,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3643", + "source_location": "L3647", "weight": 1.0, "source": "app_api_crm_clue_convert", "target": "app_core_tenant_context_get_tenant_no" @@ -74609,7 +74941,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3648", + "source_location": "L3652", "weight": 1.0, "source": "app_api_crm_clue_convert", "target": "app_crud_crm_clue_convert_clue" @@ -74620,7 +74952,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3644", + "source_location": "L3648", "weight": 1.0, "source": "app_api_crm_clue_convert", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -74630,7 +74962,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3636", + "source_location": "L3640", "weight": 1.0, "source": "app_api_crm_clue_convert", "target": "app_schemas_crm_clue_clueconvertbody", @@ -74642,7 +74974,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3674", + "source_location": "L3678", "weight": 1.0, "source": "app_api_crm_clue_check_convert", "target": "app_core_response_error_response" @@ -74653,22 +74985,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3676", + "source_location": "L3680", "weight": 1.0, "source": "app_api_crm_clue_check_convert", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L3671", - "weight": 1.0, - "source": "app_api_crm_clue_check_convert", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -74678,6 +74999,17 @@ "source_location": "L3675", "weight": 1.0, "source": "app_api_crm_clue_check_convert", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L3679", + "weight": 1.0, + "source": "app_api_crm_clue_check_convert", "target": "app_crud_crm_clue_check_convert" }, { @@ -74686,7 +75018,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3699", + "source_location": "L3703", "weight": 1.0, "source": "app_api_crm_clue_update_status", "target": "app_core_response_error_response" @@ -74697,7 +75029,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3697", + "source_location": "L3701", "weight": 1.0, "source": "app_api_crm_clue_update_status", "target": "app_core_response_success_response" @@ -74708,7 +75040,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3691", + "source_location": "L3695", "weight": 1.0, "source": "app_api_crm_clue_update_status", "target": "app_core_tenant_context_get_tenant_no" @@ -74719,7 +75051,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3694", + "source_location": "L3698", "weight": 1.0, "source": "app_api_crm_clue_update_status", "target": "app_crud_crm_clue_update_clue_status" @@ -74730,7 +75062,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3692", + "source_location": "L3696", "weight": 1.0, "source": "app_api_crm_clue_update_status", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -74740,7 +75072,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3684", + "source_location": "L3688", "weight": 1.0, "source": "app_api_crm_clue_update_status", "target": "app_schemas_crm_clue_cluestatusbody", @@ -74752,7 +75084,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3720", + "source_location": "L3724", "weight": 1.0, "source": "app_api_crm_clue_invalid", "target": "app_core_response_error_response" @@ -74763,7 +75095,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3728", + "source_location": "L3732", "weight": 1.0, "source": "app_api_crm_clue_invalid", "target": "app_core_response_success_response" @@ -74774,7 +75106,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3712", + "source_location": "L3716", "weight": 1.0, "source": "app_api_crm_clue_invalid", "target": "app_core_tenant_context_get_tenant_no" @@ -74785,7 +75117,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3723", + "source_location": "L3727", "weight": 1.0, "source": "app_api_crm_clue_invalid", "target": "app_crud_crm_clue_invalid_clue" @@ -74796,7 +75128,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3713", + "source_location": "L3717", "weight": 1.0, "source": "app_api_crm_clue_invalid", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -74806,7 +75138,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3705", + "source_location": "L3709", "weight": 1.0, "source": "app_api_crm_clue_invalid", "target": "app_schemas_crm_clue_clueinvalidbody", @@ -74818,7 +75150,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3751", + "source_location": "L3755", "weight": 1.0, "source": "app_api_crm_clue_update_level", "target": "app_core_response_error_response" @@ -74829,7 +75161,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3749", + "source_location": "L3753", "weight": 1.0, "source": "app_api_crm_clue_update_level", "target": "app_core_response_success_response" @@ -74840,7 +75172,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3743", + "source_location": "L3747", "weight": 1.0, "source": "app_api_crm_clue_update_level", "target": "app_core_tenant_context_get_tenant_no" @@ -74851,7 +75183,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3746", + "source_location": "L3750", "weight": 1.0, "source": "app_api_crm_clue_update_level", "target": "app_crud_crm_clue_update_clue_level" @@ -74862,7 +75194,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3744", + "source_location": "L3748", "weight": 1.0, "source": "app_api_crm_clue_update_level", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -74872,7 +75204,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3736", + "source_location": "L3740", "weight": 1.0, "source": "app_api_crm_clue_update_level", "target": "app_schemas_crm_clue_cluelevelbody", @@ -74884,7 +75216,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3797", + "source_location": "L3801", "weight": 1.0, "source": "app_api_crm_clue_mine", "target": "app_core_response_error_response" @@ -74895,22 +75227,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3789", + "source_location": "L3793", "weight": 1.0, "source": "app_api_crm_clue_mine", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L3764", - "weight": 1.0, - "source": "app_api_crm_clue_mine", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -74920,6 +75241,17 @@ "source_location": "L3768", "weight": 1.0, "source": "app_api_crm_clue_mine", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L3772", + "weight": 1.0, + "source": "app_api_crm_clue_mine", "target": "app_crud_crm_clue_list_clues" }, { @@ -74928,7 +75260,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3765", + "source_location": "L3769", "weight": 1.0, "source": "app_api_crm_clue_mine", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -74938,7 +75270,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3757", + "source_location": "L3761", "weight": 1.0, "source": "app_api_crm_clue_mine", "target": "app_schemas_crm_clue_cluelistbody", @@ -74950,7 +75282,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3843", + "source_location": "L3847", "weight": 1.0, "source": "app_api_crm_clue_to_follow", "target": "app_core_response_error_response" @@ -74961,22 +75293,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3835", + "source_location": "L3839", "weight": 1.0, "source": "app_api_crm_clue_to_follow", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L3810", - "weight": 1.0, - "source": "app_api_crm_clue_to_follow", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -74986,6 +75307,17 @@ "source_location": "L3814", "weight": 1.0, "source": "app_api_crm_clue_to_follow", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L3818", + "weight": 1.0, + "source": "app_api_crm_clue_to_follow", "target": "app_crud_crm_clue_list_clues" }, { @@ -74994,7 +75326,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3811", + "source_location": "L3815", "weight": 1.0, "source": "app_api_crm_clue_to_follow", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75004,7 +75336,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3803", + "source_location": "L3807", "weight": 1.0, "source": "app_api_crm_clue_to_follow", "target": "app_schemas_crm_clue_cluelistbody", @@ -75016,7 +75348,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3889", + "source_location": "L3893", "weight": 1.0, "source": "app_api_crm_clue_today_new", "target": "app_core_response_error_response" @@ -75027,22 +75359,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3881", + "source_location": "L3885", "weight": 1.0, "source": "app_api_crm_clue_today_new", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L3856", - "weight": 1.0, - "source": "app_api_crm_clue_today_new", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -75052,6 +75373,17 @@ "source_location": "L3860", "weight": 1.0, "source": "app_api_crm_clue_today_new", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L3864", + "weight": 1.0, + "source": "app_api_crm_clue_today_new", "target": "app_crud_crm_clue_list_clues" }, { @@ -75060,7 +75392,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3857", + "source_location": "L3861", "weight": 1.0, "source": "app_api_crm_clue_today_new", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75070,12 +75402,34 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3849", + "source_location": "L3853", "weight": 1.0, "source": "app_api_crm_clue_today_new", "target": "app_schemas_crm_clue_cluelistbody", "confidence_score": 1.0 }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L3910", + "weight": 1.0, + "source": "app_api_crm_clue_park_area_list", + "target": "app_core_response_error_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L3908", + "weight": 1.0, + "source": "app_api_crm_clue_park_area_list", + "target": "app_core_response_success_response" + }, { "relation": "calls", "context": "call", @@ -75085,28 +75439,6 @@ "source_location": "L3906", "weight": 1.0, "source": "app_api_crm_clue_park_area_list", - "target": "app_core_response_error_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L3904", - "weight": 1.0, - "source": "app_api_crm_clue_park_area_list", - "target": "app_core_response_success_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L3902", - "weight": 1.0, - "source": "app_api_crm_clue_park_area_list", "target": "app_core_tenant_context_get_tenant_no" }, { @@ -75115,7 +75447,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3936", + "source_location": "L3940", "weight": 1.0, "source": "app_api_crm_clue_follow_list", "target": "app_core_response_error_response" @@ -75126,7 +75458,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3928", + "source_location": "L3932", "weight": 1.0, "source": "app_api_crm_clue_follow_list", "target": "app_core_response_success_response" @@ -75137,7 +75469,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3917", + "source_location": "L3921", "weight": 1.0, "source": "app_api_crm_clue_follow_list", "target": "app_core_tenant_context_get_tenant_no" @@ -75148,7 +75480,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3919", + "source_location": "L3923", "weight": 1.0, "source": "app_api_crm_clue_follow_list", "target": "app_crud_crm_clue_follow_list_clue_follows" @@ -75159,7 +75491,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3918", + "source_location": "L3922", "weight": 1.0, "source": "app_api_crm_clue_follow_list", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75169,7 +75501,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3910", + "source_location": "L3914", "weight": 1.0, "source": "app_api_crm_clue_follow_list", "target": "app_schemas_crm_clue_cluefollowlistbody", @@ -75181,7 +75513,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3968", + "source_location": "L3972", "weight": 1.0, "source": "app_api_crm_clue_follow_create", "target": "app_core_response_error_response" @@ -75192,7 +75524,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3966", + "source_location": "L3970", "weight": 1.0, "source": "app_api_crm_clue_follow_create", "target": "app_core_response_success_response" @@ -75203,7 +75535,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3949", + "source_location": "L3953", "weight": 1.0, "source": "app_api_crm_clue_follow_create", "target": "app_core_tenant_context_get_tenant_no" @@ -75214,7 +75546,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3958", + "source_location": "L3962", "weight": 1.0, "source": "app_api_crm_clue_follow_create", "target": "app_crud_crm_clue_follow_create_clue_follow" @@ -75225,7 +75557,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3950", + "source_location": "L3954", "weight": 1.0, "source": "app_api_crm_clue_follow_create", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75235,7 +75567,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3942", + "source_location": "L3946", "weight": 1.0, "source": "app_api_crm_clue_follow_create", "target": "app_schemas_crm_clue_cluefollowcreatebody", @@ -75247,7 +75579,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4001", + "source_location": "L4005", "weight": 1.0, "source": "app_api_crm_clue_follow_delete", "target": "app_core_response_error_response" @@ -75258,7 +75590,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3999", + "source_location": "L4003", "weight": 1.0, "source": "app_api_crm_clue_follow_delete", "target": "app_core_response_success_response" @@ -75269,7 +75601,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3981", + "source_location": "L3985", "weight": 1.0, "source": "app_api_crm_clue_follow_delete", "target": "app_core_tenant_context_get_tenant_no" @@ -75280,7 +75612,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3987", + "source_location": "L3991", "weight": 1.0, "source": "app_api_crm_clue_follow_delete", "target": "app_crud_crm_clue_follow_delete_clue_follow" @@ -75291,7 +75623,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L3982", + "source_location": "L3986", "weight": 1.0, "source": "app_api_crm_clue_follow_delete", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75301,7 +75633,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L3974", + "source_location": "L3978", "weight": 1.0, "source": "app_api_crm_clue_follow_delete", "target": "app_schemas_crm_clue_cluefollowdeletebody", @@ -75313,7 +75645,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4016", + "source_location": "L4020", "weight": 1.0, "source": "app_api_crm_clue_follow_statistics", "target": "app_core_response_error_response" @@ -75324,7 +75656,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4020", + "source_location": "L4024", "weight": 1.0, "source": "app_api_crm_clue_follow_statistics", "target": "app_core_response_success_response" @@ -75335,7 +75667,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4012", + "source_location": "L4016", "weight": 1.0, "source": "app_api_crm_clue_follow_statistics", "target": "app_core_tenant_context_get_tenant_no" @@ -75346,7 +75678,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4013", + "source_location": "L4017", "weight": 1.0, "source": "app_api_crm_clue_follow_statistics", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75357,7 +75689,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4125", + "source_location": "L4129", "weight": 1.0, "source": "app_api_crm_clue_export", "target": "app_core_response_error_response" @@ -75368,7 +75700,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4081", + "source_location": "L4085", "weight": 1.0, "source": "app_api_crm_clue_export", "target": "app_core_tenant_context_get_tenant_no" @@ -75379,7 +75711,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4085", + "source_location": "L4089", "weight": 1.0, "source": "app_api_crm_clue_export", "target": "app_crud_crm_clue_list_clues" @@ -75390,7 +75722,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4082", + "source_location": "L4086", "weight": 1.0, "source": "app_api_crm_clue_export", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75400,7 +75732,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4074", + "source_location": "L4078", "weight": 1.0, "source": "app_api_crm_clue_export", "target": "app_schemas_crm_clue_cluelistbody", @@ -75412,7 +75744,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4116", + "source_location": "L4120", "weight": 1.0, "source": "app_api_crm_clue_export", "target": "app_utils_excel_export_export_rows_to_xlsx_response" @@ -75423,7 +75755,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4162", + "source_location": "L4166", "weight": 1.0, "source": "app_api_crm_clue_import_template", "target": "app_core_response_error_response" @@ -75434,7 +75766,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "app/api/crm.py", - "source_location": "L4154", + "source_location": "L4158", "weight": 1.0, "source": "app_api_crm_clue_import_template", "target": "streamingresponse" @@ -75445,7 +75777,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "app/api/crm.py", - "source_location": "L4139", + "source_location": "L4143", "weight": 1.0, "source": "app_api_crm_clue_import_template", "target": "workbook" @@ -75456,7 +75788,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4185", + "source_location": "L4189", "weight": 1.0, "source": "app_api_crm_clue_import", "target": "app_core_response_error_response" @@ -75467,7 +75799,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4210", + "source_location": "L4214", "weight": 1.0, "source": "app_api_crm_clue_import", "target": "app_core_response_success_response" @@ -75478,7 +75810,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4176", + "source_location": "L4180", "weight": 1.0, "source": "app_api_crm_clue_import", "target": "app_core_tenant_context_get_tenant_no" @@ -75489,7 +75821,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4203", + "source_location": "L4207", "weight": 1.0, "source": "app_api_crm_clue_import", "target": "app_crud_crm_clue_import_clues" @@ -75500,7 +75832,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4236", + "source_location": "L4240", "weight": 1.0, "source": "app_api_crm_clue_check_duplicate", "target": "app_core_response_error_response" @@ -75511,7 +75843,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4234", + "source_location": "L4238", "weight": 1.0, "source": "app_api_crm_clue_check_duplicate", "target": "app_core_response_success_response" @@ -75522,7 +75854,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4225", + "source_location": "L4229", "weight": 1.0, "source": "app_api_crm_clue_check_duplicate", "target": "app_core_tenant_context_get_tenant_no" @@ -75533,7 +75865,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4227", + "source_location": "L4231", "weight": 1.0, "source": "app_api_crm_clue_check_duplicate", "target": "app_crud_crm_clue_check_duplicate_clue" @@ -75544,11 +75876,33 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4253", + "source_location": "L4257", "weight": 1.0, "source": "app_api_crm_clue_follow_detail", "target": "app_core_response_error_response" }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L4262", + "weight": 1.0, + "source": "app_api_crm_clue_follow_detail", + "target": "app_core_response_success_response" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L4253", + "weight": 1.0, + "source": "app_api_crm_clue_follow_detail", + "target": "app_core_tenant_context_get_tenant_no" + }, { "relation": "calls", "context": "call", @@ -75558,18 +75912,7 @@ "source_location": "L4258", "weight": 1.0, "source": "app_api_crm_clue_follow_detail", - "target": "app_core_response_success_response" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L4249", - "weight": 1.0, - "source": "app_api_crm_clue_follow_detail", - "target": "app_core_tenant_context_get_tenant_no" + "target": "app_crud_crm_clue_follow_get_clue_follow" }, { "relation": "calls", @@ -75580,17 +75923,6 @@ "source_location": "L4254", "weight": 1.0, "source": "app_api_crm_clue_follow_detail", - "target": "app_crud_crm_clue_follow_get_clue_follow" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L4250", - "weight": 1.0, - "source": "app_api_crm_clue_follow_detail", "target": "app_crud_crm_data_scope_helpers_crm_user_info" }, { @@ -75599,7 +75931,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4281", + "source_location": "L4285", "weight": 1.0, "source": "app_api_crm_clue_follow_update", "target": "app_core_response_error_response" @@ -75610,7 +75942,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4279", + "source_location": "L4283", "weight": 1.0, "source": "app_api_crm_clue_follow_update", "target": "app_core_response_success_response" @@ -75621,7 +75953,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4273", + "source_location": "L4277", "weight": 1.0, "source": "app_api_crm_clue_follow_update", "target": "app_core_tenant_context_get_tenant_no" @@ -75632,7 +75964,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4276", + "source_location": "L4280", "weight": 1.0, "source": "app_api_crm_clue_follow_update", "target": "app_crud_crm_clue_follow_update_clue_follow" @@ -75643,7 +75975,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4274", + "source_location": "L4278", "weight": 1.0, "source": "app_api_crm_clue_follow_update", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75653,7 +75985,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4266", + "source_location": "L4270", "weight": 1.0, "source": "app_api_crm_clue_follow_update", "target": "app_schemas_crm_clue_cluefollowupdatebody", @@ -75665,7 +75997,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4309", + "source_location": "L4313", "weight": 1.0, "source": "app_api_crm_clue_statistics_overview", "target": "app_core_response_error_response" @@ -75676,22 +76008,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4307", + "source_location": "L4311", "weight": 1.0, "source": "app_api_crm_clue_statistics_overview", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L4294", - "weight": 1.0, - "source": "app_api_crm_clue_statistics_overview", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -75701,6 +76022,17 @@ "source_location": "L4298", "weight": 1.0, "source": "app_api_crm_clue_statistics_overview", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L4302", + "weight": 1.0, + "source": "app_api_crm_clue_statistics_overview", "target": "app_crud_crm_clue_statistics_get_clue_overview_statistics" }, { @@ -75709,7 +76041,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4295", + "source_location": "L4299", "weight": 1.0, "source": "app_api_crm_clue_statistics_overview", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75719,7 +76051,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4287", + "source_location": "L4291", "weight": 1.0, "source": "app_api_crm_clue_statistics_overview", "target": "app_schemas_crm_clue_cluestatisticsbody", @@ -75731,7 +76063,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4334", + "source_location": "L4338", "weight": 1.0, "source": "app_api_crm_clue_statistics_source", "target": "app_core_response_error_response" @@ -75742,7 +76074,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4332", + "source_location": "L4336", "weight": 1.0, "source": "app_api_crm_clue_statistics_source", "target": "app_core_response_success_response" @@ -75753,7 +76085,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4322", + "source_location": "L4326", "weight": 1.0, "source": "app_api_crm_clue_statistics_source", "target": "app_core_tenant_context_get_tenant_no" @@ -75764,7 +76096,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4325", + "source_location": "L4329", "weight": 1.0, "source": "app_api_crm_clue_statistics_source", "target": "app_crud_crm_clue_statistics_get_clue_source_statistics" @@ -75775,7 +76107,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4323", + "source_location": "L4327", "weight": 1.0, "source": "app_api_crm_clue_statistics_source", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75785,7 +76117,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4315", + "source_location": "L4319", "weight": 1.0, "source": "app_api_crm_clue_statistics_source", "target": "app_schemas_crm_clue_cluestatisticsbody", @@ -75797,7 +76129,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4351", + "source_location": "L4355", "weight": 1.0, "source": "app_api_crm_clue_statistics_level", "target": "app_core_response_error_response" @@ -75808,7 +76140,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4349", + "source_location": "L4353", "weight": 1.0, "source": "app_api_crm_clue_statistics_level", "target": "app_core_response_success_response" @@ -75819,7 +76151,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4346", + "source_location": "L4350", "weight": 1.0, "source": "app_api_crm_clue_statistics_level", "target": "app_core_tenant_context_get_tenant_no" @@ -75830,7 +76162,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4348", + "source_location": "L4352", "weight": 1.0, "source": "app_api_crm_clue_statistics_level", "target": "app_crud_crm_clue_statistics_get_clue_level_statistics" @@ -75841,7 +76173,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4347", + "source_location": "L4351", "weight": 1.0, "source": "app_api_crm_clue_statistics_level", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75852,7 +76184,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4378", + "source_location": "L4382", "weight": 1.0, "source": "app_api_crm_clue_statistics_trend", "target": "app_core_response_error_response" @@ -75863,22 +76195,11 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4376", + "source_location": "L4380", "weight": 1.0, "source": "app_api_crm_clue_statistics_trend", "target": "app_core_response_success_response" }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "app/api/crm.py", - "source_location": "L4364", - "weight": 1.0, - "source": "app_api_crm_clue_statistics_trend", - "target": "app_core_tenant_context_get_tenant_no" - }, { "relation": "calls", "context": "call", @@ -75888,6 +76209,17 @@ "source_location": "L4368", "weight": 1.0, "source": "app_api_crm_clue_statistics_trend", + "target": "app_core_tenant_context_get_tenant_no" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "app/api/crm.py", + "source_location": "L4372", + "weight": 1.0, + "source": "app_api_crm_clue_statistics_trend", "target": "app_crud_crm_clue_statistics_get_clue_trend_statistics" }, { @@ -75896,7 +76228,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4365", + "source_location": "L4369", "weight": 1.0, "source": "app_api_crm_clue_statistics_trend", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75906,7 +76238,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4357", + "source_location": "L4361", "weight": 1.0, "source": "app_api_crm_clue_statistics_trend", "target": "app_schemas_crm_clue_cluestatisticsbody", @@ -75918,7 +76250,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4403", + "source_location": "L4407", "weight": 1.0, "source": "app_api_crm_clue_statistics_owner", "target": "app_core_response_error_response" @@ -75929,7 +76261,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4401", + "source_location": "L4405", "weight": 1.0, "source": "app_api_crm_clue_statistics_owner", "target": "app_core_response_success_response" @@ -75940,7 +76272,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4391", + "source_location": "L4395", "weight": 1.0, "source": "app_api_crm_clue_statistics_owner", "target": "app_core_tenant_context_get_tenant_no" @@ -75951,7 +76283,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4394", + "source_location": "L4398", "weight": 1.0, "source": "app_api_crm_clue_statistics_owner", "target": "app_crud_crm_clue_statistics_get_clue_owner_statistics" @@ -75962,7 +76294,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4392", + "source_location": "L4396", "weight": 1.0, "source": "app_api_crm_clue_statistics_owner", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -75972,7 +76304,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4384", + "source_location": "L4388", "weight": 1.0, "source": "app_api_crm_clue_statistics_owner", "target": "app_schemas_crm_clue_cluestatisticsbody", @@ -75984,7 +76316,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4464", + "source_location": "L4468", "weight": 1.0, "source": "app_api_crm_price_letter_list", "target": "app_core_response_error_response" @@ -75995,7 +76327,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4454", + "source_location": "L4458", "weight": 1.0, "source": "app_api_crm_price_letter_list", "target": "app_core_response_success_response" @@ -76006,7 +76338,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4436", + "source_location": "L4440", "weight": 1.0, "source": "app_api_crm_price_letter_list", "target": "app_core_tenant_context_get_tenant_no" @@ -76017,7 +76349,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4437", + "source_location": "L4441", "weight": 1.0, "source": "app_api_crm_price_letter_list", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -76028,7 +76360,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4438", + "source_location": "L4442", "weight": 1.0, "source": "app_api_crm_price_letter_list", "target": "app_crud_crm_price_letter_list_price_letters" @@ -76038,7 +76370,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4429", + "source_location": "L4433", "weight": 1.0, "source": "app_api_crm_price_letter_list", "target": "app_schemas_crm_price_letter_priceletterlistbody", @@ -76050,7 +76382,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4481", + "source_location": "L4485", "weight": 1.0, "source": "app_api_crm_price_letter_detail", "target": "app_core_response_error_response" @@ -76061,7 +76393,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4483", + "source_location": "L4487", "weight": 1.0, "source": "app_api_crm_price_letter_detail", "target": "app_core_response_success_response" @@ -76072,7 +76404,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4477", + "source_location": "L4481", "weight": 1.0, "source": "app_api_crm_price_letter_detail", "target": "app_core_tenant_context_get_tenant_no" @@ -76083,7 +76415,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4478", + "source_location": "L4482", "weight": 1.0, "source": "app_api_crm_price_letter_detail", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -76094,7 +76426,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4482", + "source_location": "L4486", "weight": 1.0, "source": "app_api_crm_price_letter_detail", "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope" @@ -76105,7 +76437,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4479", + "source_location": "L4483", "weight": 1.0, "source": "app_api_crm_price_letter_detail", "target": "app_crud_crm_price_letter_get_price_letter" @@ -76115,7 +76447,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4470", + "source_location": "L4474", "weight": 1.0, "source": "app_api_crm_price_letter_detail", "target": "app_schemas_crm_price_letter_priceletterdetailbody", @@ -76127,7 +76459,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4512", + "source_location": "L4516", "weight": 1.0, "source": "app_api_crm_price_letter_add", "target": "app_core_response_error_response" @@ -76138,7 +76470,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4510", + "source_location": "L4514", "weight": 1.0, "source": "app_api_crm_price_letter_add", "target": "app_core_response_success_response" @@ -76149,7 +76481,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4499", + "source_location": "L4503", "weight": 1.0, "source": "app_api_crm_price_letter_add", "target": "app_core_tenant_context_get_tenant_no" @@ -76160,7 +76492,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4503", + "source_location": "L4507", "weight": 1.0, "source": "app_api_crm_price_letter_add", "target": "app_crud_crm_price_letter_create_price_letter" @@ -76170,7 +76502,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4492", + "source_location": "L4496", "weight": 1.0, "source": "app_api_crm_price_letter_add", "target": "app_schemas_crm_price_letter_pricelettercreatebody", @@ -76182,7 +76514,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4532", + "source_location": "L4536", "weight": 1.0, "source": "app_api_crm_price_letter_update", "target": "app_core_response_error_response" @@ -76193,7 +76525,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4541", + "source_location": "L4545", "weight": 1.0, "source": "app_api_crm_price_letter_update", "target": "app_core_response_success_response" @@ -76204,7 +76536,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4526", + "source_location": "L4530", "weight": 1.0, "source": "app_api_crm_price_letter_update", "target": "app_core_tenant_context_get_tenant_no" @@ -76215,7 +76547,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4527", + "source_location": "L4531", "weight": 1.0, "source": "app_api_crm_price_letter_update", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -76226,7 +76558,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4533", + "source_location": "L4537", "weight": 1.0, "source": "app_api_crm_price_letter_update", "target": "app_crud_crm_price_letter_update_price_letter" @@ -76236,7 +76568,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4519", + "source_location": "L4523", "weight": 1.0, "source": "app_api_crm_price_letter_update", "target": "app_schemas_crm_price_letter_priceletterupdatebody", @@ -76248,7 +76580,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4571", + "source_location": "L4575", "weight": 1.0, "source": "app_api_crm_price_letter_void", "target": "app_core_response_error_response" @@ -76259,7 +76591,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4569", + "source_location": "L4573", "weight": 1.0, "source": "app_api_crm_price_letter_void", "target": "app_core_response_success_response" @@ -76270,7 +76602,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4557", + "source_location": "L4561", "weight": 1.0, "source": "app_api_crm_price_letter_void", "target": "app_core_tenant_context_get_tenant_no" @@ -76281,7 +76613,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4558", + "source_location": "L4562", "weight": 1.0, "source": "app_api_crm_price_letter_void", "target": "app_crud_crm_data_scope_helpers_crm_user_info" @@ -76292,7 +76624,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "app/api/crm.py", - "source_location": "L4560", + "source_location": "L4564", "weight": 1.0, "source": "app_api_crm_price_letter_void", "target": "app_crud_crm_price_letter_void_price_letter" @@ -76302,7 +76634,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", - "source_location": "L4550", + "source_location": "L4554", "weight": 1.0, "source": "app_api_crm_price_letter_void", "target": "app_schemas_crm_price_letter_pricelettervoidbody", @@ -99053,7 +99385,17 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L62", + "source_location": "L155", + "weight": 1.0, + "source": "app_api_pl_public_io_order", + "target": "app_api_pl_public_io_order_build_history_page", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L191", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_api_pl_public_io_order_build_page", @@ -99063,7 +99405,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L74", + "source_location": "L203", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_api_pl_public_io_order_format_file_size", @@ -99073,7 +99415,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L37", + "source_location": "L48", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_api_pl_public_io_order_get_by_token", @@ -99083,7 +99425,17 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L82", + "source_location": "L83", + "weight": 1.0, + "source": "app_api_pl_public_io_order", + "target": "app_api_pl_public_io_order_history_status_label", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L211", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_api_pl_public_io_order_make_handlers", @@ -99093,7 +99445,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L31", + "source_location": "L42", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_api_pl_public_io_order_models", @@ -99103,7 +99455,27 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L55", + "source_location": "L73", + "weight": 1.0, + "source": "app_api_pl_public_io_order", + "target": "app_api_pl_public_io_order_parse_history_date", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L93", + "weight": 1.0, + "source": "app_api_pl_public_io_order", + "target": "app_api_pl_public_io_order_query_kind_history", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L66", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_api_pl_public_io_order_resolve_io_order_link_flags", @@ -99114,7 +99486,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L11", + "source_location": "L13", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_core_attachment_biz", @@ -99125,7 +99497,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L11", + "source_location": "L13", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_core_attachment_biz_resolve_upload_folder", @@ -99136,7 +99508,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L12", + "source_location": "L14", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_core_config", @@ -99147,7 +99519,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L13", + "source_location": "L15", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_core_database", @@ -99158,7 +99530,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L13", + "source_location": "L15", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_core_database_get_db", @@ -99169,7 +99541,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L14", + "source_location": "L16", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_core_response", @@ -99180,7 +99552,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L14", + "source_location": "L16", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_core_response_error_response", @@ -99191,7 +99563,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L14", + "source_location": "L16", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_core_response_success_response", @@ -99202,7 +99574,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L15", + "source_location": "L17", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_core_storage", @@ -99213,7 +99585,7 @@ "context": "submodule_import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L16", + "source_location": "L18", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_crud_oss", @@ -99224,7 +99596,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L17", + "source_location": "L19", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_models_pl_models", @@ -99235,7 +99607,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L17", + "source_location": "L19", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_models_pl_models_plinboundorder", @@ -99246,7 +99618,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L17", + "source_location": "L19", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_models_pl_models_plinboundorderitem", @@ -99257,7 +99629,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L17", + "source_location": "L19", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_models_pl_models_ploutboundorder", @@ -99268,7 +99640,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L17", + "source_location": "L19", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_models_pl_models_ploutboundorderitem", @@ -99279,7 +99651,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L17", + "source_location": "L19", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_models_pl_models_plplan", @@ -99290,7 +99662,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L24", + "source_location": "L26", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_schemas_pl_io_order", @@ -99301,18 +99673,40 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L24", + "source_location": "L26", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_schemas_pl_io_order_publicioorderfeedback", "confidence_score": 1.0 }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L26", + "weight": 1.0, + "source": "app_api_pl_public_io_order", + "target": "app_schemas_pl_io_order_publicioorderhistorypageread", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L26", + "weight": 1.0, + "source": "app_api_pl_public_io_order", + "target": "app_schemas_pl_io_order_publicioorderhistoryrecordread", + "confidence_score": 1.0 + }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L25", + "source_location": "L31", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_services_pl_io_order_service", @@ -99323,7 +99717,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L25", + "source_location": "L31", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_services_pl_io_order_service_apply_site_feedback", @@ -99334,7 +99728,18 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L25", + "source_location": "L31", + "weight": 1.0, + "source": "app_api_pl_public_io_order", + "target": "app_services_pl_io_order_service_build_io_order_site_url", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L31", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_services_pl_io_order_service_order_header_to_dict", @@ -99345,7 +99750,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L25", + "source_location": "L31", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "app_services_pl_io_order_service_parse_feedback_images", @@ -99356,7 +99761,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L8", + "source_location": "L9", "weight": 1.0, "source": "app_api_pl_public_io_order", "target": "fastapi", @@ -99399,18 +99804,40 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L38", + "source_location": "L49", "weight": 1.0, "source": "app_api_pl_public_io_order_get_by_token", "target": "app_api_pl_public_io_order_models", "confidence_score": 1.0 }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L102", + "weight": 1.0, + "source": "app_api_pl_public_io_order_query_kind_history", + "target": "app_api_pl_public_io_order_models", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L165", + "weight": 1.0, + "source": "app_api_pl_public_io_order_build_history_page", + "target": "app_api_pl_public_io_order_get_by_token", + "confidence_score": 1.0 + }, { "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L37", + "source_location": "L48", "weight": 1.0, "source": "app_api_pl_public_io_order_get_by_token", "target": "app_api_pl_public_io_order_py_session", @@ -99421,30 +99848,63 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L62", + "source_location": "L155", + "weight": 1.0, + "source": "app_api_pl_public_io_order_build_history_page", + "target": "app_api_pl_public_io_order_py_session", + "confidence_score": 1.0 + }, + { + "relation": "references", + "context": "parameter_type", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L191", "weight": 1.0, "source": "app_api_pl_public_io_order_build_page", "target": "app_api_pl_public_io_order_py_session", "confidence_score": 1.0 }, + { + "relation": "references", + "context": "parameter_type", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L93", + "weight": 1.0, + "source": "app_api_pl_public_io_order_query_kind_history", + "target": "app_api_pl_public_io_order_py_session", + "confidence_score": 1.0 + }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L64", + "source_location": "L193", "weight": 1.0, "source": "app_api_pl_public_io_order_build_page", "target": "app_api_pl_public_io_order_resolve_io_order_link_flags", "confidence_score": 1.0 }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L127", + "weight": 1.0, + "source": "app_api_pl_public_io_order_query_kind_history", + "target": "app_api_pl_public_io_order_resolve_io_order_link_flags", + "confidence_score": 1.0 + }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L56", + "source_location": "L67", "weight": 1.0, - "source": "app_api_pl_public_io_order_rationale_56", + "source": "app_api_pl_public_io_order_rationale_67", "target": "app_api_pl_public_io_order_resolve_io_order_link_flags", "confidence_score": 1.0 }, @@ -99453,7 +99913,7 @@ "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L55", + "source_location": "L66", "weight": 1.0, "source": "app_api_pl_public_io_order_resolve_io_order_link_flags", "target": "app_models_pl_models_plplan", @@ -99497,7 +99957,105 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L65", + "source_location": "L166", + "weight": 1.0, + "source": "app_api_pl_public_io_order_build_history_page", + "target": "app_api_pl_public_io_order_parse_history_date", + "confidence_score": 1.0 + }, + { + "relation": "references", + "context": "generic_arg", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L73", + "weight": 1.0, + "source": "app_api_pl_public_io_order_parse_history_date", + "target": "app_api_pl_public_io_order_py_date", + "confidence_score": 1.0 + }, + { + "relation": "references", + "context": "parameter_type", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L93", + "weight": 1.0, + "source": "app_api_pl_public_io_order_query_kind_history", + "target": "app_api_pl_public_io_order_py_date", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L148", + "weight": 1.0, + "source": "app_api_pl_public_io_order_query_kind_history", + "target": "app_api_pl_public_io_order_history_status_label", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L170", + "weight": 1.0, + "source": "app_api_pl_public_io_order_build_history_page", + "target": "app_api_pl_public_io_order_query_kind_history", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L132", + "weight": 1.0, + "source": "app_api_pl_public_io_order_query_kind_history", + "target": "app_schemas_pl_io_order_publicioorderhistoryrecordread", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L144", + "weight": 1.0, + "source": "app_api_pl_public_io_order_query_kind_history", + "target": "app_services_pl_io_order_service_build_io_order_site_url", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L101", + "weight": 1.0, + "source": "app_api_pl_public_io_order_rationale_101", + "target": "app_api_pl_public_io_order_query_kind_history", + "confidence_score": 1.0 + }, + { + "relation": "references", + "context": "return_type", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L155", + "weight": 1.0, + "source": "app_api_pl_public_io_order_build_history_page", + "target": "app_schemas_pl_io_order_publicioorderhistorypageread", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "app/api/pl/public_io_order.py", + "source_location": "L194", "weight": 1.0, "source": "app_api_pl_public_io_order_build_page", "target": "app_services_pl_io_order_service_order_header_to_dict", @@ -99508,7 +100066,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L139", + "source_location": "L292", "weight": 1.0, "source": "app_api_pl_public_io_order_make_handlers", "target": "app_core_attachment_biz_resolve_upload_folder", @@ -99519,7 +100077,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L91", + "source_location": "L236", "weight": 1.0, "source": "app_api_pl_public_io_order_make_handlers", "target": "app_core_response_error_response", @@ -99530,7 +100088,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L85", + "source_location": "L214", "weight": 1.0, "source": "app_api_pl_public_io_order_make_handlers", "target": "app_core_response_success_response", @@ -99541,7 +100099,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L107", + "source_location": "L260", "weight": 1.0, "source": "app_api_pl_public_io_order_make_handlers", "target": "app_services_pl_io_order_service_apply_site_feedback", @@ -99552,7 +100110,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", - "source_location": "L105", + "source_location": "L258", "weight": 1.0, "source": "app_api_pl_public_io_order_make_handlers", "target": "app_services_pl_io_order_service_parse_feedback_images", @@ -118217,7 +118775,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L926", + "source_location": "L933", "weight": 1.0, "source": "app_crud_crm_product_soft_delete_product", "target": "app_core_delete_guard_assert_row_deletable_by_creator", @@ -121324,17 +121882,6 @@ "target": "app_core_storage_miniostorage_extract_object_key", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/core/storage.py", - "source_location": "L400", - "weight": 1.0, - "source": "app_core_storage_miniostorage_presigned_download_url", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -121345,17 +121892,6 @@ "target": "app_core_storage_miniostorage_presigned_download_url", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/core/storage.py", - "source_location": "L420", - "weight": 1.0, - "source": "app_core_storage_miniostorage_presigned_preview_url", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -122270,6 +122806,17 @@ "target": "app_core_utils", "confidence_score": 1.0 }, + { + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L9", + "weight": 1.0, + "source": "app_services_dict_ensure", + "target": "app_core_utils", + "confidence_score": 1.0 + }, { "relation": "imports_from", "context": "import", @@ -122935,7 +123482,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1061", + "source_location": "L1068", "weight": 1.0, "source": "app_crud_crm_product_create_oss", "target": "app_core_utils_generate_uuid", @@ -122946,7 +123493,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L774", + "source_location": "L781", "weight": 1.0, "source": "app_crud_crm_product_create_product", "target": "app_core_utils_generate_uuid", @@ -122979,7 +123526,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1171", + "source_location": "L1178", "weight": 1.0, "source": "app_crud_crm_product_resolve_product_id_for_quote_item", "target": "app_core_utils_generate_uuid", @@ -123744,6 +124291,28 @@ "target": "app_core_utils_generate_uuid", "confidence_score": 1.0 }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L9", + "weight": 1.0, + "source": "app_services_dict_ensure", + "target": "app_core_utils_generate_uuid", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L76", + "weight": 1.0, + "source": "app_services_dict_ensure_ensure_dict_data", + "target": "app_core_utils_generate_uuid", + "confidence_score": 1.0 + }, { "relation": "imports", "context": "import", @@ -126200,17 +126769,6 @@ "target": "app_crud_biz_no_generator_py_session", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/biz_no_generator.py", - "source_location": "L73", - "weight": 1.0, - "source": "app_crud_biz_no_generator_allocate_next_biz_no", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -126957,17 +127515,6 @@ "target": "app_crud_crm_clue_py_date", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue.py", - "source_location": "L47", - "weight": 1.0, - "source": "app_crud_crm_clue_parse_optional_date", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -127067,17 +127614,6 @@ "target": "app_crud_crm_clue_py_datetime", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue.py", - "source_location": "L63", - "weight": 1.0, - "source": "app_crud_crm_clue_parse_optional_datetime", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -127342,17 +127878,6 @@ "target": "app_models_crm_models_crmclue", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue.py", - "source_location": "L277", - "weight": 1.0, - "source": "app_crud_crm_clue_create_clue", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -127386,39 +127911,6 @@ "target": "app_models_crm_models_crmclue", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue.py", - "source_location": "L334", - "weight": 1.0, - "source": "app_crud_crm_clue_update_clue", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue.py", - "source_location": "L399", - "weight": 1.0, - "source": "app_crud_crm_clue_soft_delete_clue", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue.py", - "source_location": "L432", - "weight": 1.0, - "source": "app_crud_crm_clue_assign_clues", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -127474,17 +127966,6 @@ "target": "app_models_crm_models_crmcustomer", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue.py", - "source_location": "L471", - "weight": 1.0, - "source": "app_crud_crm_clue_convert_clue", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -127507,28 +127988,6 @@ "target": "app_models_crm_models_crmclue", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue.py", - "source_location": "L559", - "weight": 1.0, - "source": "app_crud_crm_clue_validate_convertible", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue.py", - "source_location": "L573", - "weight": 1.0, - "source": "app_crud_crm_clue_check_convert", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -127540,28 +127999,6 @@ "target": "app_models_crm_models_crmclue", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue.py", - "source_location": "L590", - "weight": 1.0, - "source": "app_crud_crm_clue_invalid_clue", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue.py", - "source_location": "L739", - "weight": 1.0, - "source": "app_crud_crm_clue_update_clue_level", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -127573,17 +128010,6 @@ "target": "app_models_crm_models_crmclue", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue.py", - "source_location": "L763", - "weight": 1.0, - "source": "app_crud_crm_clue_update_clue_status", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -127873,17 +128299,6 @@ "target": "app_models_crm_models_crmcluefollow", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue_follow.py", - "source_location": "L57", - "weight": 1.0, - "source": "app_crud_crm_clue_follow_create_clue_follow", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -127970,17 +128385,6 @@ "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue_follow.py", - "source_location": "L116", - "weight": 1.0, - "source": "app_crud_crm_clue_follow_update_clue_follow", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -127992,17 +128396,6 @@ "target": "app_crud_crm_data_scope_helpers_apply_crm_create_by_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue_follow.py", - "source_location": "L157", - "weight": 1.0, - "source": "app_crud_crm_clue_follow_list_clue_follows", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -128046,17 +128439,6 @@ "target": "app_crud_crm_data_scope_helpers_apply_crm_create_by_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/clue_follow.py", - "source_location": "L256", - "weight": 1.0, - "source": "app_crud_crm_clue_follow_get_follow_statistics", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -128634,17 +129016,6 @@ "target": "app_crud_crm_contact_py_date", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contact.py", - "source_location": "L46", - "weight": 1.0, - "source": "app_crud_crm_contact_parse_optional_date", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -128832,17 +129203,6 @@ "target": "app_crud_crm_data_scope_helpers_ensure_crm_owner_row_in_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contact.py", - "source_location": "L166", - "weight": 1.0, - "source": "app_crud_crm_contact_list_contacts_by_customer", - "target": "valueerror" - }, { "relation": "references", "context": "generic_arg", @@ -128986,17 +129346,6 @@ "target": "app_models_crm_models_crmcontact", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contact.py", - "source_location": "L211", - "weight": 1.0, - "source": "app_crud_crm_contact_create_contact", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -129019,17 +129368,6 @@ "target": "app_models_crm_models_crmcontact", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contact.py", - "source_location": "L266", - "weight": 1.0, - "source": "app_crud_crm_contact_update_contact", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -129052,17 +129390,6 @@ "target": "app_models_crm_models_crmcontact", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contact.py", - "source_location": "L306", - "weight": 1.0, - "source": "app_crud_crm_contact_set_primary_contact", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -129085,17 +129412,6 @@ "target": "app_crud_crm_data_scope_helpers_ensure_crm_contact_row_in_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contact.py", - "source_location": "L335", - "weight": 1.0, - "source": "app_crud_crm_contact_soft_delete_contact", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -131315,17 +131631,6 @@ "target": "app_models_crm_models_crmcontract", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L66", - "weight": 1.0, - "source": "app_crud_crm_contract_get_contract_row_in_scope", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -132129,17 +132434,6 @@ "target": "app_crud_crm_contract_py_date", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L103", - "weight": 1.0, - "source": "app_crud_crm_contract_parse_optional_date", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -132206,17 +132500,6 @@ "target": "app_crud_crm_contract_py_datetime", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L119", - "weight": 1.0, - "source": "app_crud_crm_contract_parse_optional_datetime", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -132820,17 +133103,6 @@ "target": "app_crud_crm_contract_get_contract_detail", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L596", - "weight": 1.0, - "source": "app_crud_crm_contract_get_contract_detail", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -133006,17 +133278,6 @@ "target": "app_crud_crm_supplier_info_get_supplier_info", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L720", - "weight": 1.0, - "source": "app_crud_crm_contract_generate_contract_no", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -133168,17 +133429,6 @@ "target": "app_crud_crm_contract_replace_contract_no_date", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L785", - "weight": 1.0, - "source": "app_crud_crm_contract_align_contract_no_to_sign_date", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -133538,17 +133788,6 @@ "target": "app_crud_crm_contract_validate_contract_type_and_products", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L960", - "weight": 1.0, - "source": "app_crud_crm_contract_validate_contract_type_and_products", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -133593,17 +133832,6 @@ "target": "app_crud_crm_contract_validate_product_prices_by_contract_type", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L993", - "weight": 1.0, - "source": "app_crud_crm_contract_validate_product_prices_by_contract_type", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -133626,17 +133854,6 @@ "target": "app_crud_crm_contract_validate_sale_purchase_contract_amount", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1004", - "weight": 1.0, - "source": "app_crud_crm_contract_validate_sale_purchase_contract_amount", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -133714,17 +133931,6 @@ "target": "app_models_crm_models_crmcontract", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1132", - "weight": 1.0, - "source": "app_crud_crm_contract_apply_contract_entity_fields", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -133780,17 +133986,6 @@ "target": "app_services_crm_supplier_hazard_assert_products_allowed_for_supplier", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1222", - "weight": 1.0, - "source": "app_crud_crm_contract_create_contract", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -133824,17 +134019,6 @@ "target": "app_crud_crm_contract_create_contract", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1323", - "weight": 1.0, - "source": "app_crud_crm_contract_assert_contract_editable_for_update", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -133934,17 +134118,6 @@ "target": "app_services_crm_supplier_hazard_assert_products_allowed_for_supplier", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1339", - "weight": 1.0, - "source": "app_crud_crm_contract_update_contract", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -133955,17 +134128,6 @@ "target": "app_crud_crm_contract_soft_delete_contracts", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1453", - "weight": 1.0, - "source": "app_crud_crm_contract_soft_delete_contracts", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -134009,17 +134171,6 @@ "target": "app_models_crm_models_crmcontract", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1472", - "weight": 1.0, - "source": "app_crud_crm_contract_validate_framework_contract_for_submit_approval", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -134053,17 +134204,6 @@ "target": "app_crud_crm_contract_approval_invalidate_all_approvals", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1495", - "weight": 1.0, - "source": "app_crud_crm_contract_submit_contract_approval", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -134095,50 +134235,6 @@ "target": "app_crud_crm_contract_approval_delete_pending_approvals", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1568", - "weight": 1.0, - "source": "app_crud_crm_contract_withdraw_contract_approval", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1594", - "weight": 1.0, - "source": "app_crud_crm_contract_start_execute", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1617", - "weight": 1.0, - "source": "app_crud_crm_contract_finish_contract", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1640", - "weight": 1.0, - "source": "app_crud_crm_contract_invalid_contract", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -134150,50 +134246,6 @@ "target": "app_services_crm_settlement_clause_default_settlement_clause", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1668", - "weight": 1.0, - "source": "app_crud_crm_contract_save_template", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1694", - "weight": 1.0, - "source": "app_crud_crm_contract_get_template", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1708", - "weight": 1.0, - "source": "app_crud_crm_contract_upload_file", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1724", - "weight": 1.0, - "source": "app_crud_crm_contract_upload_attachments", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -134204,17 +134256,6 @@ "target": "app_crud_crm_contract_upload_attachments_with_category", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L1751", - "weight": 1.0, - "source": "app_crud_crm_contract_upload_attachments_with_category", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -134303,17 +134344,6 @@ "target": "app_crud_crm_quote_product_list_quote_products", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2031", - "weight": 1.0, - "source": "app_crud_crm_contract_create_from_quote", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -134367,17 +134397,6 @@ "target": "app_crud_crm_contract_product_list_contract_products", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2094", - "weight": 1.0, - "source": "app_crud_crm_contract_renew_contract", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -134465,17 +134484,6 @@ "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2220", - "weight": 1.0, - "source": "app_crud_crm_contract_get_contract_change_detail", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -134553,17 +134561,6 @@ "target": "app_crud_crm_contract_get_contract_template_detail", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2301", - "weight": 1.0, - "source": "app_crud_crm_contract_get_contract_template_detail", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -134597,17 +134594,6 @@ "target": "app_crud_crm_opportunity_product_list_products_by_opportunity", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2351", - "weight": 1.0, - "source": "app_crud_crm_contract_create_from_opportunity", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -134618,28 +134604,6 @@ "target": "app_crud_crm_contract_create_from_opportunity", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2397", - "weight": 1.0, - "source": "app_crud_crm_contract_sign_contract", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2426", - "weight": 1.0, - "source": "app_crud_crm_contract_batch_assign_owner", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -134650,17 +134614,6 @@ "target": "app_crud_crm_contract_batch_assign_owner", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2458", - "weight": 1.0, - "source": "app_crud_crm_contract_download_contract_pdf", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -134682,17 +134635,6 @@ "target": "app_crud_crm_contract_generate_template_no", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2494", - "weight": 1.0, - "source": "app_crud_crm_contract_generate_template_no", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -134791,17 +134733,6 @@ "target": "app_models_crm_models_crmcontractchange", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2534", - "weight": 1.0, - "source": "app_crud_crm_contract_create_contract_change", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -134813,17 +134744,6 @@ "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2586", - "weight": 1.0, - "source": "app_crud_crm_contract_update_contract_change", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -134835,17 +134755,6 @@ "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2630", - "weight": 1.0, - "source": "app_crud_crm_contract_soft_delete_contract_changes", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -134856,39 +134765,6 @@ "target": "app_crud_crm_contract_submit_change_approval", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2651", - "weight": 1.0, - "source": "app_crud_crm_contract_submit_change_approval", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2665", - "weight": 1.0, - "source": "app_crud_crm_contract_withdraw_change", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2678", - "weight": 1.0, - "source": "app_crud_crm_contract_execute_change", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -134900,17 +134776,6 @@ "target": "app_models_crm_models_crmcontracttemplate", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2713", - "weight": 1.0, - "source": "app_crud_crm_contract_create_contract_template", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -134922,17 +134787,6 @@ "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2772", - "weight": 1.0, - "source": "app_crud_crm_contract_update_contract_template", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -134944,28 +134798,6 @@ "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2835", - "weight": 1.0, - "source": "app_crud_crm_contract_soft_delete_contract_templates", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract.py", - "source_location": "L2862", - "weight": 1.0, - "source": "app_crud_crm_contract_toggle_contract_template_active", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -135628,17 +135460,6 @@ "target": "app_crud_crm_contract_approval_get_contract_approval", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract_approval.py", - "source_location": "L72", - "weight": 1.0, - "source": "app_crud_crm_contract_approval_get_contract_approval_detail", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -135683,17 +135504,6 @@ "target": "app_models_crm_models_crmcontractapproval", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract_approval.py", - "source_location": "L150", - "weight": 1.0, - "source": "app_crud_crm_contract_approval_create_approval_records", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -135822,17 +135632,6 @@ "target": "app_crud_crm_contract_approval_advance_contract_after_approval", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract_approval.py", - "source_location": "L313", - "weight": 1.0, - "source": "app_crud_crm_contract_approval_approve_contract", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -135876,17 +135675,6 @@ "target": "app_crud_crm_contract_approval_approve_contract", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract_approval.py", - "source_location": "L360", - "weight": 1.0, - "source": "app_crud_crm_contract_approval_approve_contract_by_contract_id", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -135907,17 +135695,6 @@ "target": "app_crud_crm_contract_approval_refresh_approver_names", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract_approval.py", - "source_location": "L437", - "weight": 1.0, - "source": "app_crud_crm_contract_approval_approve_transfer", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -136155,17 +135932,6 @@ "target": "app_crud_crm_contract_approver_setting_py_session", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract_approver_setting.py", - "source_location": "L49", - "weight": 1.0, - "source": "app_crud_crm_contract_approver_setting_assert_users_exist", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -136887,17 +136653,6 @@ "target": "app_models_crm_models_crmcontractproduct", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract_product.py", - "source_location": "L225", - "weight": 1.0, - "source": "app_crud_crm_contract_product_insert_contract_product", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -136962,17 +136717,6 @@ "target": "app_models_crm_models_crmcontractproductpricetier", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/contract_product.py", - "source_location": "L396", - "weight": 1.0, - "source": "app_crud_crm_contract_product_save_price_tiers_for_product", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -137836,17 +137580,6 @@ "target": "app_crud_crm_customer_py_date", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/customer.py", - "source_location": "L52", - "weight": 1.0, - "source": "app_crud_crm_customer_parse_optional_date", - "target": "valueerror" - }, { "relation": "references", "context": "generic_arg", @@ -137946,17 +137679,6 @@ "target": "app_crud_crm_customer_py_datetime", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/customer.py", - "source_location": "L68", - "weight": 1.0, - "source": "app_crud_crm_customer_parse_optional_datetime", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -138093,7 +137815,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", - "source_location": "L59", + "source_location": "L89", "weight": 1.0, "source": "tests_test_crm_name_pinyin_search_test_list_customer_options_keyword_includes_name_and_pinyin", "target": "app_crud_crm_customer_list_customer_options", @@ -138137,7 +137859,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", - "source_location": "L42", + "source_location": "L72", "weight": 1.0, "source": "tests_test_crm_name_pinyin_search_test_list_customers_keyword_includes_name_and_pinyin", "target": "app_crud_crm_customer_list_customers", @@ -138484,28 +138206,6 @@ "target": "app_utils_pinyin_abbr_resolve_name_pinyin_abbr", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/customer.py", - "source_location": "L536", - "weight": 1.0, - "source": "app_crud_crm_customer_update_customer", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/customer.py", - "source_location": "L595", - "weight": 1.0, - "source": "app_crud_crm_customer_soft_delete_customer", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -138528,17 +138228,6 @@ "target": "app_models_crm_models_crmcustomer", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/customer.py", - "source_location": "L618", - "weight": 1.0, - "source": "app_crud_crm_customer_transfer_customer", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -138550,17 +138239,6 @@ "target": "app_models_crm_models_crmcustomer", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/customer.py", - "source_location": "L660", - "weight": 1.0, - "source": "app_crud_crm_customer_deal_customer", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -138583,17 +138261,6 @@ "target": "app_models_crm_models_crmcustomer", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/customer.py", - "source_location": "L687", - "weight": 1.0, - "source": "app_crud_crm_customer_into_pool", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -138627,17 +138294,6 @@ "target": "app_models_crm_models_crmcustomer", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/customer.py", - "source_location": "L728", - "weight": 1.0, - "source": "app_crud_crm_customer_claim_customer", - "target": "valueerror" - }, { "relation": "references", "context": "generic_arg", @@ -139069,17 +138725,6 @@ "target": "app_models_crm_models_crmcustomerfollow", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/customer_follow.py", - "source_location": "L166", - "weight": 1.0, - "source": "app_crud_crm_customer_follow_create_follow", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -139102,17 +138747,6 @@ "target": "app_models_crm_models_crmcustomerfollow", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/customer_follow.py", - "source_location": "L215", - "weight": 1.0, - "source": "app_crud_crm_customer_follow_update_follow", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -139124,17 +138758,6 @@ "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/customer_follow.py", - "source_location": "L240", - "weight": 1.0, - "source": "app_crud_crm_customer_follow_soft_delete_follow", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -139765,7 +139388,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L581", + "source_location": "L587", "weight": 1.0, "source": "app_crud_crm_product_list_products", "target": "app_crud_crm_data_scope_helpers_apply_crm_create_by_scope", @@ -139826,17 +139449,6 @@ "target": "app_crud_crm_data_scope_helpers_apply_crm_create_by_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/data_scope_helpers.py", - "source_location": "L45", - "weight": 1.0, - "source": "app_crud_crm_data_scope_helpers_ensure_crm_owner_row_in_scope", - "target": "valueerror" - }, { "relation": "imports", "context": "import", @@ -139914,17 +139526,6 @@ "target": "app_crud_crm_data_scope_helpers_ensure_crm_owner_row_in_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/data_scope_helpers.py", - "source_location": "L54", - "weight": 1.0, - "source": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", - "target": "valueerror" - }, { "relation": "imports", "context": "import", @@ -140073,7 +139674,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L923", + "source_location": "L930", "weight": 1.0, "source": "app_crud_crm_product_soft_delete_product", "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", @@ -140095,7 +139696,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L834", + "source_location": "L841", "weight": 1.0, "source": "app_crud_crm_product_update_product", "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", @@ -140134,17 +139735,6 @@ "target": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/data_scope_helpers.py", - "source_location": "L75", - "weight": 1.0, - "source": "app_crud_crm_data_scope_helpers_ensure_crm_contact_row_in_scope", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -140155,17 +139745,6 @@ "target": "app_crud_crm_data_scope_helpers_ensure_crm_contact_row_in_scope", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/data_scope_helpers.py", - "source_location": "L102", - "weight": 1.0, - "source": "app_crud_crm_data_scope_helpers_ensure_crm_customer_linked_row_in_scope", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -140377,17 +139956,6 @@ "target": "app_crud_crm_invoice_info_py_session", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/invoice_info.py", - "source_location": "L55", - "weight": 1.0, - "source": "app_crud_crm_invoice_info_list_invoice_info_by_customer", - "target": "valueerror" - }, { "relation": "references", "context": "parameter_type", @@ -140542,17 +140110,6 @@ "target": "app_models_crm_models_crminvoiceinfo", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/invoice_info.py", - "source_location": "L111", - "weight": 1.0, - "source": "app_crud_crm_invoice_info_create_invoice_info", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -140564,17 +140121,6 @@ "target": "app_models_crm_models_crminvoiceinfo", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/invoice_info.py", - "source_location": "L166", - "weight": 1.0, - "source": "app_crud_crm_invoice_info_update_invoice_info", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -140586,28 +140132,6 @@ "target": "app_models_crm_models_crminvoiceinfo", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/invoice_info.py", - "source_location": "L218", - "weight": 1.0, - "source": "app_crud_crm_invoice_info_set_default_invoice_info", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/invoice_info.py", - "source_location": "L244", - "weight": 1.0, - "source": "app_crud_crm_invoice_info_soft_delete_invoice_info", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -141661,17 +141185,6 @@ "target": "app_crud_crm_opportunity_py_date", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity.py", - "source_location": "L101", - "weight": 1.0, - "source": "app_crud_crm_opportunity_parse_optional_date", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -141936,17 +141449,6 @@ "target": "app_crud_crm_opportunity_py_datetime", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity.py", - "source_location": "L117", - "weight": 1.0, - "source": "app_crud_crm_opportunity_parse_optional_datetime", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -142233,17 +141735,6 @@ "target": "app_models_crm_models_crmopportunity", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity.py", - "source_location": "L168", - "weight": 1.0, - "source": "app_crud_crm_opportunity_guard_terminal_status", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -142442,17 +141933,6 @@ "target": "app_crud_crm_opportunity_generate_opportunity_no", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity.py", - "source_location": "L433", - "weight": 1.0, - "source": "app_crud_crm_opportunity_generate_opportunity_no", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -142475,17 +141955,6 @@ "target": "app_models_crm_models_crmopportunity", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity.py", - "source_location": "L447", - "weight": 1.0, - "source": "app_crud_crm_opportunity_fill_customer_contact", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -142563,28 +142032,6 @@ "target": "app_models_crm_models_crmopportunity", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity.py", - "source_location": "L594", - "weight": 1.0, - "source": "app_crud_crm_opportunity_update_opportunity", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity.py", - "source_location": "L659", - "weight": 1.0, - "source": "app_crud_crm_opportunity_soft_delete_opportunities", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -142596,17 +142043,6 @@ "target": "app_crud_crm_opportunity_change_stage", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity.py", - "source_location": "L727", - "weight": 1.0, - "source": "app_crud_crm_opportunity_change_stage", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -142618,50 +142054,6 @@ "target": "app_crud_crm_opportunity_update_customer_deal_status", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity.py", - "source_location": "L798", - "weight": 1.0, - "source": "app_crud_crm_opportunity_mark_won", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity.py", - "source_location": "L853", - "weight": 1.0, - "source": "app_crud_crm_opportunity_mark_lost", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity.py", - "source_location": "L950", - "weight": 1.0, - "source": "app_crud_crm_opportunity_batch_update_expect_date", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity.py", - "source_location": "L1009", - "weight": 1.0, - "source": "app_crud_crm_opportunity_get_stage_log_list", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -142849,17 +142241,6 @@ "target": "app_crud_crm_opportunity_follow_py_datetime", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity_follow.py", - "source_location": "L39", - "weight": 1.0, - "source": "app_crud_crm_opportunity_follow_parse_optional_datetime", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -143135,17 +142516,6 @@ "target": "app_models_crm_models_crmopportunity", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity_follow.py", - "source_location": "L124", - "weight": 1.0, - "source": "app_crud_crm_opportunity_follow_ensure_parent_opportunity", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -143179,28 +142549,6 @@ "target": "app_models_crm_models_crmopportunityfollow", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity_follow.py", - "source_location": "L206", - "weight": 1.0, - "source": "app_crud_crm_opportunity_follow_create_opportunity_follow", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity_follow.py", - "source_location": "L259", - "weight": 1.0, - "source": "app_crud_crm_opportunity_follow_update_opportunity_follow", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -143792,17 +143140,6 @@ "target": "app_models_crm_models_crmopportunity", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity_product.py", - "source_location": "L114", - "weight": 1.0, - "source": "app_crud_crm_opportunity_product_get_opportunity_for_product", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -143880,28 +143217,6 @@ "target": "app_models_crm_models_crmopportunityproduct", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity_product.py", - "source_location": "L247", - "weight": 1.0, - "source": "app_crud_crm_opportunity_product_batch_add_opportunity_products", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/opportunity_product.py", - "source_location": "L274", - "weight": 1.0, - "source": "app_crud_crm_opportunity_product_update_opportunity_product", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -144254,28 +143569,6 @@ "target": "app_models_crm_models_crmcustomerpoolrule", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/pool_rule.py", - "source_location": "L142", - "weight": 1.0, - "source": "app_crud_crm_pool_rule_update_pool_rule", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/pool_rule.py", - "source_location": "L175", - "weight": 1.0, - "source": "app_crud_crm_pool_rule_delete_pool_rules", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -144287,17 +143580,6 @@ "target": "app_models_crm_models_crmcustomerpoolrule", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/pool_rule.py", - "source_location": "L195", - "weight": 1.0, - "source": "app_crud_crm_pool_rule_update_pool_rule_status", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -144541,17 +143823,6 @@ "target": "app_crud_crm_price_letter_py_date", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/price_letter.py", - "source_location": "L49", - "weight": 1.0, - "source": "app_crud_crm_price_letter_parse_date", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -144640,17 +143911,6 @@ "target": "app_crud_crm_price_letter_validate_letter_payload", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/price_letter.py", - "source_location": "L92", - "weight": 1.0, - "source": "app_crud_crm_price_letter_validate_letter_payload", - "target": "valueerror" - }, { "relation": "references", "context": "parameter_type", @@ -144761,17 +144021,6 @@ "target": "app_models_crm_models_crmpriceletter", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/price_letter.py", - "source_location": "L198", - "weight": 1.0, - "source": "app_crud_crm_price_letter_create_price_letter", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -144794,17 +144043,6 @@ "target": "app_models_crm_models_crmpriceletter", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/price_letter.py", - "source_location": "L277", - "weight": 1.0, - "source": "app_crud_crm_price_letter_update_price_letter", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -144816,17 +144054,6 @@ "target": "app_models_crm_models_crmpriceletter", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/price_letter.py", - "source_location": "L360", - "weight": 1.0, - "source": "app_crud_crm_price_letter_void_price_letter", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -144851,7 +144078,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L948", + "source_location": "L955", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_barcode_exists", @@ -144921,7 +144148,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1052", + "source_location": "L1059", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_create_oss", @@ -144931,7 +144158,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L737", + "source_location": "L744", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_create_product", @@ -144941,7 +144168,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1109", + "source_location": "L1116", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_generate_auto_product_no", @@ -144951,7 +144178,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L709", + "source_location": "L716", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_generate_barcode", @@ -144961,7 +144188,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L696", + "source_location": "L703", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_generate_product_no", @@ -144981,7 +144208,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L644", + "source_location": "L651", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_get_product", @@ -144991,7 +144218,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L656", + "source_location": "L663", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_get_product_by_no", @@ -145001,7 +144228,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1102", + "source_location": "L1109", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_get_quote_item_field", @@ -145031,7 +144258,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1036", + "source_location": "L1043", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_list_oss_by_biz", @@ -145041,7 +144268,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L965", + "source_location": "L972", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_list_product_options", @@ -145071,7 +144298,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L675", + "source_location": "L682", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_max_sxwl_product_seq", @@ -145081,7 +144308,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1095", + "source_location": "L1102", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_normalize_text", @@ -145091,7 +144318,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1018", + "source_location": "L1025", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_oss_row_to_dict", @@ -145101,7 +144328,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L931", + "source_location": "L938", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_product_no_exists", @@ -145151,7 +144378,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1114", + "source_location": "L1121", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_resolve_product_id_for_quote_item", @@ -145171,7 +144398,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1084", + "source_location": "L1091", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_soft_delete_oss", @@ -145181,7 +144408,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L918", + "source_location": "L925", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_soft_delete_product", @@ -145211,7 +144438,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L822", + "source_location": "L829", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_crud_crm_product_update_product", @@ -145332,7 +144559,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L605", + "source_location": "L612", "weight": 1.0, "source": "app_crud_crm_product", "target": "app_services_crm_supplier_hazard_get_supplier_hazard_flags", @@ -145561,7 +144788,7 @@ "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1036", + "source_location": "L1043", "weight": 1.0, "source": "app_crud_crm_product_list_oss_by_biz", "target": "app_crud_crm_product_py_any", @@ -145572,7 +144799,7 @@ "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L965", + "source_location": "L972", "weight": 1.0, "source": "app_crud_crm_product_list_product_options", "target": "app_crud_crm_product_py_any", @@ -145605,7 +144832,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1095", + "source_location": "L1102", "weight": 1.0, "source": "app_crud_crm_product_normalize_text", "target": "app_crud_crm_product_py_any", @@ -145616,7 +144843,7 @@ "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1018", + "source_location": "L1025", "weight": 1.0, "source": "app_crud_crm_product_oss_row_to_dict", "target": "app_crud_crm_product_py_any", @@ -145714,7 +144941,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L948", + "source_location": "L955", "weight": 1.0, "source": "app_crud_crm_product_barcode_exists", "target": "app_crud_crm_product_py_session", @@ -145747,7 +144974,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1052", + "source_location": "L1059", "weight": 1.0, "source": "app_crud_crm_product_create_oss", "target": "app_crud_crm_product_py_session", @@ -145758,7 +144985,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L737", + "source_location": "L744", "weight": 1.0, "source": "app_crud_crm_product_create_product", "target": "app_crud_crm_product_py_session", @@ -145769,7 +144996,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1109", + "source_location": "L1116", "weight": 1.0, "source": "app_crud_crm_product_generate_auto_product_no", "target": "app_crud_crm_product_py_session", @@ -145780,7 +145007,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L709", + "source_location": "L716", "weight": 1.0, "source": "app_crud_crm_product_generate_barcode", "target": "app_crud_crm_product_py_session", @@ -145791,7 +145018,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L696", + "source_location": "L703", "weight": 1.0, "source": "app_crud_crm_product_generate_product_no", "target": "app_crud_crm_product_py_session", @@ -145813,7 +145040,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L644", + "source_location": "L651", "weight": 1.0, "source": "app_crud_crm_product_get_product", "target": "app_crud_crm_product_py_session", @@ -145824,7 +145051,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L656", + "source_location": "L663", "weight": 1.0, "source": "app_crud_crm_product_get_product_by_no", "target": "app_crud_crm_product_py_session", @@ -145846,7 +145073,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1036", + "source_location": "L1043", "weight": 1.0, "source": "app_crud_crm_product_list_oss_by_biz", "target": "app_crud_crm_product_py_session", @@ -145857,7 +145084,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L965", + "source_location": "L972", "weight": 1.0, "source": "app_crud_crm_product_list_product_options", "target": "app_crud_crm_product_py_session", @@ -145890,7 +145117,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L675", + "source_location": "L682", "weight": 1.0, "source": "app_crud_crm_product_max_sxwl_product_seq", "target": "app_crud_crm_product_py_session", @@ -145901,7 +145128,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L931", + "source_location": "L938", "weight": 1.0, "source": "app_crud_crm_product_product_no_exists", "target": "app_crud_crm_product_py_session", @@ -145945,7 +145172,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1114", + "source_location": "L1121", "weight": 1.0, "source": "app_crud_crm_product_resolve_product_id_for_quote_item", "target": "app_crud_crm_product_py_session", @@ -145967,7 +145194,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1084", + "source_location": "L1091", "weight": 1.0, "source": "app_crud_crm_product_soft_delete_oss", "target": "app_crud_crm_product_py_session", @@ -145978,7 +145205,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L918", + "source_location": "L925", "weight": 1.0, "source": "app_crud_crm_product_soft_delete_product", "target": "app_crud_crm_product_py_session", @@ -146000,7 +145227,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L822", + "source_location": "L829", "weight": 1.0, "source": "app_crud_crm_product_update_product", "target": "app_crud_crm_product_py_session", @@ -146074,7 +145301,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L759", + "source_location": "L766", "weight": 1.0, "source": "app_crud_crm_product_create_product", "target": "app_crud_crm_product_get_category", @@ -146096,7 +145323,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1166", + "source_location": "L1173", "weight": 1.0, "source": "app_crud_crm_product_resolve_product_id_for_quote_item", "target": "app_crud_crm_product_get_category", @@ -146129,7 +145356,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L889", + "source_location": "L896", "weight": 1.0, "source": "app_crud_crm_product_update_product", "target": "app_crud_crm_product_get_category", @@ -146157,28 +145384,6 @@ "target": "app_models_crm_models_crmproductcategory", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/product.py", - "source_location": "L206", - "weight": 1.0, - "source": "app_crud_crm_product_update_category", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/product.py", - "source_location": "L238", - "weight": 1.0, - "source": "app_crud_crm_product_soft_delete_category", - "target": "valueerror" - }, { "relation": "references", "context": "parameter_type", @@ -146228,7 +145433,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L633", + "source_location": "L640", "weight": 1.0, "source": "app_crud_crm_product_list_products", "target": "app_crud_crm_product_load_brands_aliases_maps", @@ -146261,7 +145466,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L803", + "source_location": "L810", "weight": 1.0, "source": "app_crud_crm_product_create_product", "target": "app_crud_crm_product_replace_product_brands", @@ -146283,7 +145488,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L895", + "source_location": "L902", "weight": 1.0, "source": "app_crud_crm_product_update_product", "target": "app_crud_crm_product_replace_product_brands", @@ -146294,7 +145499,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L810", + "source_location": "L817", "weight": 1.0, "source": "app_crud_crm_product_create_product", "target": "app_crud_crm_product_replace_product_aliases", @@ -146316,7 +145521,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L903", + "source_location": "L910", "weight": 1.0, "source": "app_crud_crm_product_update_product", "target": "app_crud_crm_product_replace_product_aliases", @@ -146327,7 +145532,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L635", + "source_location": "L642", "weight": 1.0, "source": "app_crud_crm_product_list_products", "target": "app_crud_crm_product_product_row_to_dict", @@ -146381,12 +145586,22 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L607", + "source_location": "L614", "weight": 1.0, "source": "app_crud_crm_product_list_products", "target": "app_services_crm_supplier_hazard_get_supplier_hazard_flags", "confidence_score": 1.0 }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "app/crud/crm/product.py", + "source_location": "L577", + "weight": 1.0, + "source": "app_crud_crm_product_rationale_577", + "target": "app_crud_crm_product_list_products", + "confidence_score": 1.0 + }, { "relation": "imports", "context": "import", @@ -146409,12 +145624,23 @@ "target": "app_crud_crm_product_list_products", "confidence_score": 1.0 }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_crm_name_pinyin_search.py", + "source_location": "L44", + "weight": 1.0, + "source": "tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", + "target": "app_crud_crm_product_list_products", + "confidence_score": 1.0 + }, { "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L644", + "source_location": "L651", "weight": 1.0, "source": "app_crud_crm_product_get_product", "target": "app_models_crm_models_crmproduct", @@ -146425,7 +145651,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1127", + "source_location": "L1134", "weight": 1.0, "source": "app_crud_crm_product_resolve_product_id_for_quote_item", "target": "app_crud_crm_product_get_product", @@ -146436,7 +145662,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L920", + "source_location": "L927", "weight": 1.0, "source": "app_crud_crm_product_soft_delete_product", "target": "app_crud_crm_product_get_product", @@ -146447,7 +145673,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L831", + "source_location": "L838", "weight": 1.0, "source": "app_crud_crm_product_update_product", "target": "app_crud_crm_product_get_product", @@ -146524,7 +145750,7 @@ "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L656", + "source_location": "L663", "weight": 1.0, "source": "app_crud_crm_product_get_product_by_no", "target": "app_models_crm_models_crmproduct", @@ -146535,7 +145761,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L698", + "source_location": "L705", "weight": 1.0, "source": "app_crud_crm_product_generate_product_no", "target": "app_crud_crm_product_max_sxwl_product_seq", @@ -146545,9 +145771,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L676", + "source_location": "L683", "weight": 1.0, - "source": "app_crud_crm_product_rationale_676", + "source": "app_crud_crm_product_rationale_683", "target": "app_crud_crm_product_max_sxwl_product_seq", "confidence_score": 1.0 }, @@ -146556,7 +145782,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L747", + "source_location": "L754", "weight": 1.0, "source": "app_crud_crm_product_create_product", "target": "app_crud_crm_product_generate_product_no", @@ -146567,7 +145793,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1111", + "source_location": "L1118", "weight": 1.0, "source": "app_crud_crm_product_generate_auto_product_no", "target": "app_crud_crm_product_generate_product_no", @@ -146578,30 +145804,19 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L703", + "source_location": "L710", "weight": 1.0, "source": "app_crud_crm_product_generate_product_no", "target": "app_crud_crm_product_product_no_exists", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/product.py", - "source_location": "L701", - "weight": 1.0, - "source": "app_crud_crm_product_generate_product_no", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L697", + "source_location": "L704", "weight": 1.0, - "source": "app_crud_crm_product_rationale_697", + "source": "app_crud_crm_product_rationale_704", "target": "app_crud_crm_product_generate_product_no", "confidence_score": 1.0 }, @@ -146610,7 +145825,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L751", + "source_location": "L758", "weight": 1.0, "source": "app_crud_crm_product_create_product", "target": "app_crud_crm_product_generate_barcode", @@ -146620,9 +145835,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L710", + "source_location": "L717", "weight": 1.0, - "source": "app_crud_crm_product_rationale_710", + "source": "app_crud_crm_product_rationale_717", "target": "app_crud_crm_product_generate_barcode", "confidence_score": 1.0 }, @@ -146631,7 +145846,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L752", + "source_location": "L759", "weight": 1.0, "source": "app_crud_crm_product_create_product", "target": "app_crud_crm_product_barcode_exists", @@ -146642,7 +145857,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L749", + "source_location": "L756", "weight": 1.0, "source": "app_crud_crm_product_create_product", "target": "app_crud_crm_product_normalize_text", @@ -146653,7 +145868,7 @@ "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L737", + "source_location": "L744", "weight": 1.0, "source": "app_crud_crm_product_create_product", "target": "app_models_crm_models_crmproduct", @@ -146664,29 +145879,18 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L767", + "source_location": "L774", "weight": 1.0, "source": "app_crud_crm_product_create_product", "target": "app_utils_pinyin_abbr_resolve_name_pinyin_abbr", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/product.py", - "source_location": "L753", - "weight": 1.0, - "source": "app_crud_crm_product_create_product", - "target": "valueerror" - }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L880", + "source_location": "L887", "weight": 1.0, "source": "app_crud_crm_product_update_product", "target": "app_crud_crm_product_barcode_exists", @@ -146697,7 +145901,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L879", + "source_location": "L886", "weight": 1.0, "source": "app_crud_crm_product_update_product", "target": "app_crud_crm_product_normalize_text", @@ -146708,7 +145912,7 @@ "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L822", + "source_location": "L829", "weight": 1.0, "source": "app_crud_crm_product_update_product", "target": "app_models_crm_models_crmproduct", @@ -146719,34 +145923,12 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L871", + "source_location": "L878", "weight": 1.0, "source": "app_crud_crm_product_update_product", "target": "app_utils_pinyin_abbr_resolve_name_pinyin_abbr", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/product.py", - "source_location": "L833", - "weight": 1.0, - "source": "app_crud_crm_product_update_product", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/product.py", - "source_location": "L922", - "weight": 1.0, - "source": "app_crud_crm_product_soft_delete_product", - "target": "valueerror" - }, { "relation": "imports", "context": "import", @@ -146774,7 +145956,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1049", + "source_location": "L1056", "weight": 1.0, "source": "app_crud_crm_product_list_oss_by_biz", "target": "app_crud_crm_product_oss_row_to_dict", @@ -146785,7 +145967,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1018", + "source_location": "L1025", "weight": 1.0, "source": "app_crud_crm_product_oss_row_to_dict", "target": "app_models_crm_models_sysoss", @@ -146796,7 +145978,7 @@ "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1052", + "source_location": "L1059", "weight": 1.0, "source": "app_crud_crm_product_create_oss", "target": "app_models_crm_models_sysoss", @@ -146807,7 +145989,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1131", + "source_location": "L1138", "weight": 1.0, "source": "app_crud_crm_product_resolve_product_id_for_quote_item", "target": "app_crud_crm_product_normalize_text", @@ -146818,7 +146000,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1125", + "source_location": "L1132", "weight": 1.0, "source": "app_crud_crm_product_resolve_product_id_for_quote_item", "target": "app_crud_crm_product_get_quote_item_field", @@ -146828,33 +146010,12 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1110", + "source_location": "L1117", "weight": 1.0, - "source": "app_crud_crm_product_rationale_1110", + "source": "app_crud_crm_product_rationale_1117", "target": "app_crud_crm_product_generate_auto_product_no", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "app/crud/crm/product.py", - "source_location": "L1163", - "weight": 1.0, - "source": "app_crud_crm_product_resolve_product_id_for_quote_item", - "target": "app_crud_crm_product_generate_auto_product_no", - "confidence_score": 1.0 - }, - { - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "app/crud/crm/product.py", - "source_location": "L1121", - "weight": 1.0, - "source": "app_crud_crm_product_rationale_1121", - "target": "app_crud_crm_product_resolve_product_id_for_quote_item", - "confidence_score": 1.0 - }, { "relation": "calls", "context": "call", @@ -146863,19 +146024,29 @@ "source_location": "L1170", "weight": 1.0, "source": "app_crud_crm_product_resolve_product_id_for_quote_item", - "target": "app_models_crm_models_crmproduct", + "target": "app_crud_crm_product_generate_auto_product_no", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "app/crud/crm/product.py", + "source_location": "L1128", + "weight": 1.0, + "source": "app_crud_crm_product_rationale_1128", + "target": "app_crud_crm_product_resolve_product_id_for_quote_item", "confidence_score": 1.0 }, { "relation": "calls", "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, + "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", - "source_location": "L1123", + "source_location": "L1177", "weight": 1.0, "source": "app_crud_crm_product_resolve_product_id_for_quote_item", - "target": "valueerror" + "target": "app_models_crm_models_crmproduct", + "confidence_score": 1.0 }, { "relation": "imports", @@ -148120,17 +147291,6 @@ "target": "app_models_crm_models_crmquote", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L56", - "weight": 1.0, - "source": "app_crud_crm_quote_get_quote_in_scope", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -148604,17 +147764,6 @@ "target": "app_crud_crm_quote_py_date", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L90", - "weight": 1.0, - "source": "app_crud_crm_quote_parse_optional_date", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -148681,17 +147830,6 @@ "target": "app_crud_crm_quote_py_datetime", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L106", - "weight": 1.0, - "source": "app_crud_crm_quote_parse_optional_datetime", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -149028,17 +148166,6 @@ "target": "app_crud_crm_supplier_info_get_supplier_info", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L455", - "weight": 1.0, - "source": "app_crud_crm_quote_generate_quote_no", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -149269,17 +148396,6 @@ "target": "app_crud_crm_supplier_info_get_supplier_info", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L524", - "weight": 1.0, - "source": "app_crud_crm_quote_get_quote_detail", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -149357,28 +148473,6 @@ "target": "app_services_crm_supplier_hazard_assert_products_allowed_for_supplier", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L607", - "weight": 1.0, - "source": "app_crud_crm_quote_create_quote", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L715", - "weight": 1.0, - "source": "app_crud_crm_quote_assert_quote_editable_for_update", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -149456,17 +148550,6 @@ "target": "app_services_crm_supplier_hazard_assert_products_allowed_for_supplier", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L731", - "weight": 1.0, - "source": "app_crud_crm_quote_update_quote", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -149477,17 +148560,6 @@ "target": "app_crud_crm_quote_soft_delete_quotes", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L882", - "weight": 1.0, - "source": "app_crud_crm_quote_soft_delete_quotes", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -149521,39 +148593,6 @@ "target": "app_services_crm_quote_pdf_generate_quote_pdf", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L907", - "weight": 1.0, - "source": "app_crud_crm_quote_submit_quote", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L950", - "weight": 1.0, - "source": "app_crud_crm_quote_save_template", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L967", - "weight": 1.0, - "source": "app_crud_crm_quote_get_template", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -149565,28 +148604,6 @@ "target": "app_services_crm_quote_pdf_generate_quote_pdf", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L981", - "weight": 1.0, - "source": "app_crud_crm_quote_generate_pdf", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L1003", - "weight": 1.0, - "source": "app_crud_crm_quote_generate_share", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -149619,39 +148636,6 @@ "target": "app_crud_crm_quote_share_log_record_visit", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L1035", - "weight": 1.0, - "source": "app_crud_crm_quote_view_by_share_code", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L1083", - "weight": 1.0, - "source": "app_crud_crm_quote_accept_quote", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L1104", - "weight": 1.0, - "source": "app_crud_crm_quote_reject_quote", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -149673,17 +148657,6 @@ "target": "app_crud_crm_quote_product_list_quote_products", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L1135", - "weight": 1.0, - "source": "app_crud_crm_quote_to_contract", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -149717,17 +148690,6 @@ "target": "app_models_crm_models_crmquote", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L1195", - "weight": 1.0, - "source": "app_crud_crm_quote_create_new_version", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -149759,28 +148721,6 @@ "target": "app_crud_crm_quote_approval_delete_pending_approvals", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L1295", - "weight": 1.0, - "source": "app_crud_crm_quote_withdraw_quote_approval", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote.py", - "source_location": "L1321", - "weight": 1.0, - "source": "app_crud_crm_quote_invalid_quote", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -150238,17 +149178,6 @@ "target": "app_models_crm_models_crmquoteapproval", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote_approval.py", - "source_location": "L99", - "weight": 1.0, - "source": "app_crud_crm_quote_approval_create_approval_records", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -150270,17 +149199,6 @@ "target": "app_crud_crm_quote_approval_can_user_approve", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote_approval.py", - "source_location": "L138", - "weight": 1.0, - "source": "app_crud_crm_quote_approval_approve_quote", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -150302,17 +149220,6 @@ "target": "app_crud_crm_quote_approval_delete_pending_approvals", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote_approval.py", - "source_location": "L203", - "weight": 1.0, - "source": "app_crud_crm_quote_approval_withdraw_approval", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -150752,17 +149659,6 @@ "target": "app_crud_crm_quote_approver_setting_py_session", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote_approver_setting.py", - "source_location": "L81", - "weight": 1.0, - "source": "app_crud_crm_quote_approver_setting_assert_users_exist", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -151371,17 +150267,6 @@ "target": "app_crud_crm_quote_product_calculate_subtotal", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote_product.py", - "source_location": "L57", - "weight": 1.0, - "source": "app_crud_crm_quote_product_normalize_line_brand", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -151577,17 +150462,6 @@ "target": "app_models_crm_models_crmquoteproduct", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote_product.py", - "source_location": "L254", - "weight": 1.0, - "source": "app_crud_crm_quote_product_insert_quote_product", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -151599,17 +150473,6 @@ "target": "app_models_crm_models_crmquoteproduct", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote_product.py", - "source_location": "L282", - "weight": 1.0, - "source": "app_crud_crm_quote_product_update_quote_product", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -151620,17 +150483,6 @@ "target": "app_crud_crm_quote_product_soft_delete_quote_products", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/quote_product.py", - "source_location": "L360", - "weight": 1.0, - "source": "app_crud_crm_quote_product_soft_delete_quote_products", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -152600,17 +151452,6 @@ "target": "app_models_crm_models_crmsupplierinfo", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/supplier_info.py", - "source_location": "L153", - "weight": 1.0, - "source": "app_crud_crm_supplier_info_create_supplier_info", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -152622,17 +151463,6 @@ "target": "app_models_crm_models_crmsupplierinfo", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/supplier_info.py", - "source_location": "L194", - "weight": 1.0, - "source": "app_crud_crm_supplier_info_update_supplier_info", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -152643,17 +151473,6 @@ "target": "app_crud_crm_supplier_info_soft_delete_supplier_info", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/crm/supplier_info.py", - "source_location": "L229", - "weight": 1.0, - "source": "app_crud_crm_supplier_info_soft_delete_supplier_info", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -153017,17 +151836,6 @@ "target": "app_models_models_sysdept", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/dept.py", - "source_location": "L122", - "weight": 1.0, - "source": "app_crud_dept_create_dept", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -153039,17 +151847,6 @@ "target": "app_models_models_sysdept", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/dept.py", - "source_location": "L162", - "weight": 1.0, - "source": "app_crud_dept_update_dept", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -153061,17 +151858,6 @@ "target": "app_crud_dept_cascade_soft_delete", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/dept.py", - "source_location": "L201", - "weight": 1.0, - "source": "app_crud_dept_soft_delete_dept", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -153349,28 +152135,6 @@ "target": "app_models_models_sysdictdata", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/dict_data.py", - "source_location": "L123", - "weight": 1.0, - "source": "app_crud_dict_data_update_dict_data", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/dict_data.py", - "source_location": "L145", - "weight": 1.0, - "source": "app_crud_dict_data_soft_delete_dict_data", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -153680,17 +152444,6 @@ "target": "app_models_models_sysdicttype", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/dict_type.py", - "source_location": "L94", - "weight": 1.0, - "source": "app_crud_dict_type_create_dict_type", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -153702,28 +152455,6 @@ "target": "app_models_models_sysdicttype", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/dict_type.py", - "source_location": "L130", - "weight": 1.0, - "source": "app_crud_dict_type_update_dict_type", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/dict_type.py", - "source_location": "L156", - "weight": 1.0, - "source": "app_crud_dict_type_soft_delete_dict_type", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -154418,17 +153149,6 @@ "target": "app_models_models_sysmenu", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/menu.py", - "source_location": "L144", - "weight": 1.0, - "source": "app_crud_menu_create_menu", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -154440,17 +153160,6 @@ "target": "app_models_models_sysmenu", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/menu.py", - "source_location": "L191", - "weight": 1.0, - "source": "app_crud_menu_update_menu", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -154462,17 +153171,6 @@ "target": "app_crud_menu_cascade_soft_delete", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/menu.py", - "source_location": "L238", - "weight": 1.0, - "source": "app_crud_menu_soft_delete_menu", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -154936,17 +153634,6 @@ "target": "app_models_models_sysusermenufavorite", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/menu_favorite.py", - "source_location": "L121", - "weight": 1.0, - "source": "app_crud_menu_favorite_add_favorite", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -154957,17 +153644,6 @@ "target": "app_crud_menu_favorite_reorder_favorites", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/menu_favorite.py", - "source_location": "L200", - "weight": 1.0, - "source": "app_crud_menu_favorite_reorder_favorites", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -155683,17 +154359,6 @@ "target": "app_models_models_syspost", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/post.py", - "source_location": "L92", - "weight": 1.0, - "source": "app_crud_post_create_post", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -155705,28 +154370,6 @@ "target": "app_models_models_syspost", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/post.py", - "source_location": "L129", - "weight": 1.0, - "source": "app_crud_post_update_post", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/post.py", - "source_location": "L156", - "weight": 1.0, - "source": "app_crud_post_soft_delete_post", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -156132,17 +154775,6 @@ "target": "app_models_models_sysrole", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/role.py", - "source_location": "L117", - "weight": 1.0, - "source": "app_crud_role_create_role", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -156154,28 +154786,6 @@ "target": "app_models_models_sysrole", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/role.py", - "source_location": "L154", - "weight": 1.0, - "source": "app_crud_role_update_role", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/role.py", - "source_location": "L181", - "weight": 1.0, - "source": "app_crud_role_soft_delete_role", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -156198,17 +154808,6 @@ "target": "app_models_models_sysroledatascopedetail", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/role.py", - "source_location": "L264", - "weight": 1.0, - "source": "app_crud_role_update_role_data_scope", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -156734,50 +155333,6 @@ "target": "app_crud_sample_code_get_sample_code", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/sample_code.py", - "source_location": "L127", - "weight": 1.0, - "source": "app_crud_sample_code_create_sample_code", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/sample_code.py", - "source_location": "L183", - "weight": 1.0, - "source": "app_crud_sample_code_update_sample_code", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/sample_code.py", - "source_location": "L222", - "weight": 1.0, - "source": "app_crud_sample_code_soft_delete_sample_code", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/sample_code.py", - "source_location": "L243", - "weight": 1.0, - "source": "app_crud_sample_code_batch_generate_sample_codes", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -156788,28 +155343,6 @@ "target": "app_crud_sample_code_batch_generate_sample_codes", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/sample_code.py", - "source_location": "L323", - "weight": 1.0, - "source": "app_crud_sample_code_batch_issue_sample_codes", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/sample_code.py", - "source_location": "L365", - "weight": 1.0, - "source": "app_crud_sample_code_batch_revoke_sample_codes", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -157088,17 +155621,6 @@ "target": "app_models_models_syssite", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/site.py", - "source_location": "L102", - "weight": 1.0, - "source": "app_crud_site_create_site", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -157110,28 +155632,6 @@ "target": "app_models_models_syssite", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/site.py", - "source_location": "L149", - "weight": 1.0, - "source": "app_crud_site_update_site", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/site.py", - "source_location": "L186", - "weight": 1.0, - "source": "app_crud_site_soft_delete_site", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -157410,17 +155910,6 @@ "target": "app_models_models_systenant", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/tenant.py", - "source_location": "L92", - "weight": 1.0, - "source": "app_crud_tenant_create_tenant", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -157432,28 +155921,6 @@ "target": "app_models_models_systenant", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/tenant.py", - "source_location": "L130", - "weight": 1.0, - "source": "app_crud_tenant_update_tenant", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/tenant.py", - "source_location": "L161", - "weight": 1.0, - "source": "app_crud_tenant_soft_delete_tenant", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -158229,17 +156696,6 @@ "target": "app_crud_user_sync_post_user_bindings", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/user.py", - "source_location": "L203", - "weight": 1.0, - "source": "app_crud_user_sync_post_user_bindings", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -158295,17 +156751,6 @@ "target": "app_models_models_sysuser", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/user.py", - "source_location": "L325", - "weight": 1.0, - "source": "app_crud_user_create_user", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -158317,50 +156762,6 @@ "target": "app_models_models_sysuser", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/user.py", - "source_location": "L382", - "weight": 1.0, - "source": "app_crud_user_update_user", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/user.py", - "source_location": "L421", - "weight": 1.0, - "source": "app_crud_user_soft_delete_user", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/user.py", - "source_location": "L434", - "weight": 1.0, - "source": "app_crud_user_change_password", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/user.py", - "source_location": "L452", - "weight": 1.0, - "source": "app_crud_user_reset_password", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -159171,17 +157572,6 @@ "target": "app_models_models_wfprocessdef", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/workflow.py", - "source_location": "L133", - "weight": 1.0, - "source": "app_crud_workflow_create_process_def", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -159193,28 +157583,6 @@ "target": "app_models_models_wfprocessdef", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/workflow.py", - "source_location": "L171", - "weight": 1.0, - "source": "app_crud_workflow_update_process_def", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/workflow.py", - "source_location": "L199", - "weight": 1.0, - "source": "app_crud_workflow_soft_delete_process_def", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -159248,17 +157616,6 @@ "target": "app_models_models_wftransition", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/workflow.py", - "source_location": "L224", - "weight": 1.0, - "source": "app_crud_workflow_publish_version", - "target": "valueerror" - }, { "relation": "references", "context": "generic_arg", @@ -159358,17 +157715,6 @@ "target": "app_crud_workflow_get_instance", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/crud/workflow.py", - "source_location": "L416", - "weight": 1.0, - "source": "app_crud_workflow_update_instance_status", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -162387,7 +160733,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L90", + "source_location": "L104", "weight": 1.0, "source": "app_schemas_crm_product_productaliasitem", "target": "app_models_base_basemodel", @@ -162397,7 +160743,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L79", + "source_location": "L93", "weight": 1.0, "source": "app_schemas_crm_product_productbranditem", "target": "app_models_base_basemodel", @@ -162437,7 +160783,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L100", + "source_location": "L114", "weight": 1.0, "source": "app_schemas_crm_product_productcreatebody", "target": "app_models_base_basemodel", @@ -162447,7 +160793,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L181", + "source_location": "L195", "weight": 1.0, "source": "app_schemas_crm_product_productdeletebody", "target": "app_models_base_basemodel", @@ -162457,7 +160803,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L175", + "source_location": "L189", "weight": 1.0, "source": "app_schemas_crm_product_productdetailbody", "target": "app_models_base_basemodel", @@ -162477,7 +160823,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L188", + "source_location": "L202", "weight": 1.0, "source": "app_schemas_crm_product_productoptionsbody", "target": "app_models_base_basemodel", @@ -162487,7 +160833,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L137", + "source_location": "L151", "weight": 1.0, "source": "app_schemas_crm_product_productupdatebody", "target": "app_models_base_basemodel", @@ -163783,6 +162129,26 @@ "target": "app_models_base_basemodel", "confidence_score": 1.0 }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "app/schemas/pl/io_order.py", + "source_location": "L148", + "weight": 1.0, + "source": "app_schemas_pl_io_order_publicioorderhistorypageread", + "target": "app_models_base_basemodel", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "app/schemas/pl/io_order.py", + "source_location": "L128", + "weight": 1.0, + "source": "app_schemas_pl_io_order_publicioorderhistoryrecordread", + "target": "app_models_base_basemodel", + "confidence_score": 1.0 + }, { "relation": "inherits", "confidence": "EXTRACTED", @@ -169301,6 +167667,17 @@ "target": "app_models_models", "confidence_score": 1.0 }, + { + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L10", + "weight": 1.0, + "source": "app_services_dict_ensure", + "target": "app_models_models", + "confidence_score": 1.0 + }, { "relation": "imports_from", "context": "import", @@ -169400,6 +167777,17 @@ "target": "app_models_models", "confidence_score": 1.0 }, + { + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L6", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "app_models_models", + "confidence_score": 1.0 + }, { "relation": "imports_from", "context": "import", @@ -169769,6 +168157,38 @@ "target": "app_models_models_sysethnic", "confidence_score": 1.0 }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L10", + "weight": 1.0, + "source": "app_services_dict_ensure", + "target": "app_models_models_sysdictdata", + "confidence_score": 1.0 + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L10", + "weight": 0.8, + "source": "app_services_dict_ensure_dictensureerror", + "target": "app_models_models_sysdictdata", + "confidence_score": 0.5 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L75", + "weight": 1.0, + "source": "app_services_dict_ensure_ensure_dict_data", + "target": "app_models_models_sysdictdata", + "confidence_score": 1.0 + }, { "relation": "imports", "context": "import", @@ -169832,6 +168252,17 @@ "target": "app_models_models_sysdictdata", "confidence_score": 0.5 }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L6", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "app_models_models_sysdictdata", + "confidence_score": 1.0 + }, { "relation": "imports", "context": "import", @@ -175333,17 +173764,6 @@ "target": "app_schemas_bx_reimburse_reimbursedetailcreate_validate_expense_item_id", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/bx/reimburse.py", - "source_location": "L28", - "weight": 1.0, - "source": "app_schemas_bx_reimburse_reimbursedetailcreate_validate_expense_item_id", - "target": "valueerror" - }, { "relation": "imports", "context": "import", @@ -175449,17 +173869,6 @@ "target": "app_schemas_bx_reimburse_reimburseinvoicelinkin", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/bx/reimburse.py", - "source_location": "L56", - "weight": 1.0, - "source": "app_schemas_bx_reimburse_reimburseinvoicelinkin_validate_invoice_id", - "target": "valueerror" - }, { "relation": "imports", "context": "import", @@ -175512,17 +173921,6 @@ "target": "app_schemas_bx_reimburse_reimburseapplycreate_details_must_not_be_empty", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/bx/reimburse.py", - "source_location": "L93", - "weight": 1.0, - "source": "app_schemas_bx_reimburse_reimburseapplycreate_details_must_not_be_empty", - "target": "valueerror" - }, { "relation": "method", "confidence": "EXTRACTED", @@ -175597,17 +173995,6 @@ "target": "app_schemas_bx_reimburse_offsetrequest_validate_advance_id", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/bx/reimburse.py", - "source_location": "L214", - "weight": 1.0, - "source": "app_schemas_bx_reimburse_offsetrequest_validate_advance_id", - "target": "valueerror" - }, { "relation": "method", "confidence": "EXTRACTED", @@ -175618,17 +174005,6 @@ "target": "app_schemas_bx_reimburse_offsetitem_validate_advance_id", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/bx/reimburse.py", - "source_location": "L229", - "weight": 1.0, - "source": "app_schemas_bx_reimburse_offsetitem_validate_advance_id", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -176670,17 +175046,6 @@ "target": "app_schemas_crm_customer_customercreatebody_forbid_legacy_invoice_fields", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/crm/customer.py", - "source_location": "L146", - "weight": 1.0, - "source": "app_schemas_crm_customer_customercreatebody_forbid_legacy_invoice_fields", - "target": "valueerror" - }, { "relation": "method", "confidence": "EXTRACTED", @@ -176691,17 +175056,6 @@ "target": "app_schemas_crm_customer_customerupdatebody_forbid_legacy_invoice_fields", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/crm/customer.py", - "source_location": "L213", - "weight": 1.0, - "source": "app_schemas_crm_customer_customerupdatebody_forbid_legacy_invoice_fields", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -177356,7 +175710,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L90", + "source_location": "L104", "weight": 1.0, "source": "app_schemas_crm_product", "target": "app_schemas_crm_product_productaliasitem", @@ -177366,7 +175720,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L79", + "source_location": "L93", "weight": 1.0, "source": "app_schemas_crm_product", "target": "app_schemas_crm_product_productbranditem", @@ -177406,7 +175760,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L100", + "source_location": "L114", "weight": 1.0, "source": "app_schemas_crm_product", "target": "app_schemas_crm_product_productcreatebody", @@ -177416,7 +175770,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L181", + "source_location": "L195", "weight": 1.0, "source": "app_schemas_crm_product", "target": "app_schemas_crm_product_productdeletebody", @@ -177426,7 +175780,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L175", + "source_location": "L189", "weight": 1.0, "source": "app_schemas_crm_product", "target": "app_schemas_crm_product_productdetailbody", @@ -177446,7 +175800,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L188", + "source_location": "L202", "weight": 1.0, "source": "app_schemas_crm_product", "target": "app_schemas_crm_product_productoptionsbody", @@ -177456,7 +175810,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", - "source_location": "L137", + "source_location": "L151", "weight": 1.0, "source": "app_schemas_crm_product", "target": "app_schemas_crm_product_productupdatebody", @@ -180818,17 +179172,6 @@ "target": "app_schemas_pl_datetime_parse_py_datetime", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/pl/datetime_parse.py", - "source_location": "L24", - "weight": 1.0, - "source": "app_schemas_pl_datetime_parse_parse_optional_plan_datetime", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -181050,17 +179393,6 @@ "target": "app_schemas_pl_freight_freightsettlementcreate_check_ids", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/pl/freight.py", - "source_location": "L34", - "weight": 1.0, - "source": "app_schemas_pl_freight_freightsettlementcreate_check_ids", - "target": "valueerror" - }, { "relation": "imports", "context": "import", @@ -181407,6 +179739,26 @@ "target": "app_schemas_pl_io_order_publicioorderfeedback", "confidence_score": 1.0 }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app/schemas/pl/io_order.py", + "source_location": "L148", + "weight": 1.0, + "source": "app_schemas_pl_io_order", + "target": "app_schemas_pl_io_order_publicioorderhistorypageread", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app/schemas/pl/io_order.py", + "source_location": "L128", + "weight": 1.0, + "source": "app_schemas_pl_io_order", + "target": "app_schemas_pl_io_order_publicioorderhistoryrecordread", + "confidence_score": 1.0 + }, { "relation": "contains", "confidence": "EXTRACTED", @@ -184415,17 +182767,6 @@ "target": "app_schemas_pl_transport_address_transportaddresscreate_validate_coordinates", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/pl/transport_address.py", - "source_location": "L26", - "weight": 1.0, - "source": "app_schemas_pl_transport_address_transportaddresscreate_validate_coordinates", - "target": "valueerror" - }, { "relation": "imports_from", "context": "import", @@ -184775,17 +183116,6 @@ "target": "app_schemas_pl_vehicle_maintenance_py_decimal", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/pl/vehicle_maintenance.py", - "source_location": "L87", - "weight": 1.0, - "source": "app_schemas_pl_vehicle_maintenance_vehiclemaintenanceprocesscreate_validate_amount", - "target": "valueerror" - }, { "relation": "imports", "context": "import", @@ -185081,17 +183411,6 @@ "target": "app_schemas_pl_vehicle_recharge_vehiclerechargeapplycreate", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/pl/vehicle_recharge.py", - "source_location": "L26", - "weight": 1.0, - "source": "app_schemas_pl_vehicle_recharge_vehiclerechargeapplycreate_validate_recharge_type", - "target": "valueerror" - }, { "relation": "imports", "context": "import", @@ -185254,17 +183573,6 @@ "target": "app_schemas_pl_vehicle_recharge_vehiclerechargerecordcreate", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/pl/vehicle_recharge.py", - "source_location": "L87", - "weight": 1.0, - "source": "app_schemas_pl_vehicle_recharge_vehiclerechargerecordcreate_validate_recharge_type", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -185276,17 +183584,6 @@ "target": "app_schemas_pl_vehicle_recharge_py_decimal", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/pl/vehicle_recharge.py", - "source_location": "L94", - "weight": 1.0, - "source": "app_schemas_pl_vehicle_recharge_vehiclerechargerecordcreate_validate_amount", - "target": "valueerror" - }, { "relation": "imports", "context": "import", @@ -185614,17 +183911,6 @@ "target": "app_schemas_pl_vehicle_urea_py_decimal", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/pl/vehicle_urea.py", - "source_location": "L26", - "weight": 1.0, - "source": "app_schemas_pl_vehicle_urea_vehicleureaapplycreate_validate_quantity", - "target": "valueerror" - }, { "relation": "references", "context": "return_type", @@ -185647,17 +183933,6 @@ "target": "app_schemas_pl_vehicle_urea_py_decimal", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/pl/vehicle_urea.py", - "source_location": "L33", - "weight": 1.0, - "source": "app_schemas_pl_vehicle_urea_vehicleureaapplycreate_validate_apply_amount", - "target": "valueerror" - }, { "relation": "imports", "context": "import", @@ -185810,17 +184085,6 @@ "target": "app_schemas_pl_vehicle_urea_vehicleureadisbursecreate", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/schemas/pl/vehicle_urea.py", - "source_location": "L85", - "weight": 1.0, - "source": "app_schemas_pl_vehicle_urea_vehicleureadisbursecreate_validate_amount", - "target": "valueerror" - }, { "relation": "imports", "context": "import", @@ -188559,28 +186823,6 @@ "source": "app_services_bx_reimburse_import_import_reimburse_workbook", "target": "app_services_bx_expense_item_expenseitemservice_get_by_id" }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/bx/expense_item.py", - "source_location": "L46", - "weight": 1.0, - "source": "app_services_bx_expense_item_expenseitemservice_create", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/bx/expense_item.py", - "source_location": "L75", - "weight": 1.0, - "source": "app_services_bx_expense_item_expenseitemservice_update", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -192718,17 +190960,6 @@ "target": "app_services_bx_reimburse_import_py_worksheet", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/bx/reimburse_import.py", - "source_location": "L316", - "weight": 1.0, - "source": "app_services_bx_reimburse_import_read_sheet_header", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -192837,17 +191068,6 @@ "source": "app_services_bx_reimburse_import_build_annotated_result_bytes", "target": "bytesio" }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/bx/reimburse_import.py", - "source_location": "L358", - "weight": 1.0, - "source": "app_services_bx_reimburse_import_build_annotated_result_bytes", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -192946,17 +191166,6 @@ "source": "app_services_bx_reimburse_import_import_reimburse_workbook", "target": "bytesio" }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/bx/reimburse_import.py", - "source_location": "L417", - "weight": 1.0, - "source": "app_services_bx_reimburse_import_import_reimburse_workbook", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -193142,17 +191351,6 @@ "target": "app_services_bx_storage_get_download_url", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/bx/storage.py", - "source_location": "L77", - "weight": 1.0, - "source": "app_services_bx_storage_download_file_bytes", - "target": "valueerror" - }, { "relation": "calls", "context": "call", @@ -193559,17 +191757,6 @@ "target": "app_services_bx_workflow_workflowservice_ensure_by_biz_type", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/bx/workflow.py", - "source_location": "L163", - "weight": 1.0, - "source": "app_services_bx_workflow_workflowservice_save_nodes", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -193886,17 +192073,6 @@ "target": "app_services_crm_quote_pdf_build_quote_html", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/crm_quote_pdf.py", - "source_location": "L194", - "weight": 1.0, - "source": "app_services_crm_quote_pdf_generate_quote_pdf", - "target": "valueerror" - }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -194198,17 +192374,6 @@ "target": "app_services_crm_supplier_hazard_py_any", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/crm_supplier_hazard.py", - "source_location": "L116", - "weight": 1.0, - "source": "app_services_crm_supplier_hazard_assert_products_allowed_for_supplier", - "target": "valueerror" - }, { "relation": "contains", "confidence": "EXTRACTED", @@ -195737,6 +193902,253 @@ "target": "app_services_db_data_scope_py_session", "confidence_score": 1.0 }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L20", + "weight": 1.0, + "source": "app_services_dict_ensure", + "target": "app_services_dict_ensure_dictensureerror", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L24", + "weight": 1.0, + "source": "app_services_dict_ensure", + "target": "app_services_dict_ensure_ensure_dict_data", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L96", + "weight": 1.0, + "source": "app_services_dict_ensure", + "target": "app_services_dict_ensure_ensure_remove_dict_data", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L1", + "weight": 1.0, + "source": "app_services_dict_ensure_rationale_1", + "target": "app_services_dict_ensure", + "confidence_score": 1.0 + }, + { + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L7", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "app_services_dict_ensure", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L20", + "weight": 1.0, + "source": "app_services_dict_ensure_dictensureerror", + "target": "valueerror", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L35", + "weight": 1.0, + "source": "app_services_dict_ensure_ensure_dict_data", + "target": "app_services_dict_ensure_dictensureerror", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L106", + "weight": 1.0, + "source": "app_services_dict_ensure_ensure_remove_dict_data", + "target": "app_services_dict_ensure_dictensureerror", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L7", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "app_services_dict_ensure_dictensureerror", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "app/services/duty_schedule.py", + "source_location": "L37", + "weight": 1.0, + "source": "app_services_duty_schedule_dutybizerror", + "target": "valueerror", + "confidence_score": 1.0 + }, + { + "relation": "references", + "context": "parameter_type", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L24", + "weight": 1.0, + "source": "app_services_dict_ensure_ensure_dict_data", + "target": "app_services_dict_ensure_py_session", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L7", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "app_services_dict_ensure_ensure_dict_data", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L97", + "weight": 1.0, + "source": "tests_test_dict_ensure_test_ensure_honors_explicit_preferred_value_on_insert", + "target": "app_services_dict_ensure_ensure_dict_data", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L59", + "weight": 1.0, + "source": "tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", + "target": "app_services_dict_ensure_ensure_dict_data", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L33", + "weight": 1.0, + "source": "tests_test_dict_ensure_test_ensure_rejects_empty_label", + "target": "app_services_dict_ensure_ensure_dict_data", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L25", + "weight": 1.0, + "source": "tests_test_dict_ensure_test_ensure_rejects_unknown_dict_type", + "target": "app_services_dict_ensure_ensure_dict_data", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L84", + "weight": 1.0, + "source": "tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", + "target": "app_services_dict_ensure_ensure_dict_data", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L45", + "weight": 1.0, + "source": "tests_test_dict_ensure_test_ensure_reuses_existing_label", + "target": "app_services_dict_ensure_ensure_dict_data", + "confidence_score": 1.0 + }, + { + "relation": "references", + "context": "parameter_type", + "confidence": "EXTRACTED", + "source_file": "app/services/dict_ensure.py", + "source_location": "L96", + "weight": 1.0, + "source": "app_services_dict_ensure_ensure_remove_dict_data", + "target": "app_services_dict_ensure_py_session", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L7", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "app_services_dict_ensure_ensure_remove_dict_data", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L144", + "weight": 1.0, + "source": "tests_test_dict_ensure_test_ensure_remove_rejects_other_users_row", + "target": "app_services_dict_ensure_ensure_remove_dict_data", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L156", + "weight": 1.0, + "source": "tests_test_dict_ensure_test_ensure_remove_rejects_unknown_type", + "target": "app_services_dict_ensure_ensure_remove_dict_data", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L123", + "weight": 1.0, + "source": "tests_test_dict_ensure_test_ensure_remove_soft_deletes_own_row", + "target": "app_services_dict_ensure_ensure_remove_dict_data", + "confidence_score": 1.0 + }, { "relation": "contains", "confidence": "EXTRACTED", @@ -196129,16 +194541,6 @@ "target": "app_services_duty_schedule_dutybizerror", "confidence_score": 1.0 }, - { - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "app/services/duty_schedule.py", - "source_location": "L37", - "weight": 1.0, - "source": "app_services_duty_schedule_dutybizerror", - "target": "valueerror", - "confidence_score": 1.0 - }, { "relation": "calls", "context": "call", @@ -196260,171 +194662,6 @@ "target": "app_services_duty_schedule_dutybizerror", "confidence_score": 1.0 }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/pl_brand_archive.py", - "source_location": "L59", - "weight": 1.0, - "source": "app_services_pl_brand_archive_validate_brand_qty_rows", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/pl_dibang_bridge_service.py", - "source_location": "L352", - "weight": 1.0, - "source": "app_services_pl_dibang_bridge_service_revoke_regeneratable_dibang_for_transport", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/pl_dibang_bridge_service.py", - "source_location": "L400", - "weight": 1.0, - "source": "app_services_pl_dibang_bridge_service_sync_transport_inventory_links", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/pl_feedback_brand_qty.py", - "source_location": "L37", - "weight": 1.0, - "source": "app_services_pl_feedback_brand_qty_require_brand_qtys_if_needed", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/pl_io_order_service.py", - "source_location": "L431", - "weight": 1.0, - "source": "app_services_pl_io_order_service_apply_site_feedback", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/pl_io_order_service.py", - "source_location": "L142", - "weight": 1.0, - "source": "app_services_pl_io_order_service_create_io_order_for_transport", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/pl_transport_site_service.py", - "source_location": "L84", - "weight": 1.0, - "source": "app_services_pl_transport_site_service_sync_site_links_for_transport", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/workflow_engine.py", - "source_location": "L80", - "weight": 1.0, - "source": "app_services_workflow_engine_workflowengine_approve_task", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/workflow_engine.py", - "source_location": "L129", - "weight": 1.0, - "source": "app_services_workflow_engine_workflowengine_reject_task", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/workflow_engine.py", - "source_location": "L268", - "weight": 1.0, - "source": "app_services_workflow_engine_workflowengine_resolve_approvers", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "app/services/workflow_engine.py", - "source_location": "L53", - "weight": 1.0, - "source": "app_services_workflow_engine_workflowengine_start_process", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "scripts/migrate_bx_data.py", - "source_location": "L185", - "weight": 1.0, - "source": "scripts_migrate_bx_data_parse_reimburse_meta", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "scripts/migrate_dibang_data.py", - "source_location": "L77", - "weight": 1.0, - "source": "scripts_migrate_dibang_data_parse_date", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "scripts/migrate_users.py", - "source_location": "L170", - "weight": 1.0, - "source": "scripts_migrate_users_load_dept_mapping_csv", - "target": "valueerror" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "scripts/renumber_crm_product_no.py", - "source_location": "L73", - "weight": 1.0, - "source": "scripts_renumber_crm_product_no_format_new_product_no", - "target": "valueerror" - }, { "relation": "references", "context": "generic_arg", @@ -226090,6 +224327,16 @@ "target": "tests_test_bx_reimburse_import_test_build_expense_path_labels_exclude_orphan_when_parent_missing", "confidence_score": 1.0 }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_bx_reimburse_my_page_size.py", + "source_location": "L8", + "weight": 1.0, + "source": "tests_test_bx_reimburse_my_page_size", + "target": "tests_test_bx_reimburse_my_page_size_test_my_reimburses_page_size_query_bounds", + "confidence_score": 1.0 + }, { "relation": "contains", "confidence": "EXTRACTED", @@ -226581,7 +224828,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", - "source_location": "L50", + "source_location": "L80", "weight": 1.0, "source": "tests_test_crm_name_pinyin_search", "target": "tests_test_crm_name_pinyin_search_test_list_customer_options_keyword_includes_name_and_pinyin", @@ -226591,7 +224838,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", - "source_location": "L30", + "source_location": "L60", "weight": 1.0, "source": "tests_test_crm_name_pinyin_search", "target": "tests_test_crm_name_pinyin_search_test_list_customers_keyword_includes_name_and_pinyin", @@ -226607,6 +224854,16 @@ "target": "tests_test_crm_name_pinyin_search_test_list_products_keyword_includes_name_and_pinyin", "confidence_score": 1.0 }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_crm_name_pinyin_search.py", + "source_location": "L31", + "weight": 1.0, + "source": "tests_test_crm_name_pinyin_search", + "target": "tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", + "confidence_score": 1.0 + }, { "relation": "rationale_for", "confidence": "EXTRACTED", @@ -226617,6 +224874,16 @@ "target": "tests_test_crm_name_pinyin_search", "confidence_score": 1.0 }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_crm_name_pinyin_search.py", + "source_location": "L32", + "weight": 1.0, + "source": "tests_test_crm_name_pinyin_search_rationale_32", + "target": "tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", + "confidence_score": 1.0 + }, { "relation": "contains", "confidence": "EXTRACTED", @@ -227054,6 +225321,116 @@ "target": "tests_test_delete_guard_test_super_admin_can_delete_any", "confidence_score": 1.0 }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L91", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "tests_test_dict_ensure_test_ensure_honors_explicit_preferred_value_on_insert", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L52", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L30", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "tests_test_dict_ensure_test_ensure_rejects_empty_label", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L22", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "tests_test_dict_ensure_test_ensure_rejects_unknown_dict_type", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L136", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "tests_test_dict_ensure_test_ensure_remove_rejects_other_users_row", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L153", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "tests_test_dict_ensure_test_ensure_remove_rejects_unknown_type", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L110", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "tests_test_dict_ensure_test_ensure_remove_soft_deletes_own_row", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L75", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L38", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "tests_test_dict_ensure_test_ensure_reuses_existing_label", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L15", + "weight": 1.0, + "source": "tests_test_dict_ensure", + "target": "tests_test_dict_ensure_test_whitelist_contains_crm_types", + "confidence_score": 1.0 + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_dict_ensure.py", + "source_location": "L76", + "weight": 1.0, + "source": "tests_test_dict_ensure_rationale_76", + "target": "tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", + "confidence_score": 1.0 + }, { "relation": "contains", "confidence": "EXTRACTED", @@ -228874,5 +227251,5 @@ } ], "hyperedges": [], - "built_at_commit": "d01603f709ef60fad20842a167681f7b90dc3123" + "built_at_commit": "e9ad26cb48edf1a5f85345fcf4071310ec0bab0c" } \ No newline at end of file diff --git a/backend/graphify-out/2026-08-21/manifest.json b/backend/graphify-out/2026-08-21/manifest.json index befb44ec7..0d4610287 100644 --- a/backend/graphify-out/2026-08-21/manifest.json +++ b/backend/graphify-out/2026-08-21/manifest.json @@ -10,8 +10,8 @@ "semantic_hash": "" }, "app/api/admin.py": { - "mtime": 1786164471.3850935, - "ast_hash": "d0ec6137607e9dc5f49e049ca72eb798", + "mtime": 1787220370.8659623, + "ast_hash": "6d88a608b9edf8f2a6e21453fd2a3030", "semantic_hash": "" }, "app/api/bx/__init__.py": { @@ -45,8 +45,8 @@ "semantic_hash": "" }, "app/api/bx/reimburse.py": { - "mtime": 1786953500.862205, - "ast_hash": "7f8ab65012210296805864f17dd4a23b", + "mtime": 1787292827.7676315, + "ast_hash": "c23dec0233165fd1af5f0baae7145391", "semantic_hash": "" }, "app/api/bx/workflow.py": { @@ -55,8 +55,8 @@ "semantic_hash": "" }, "app/api/crm.py": { - "mtime": 1785808418.671982, - "ast_hash": "a30d4b2d4cdcf06d2a6f01e28a0c2fcb", + "mtime": 1787293703.6985583, + "ast_hash": "b525fc2d5ef8de84f27f477ddcd87aad", "semantic_hash": "" }, "app/api/crm_contract_routes.py": { @@ -155,13 +155,13 @@ "semantic_hash": "" }, "app/api/pl/plan.py": { - "mtime": 1786885472.5030537, - "ast_hash": "f5020cc3715a0da38ec34ea8298d7cf2", + "mtime": 1787278873.7961476, + "ast_hash": "ca11b671db9f5d4fd7138a3aed88be11", "semantic_hash": "" }, "app/api/pl/public_io_order.py": { - "mtime": 1785969250.5664592, - "ast_hash": "7fc4764733f4958838d56664aed4b501", + "mtime": 1787286154.3652413, + "ast_hash": "424a29d161e9d7a006c38d05aa608b6d", "semantic_hash": "" }, "app/api/pl/public_site.py": { @@ -170,8 +170,8 @@ "semantic_hash": "" }, "app/api/pl/public_transport.py": { - "mtime": 1785969005.314447, - "ast_hash": "d811e61d7519874f41202bdd7a1c5aa6", + "mtime": 1787282688.1905942, + "ast_hash": "f4803f3cc1038dd97ade634a90945aa9", "semantic_hash": "" }, "app/api/pl/transport.py": { @@ -180,8 +180,8 @@ "semantic_hash": "" }, "app/api/pl/transport_address.py": { - "mtime": 1784993134.0, - "ast_hash": "b46673e553d2f4620d39aae6f0c3a128", + "mtime": 1787277380.1085398, + "ast_hash": "b79eab98f7537a1767138402b9f22c0d", "semantic_hash": "" }, "app/api/pl/vehicle_maintenance.py": { @@ -410,8 +410,8 @@ "semantic_hash": "" }, "app/crud/crm/contract.py": { - "mtime": 1786863780.7033699, - "ast_hash": "783e2d3c50225588fcde4ede86c577ed", + "mtime": 1787132857.3574011, + "ast_hash": "bc090013cb5b1fd718f23d07b126b733", "semantic_hash": "" }, "app/crud/crm/contract_approval.py": { @@ -425,8 +425,8 @@ "semantic_hash": "" }, "app/crud/crm/contract_product.py": { - "mtime": 1786031232.2085078, - "ast_hash": "4f46b853fd6b3c81ec9ac9489d28e9b8", + "mtime": 1787130846.1417708, + "ast_hash": "4c0a8c790bf09c467cfa778054e44e56", "semantic_hash": "" }, "app/crud/crm/customer.py": { @@ -480,8 +480,8 @@ "semantic_hash": "" }, "app/crud/crm/product.py": { - "mtime": 1786094315.6811244, - "ast_hash": "d6ea0dbcf8ede9c05568b9a9613320db", + "mtime": 1787293668.683282, + "ast_hash": "da4c7d8530f8cb77739fc96940450df1", "semantic_hash": "" }, "app/crud/crm/quote.py": { @@ -620,8 +620,8 @@ "semantic_hash": "" }, "app/models/crm_models.py": { - "mtime": 1786171074.9211452, - "ast_hash": "3108b3d96a3377f347456d5b7ad7c3c9", + "mtime": 1787130817.7947948, + "ast_hash": "5ee9b7791b1c97edbc17014e9aab2f5d", "semantic_hash": "" }, "app/models/db_models.py": { @@ -715,8 +715,8 @@ "semantic_hash": "" }, "app/schemas/crm/contract.py": { - "mtime": 1786239355.7093923, - "ast_hash": "dd33cb6f4ffee2c8f5737182c3c1497a", + "mtime": 1787130826.2278907, + "ast_hash": "c99bcc40110fac739e82797714a69844", "semantic_hash": "" }, "app/schemas/crm/contract_approver_setting.py": { @@ -760,8 +760,8 @@ "semantic_hash": "" }, "app/schemas/crm/product.py": { - "mtime": 1786094283.3140867, - "ast_hash": "2113f33131b1fcbc250465b7243029da", + "mtime": 1787293668.6831603, + "ast_hash": "9766adb75810663ecac94a2933e5fff0", "semantic_hash": "" }, "app/schemas/crm/quote.py": { @@ -835,13 +835,13 @@ "semantic_hash": "" }, "app/schemas/pl/__init__.py": { - "mtime": 1786203494.3296576, - "ast_hash": "b7920c32ba18bca6b047446059e97d57", + "mtime": 1787198187.9137607, + "ast_hash": "ad4432fdb117062d34913e058e82fdf1", "semantic_hash": "" }, "app/schemas/pl/base_data.py": { - "mtime": 1785637803.20416, - "ast_hash": "8a998a55e4bc7532852a48b77a3397ea", + "mtime": 1787200527.8208919, + "ast_hash": "fd9abf326ca8d9ef29cf460e9cfbb8ac", "semantic_hash": "" }, "app/schemas/pl/datetime_parse.py": { @@ -860,8 +860,8 @@ "semantic_hash": "" }, "app/schemas/pl/io_order.py": { - "mtime": 1785967869.0524, - "ast_hash": "fd8021a2c991b1c02237d60ed7ea3af1", + "mtime": 1787286144.0774581, + "ast_hash": "6e528992d8c401f8e9539ce48e656268", "semantic_hash": "" }, "app/schemas/pl/menu_badge.py": { @@ -870,13 +870,13 @@ "semantic_hash": "" }, "app/schemas/pl/paste_recognize.py": { - "mtime": 1785808688.3868103, - "ast_hash": "8720817ed0646cd7d00d7ba9f0690bc0", + "mtime": 1787201019.8200278, + "ast_hash": "88ad005e7557f44dabe2282f00f8f0de", "semantic_hash": "" }, "app/schemas/pl/plan.py": { - "mtime": 1786203421.9045327, - "ast_hash": "87763f7d7771e6341ffbcdf911351f5e", + "mtime": 1787278860.7404675, + "ast_hash": "e2330f1ccaa052f56ef203ea3bc73de3", "semantic_hash": "" }, "app/schemas/pl/resource_snapshot.py": { @@ -885,8 +885,8 @@ "semantic_hash": "" }, "app/schemas/pl/transport.py": { - "mtime": 1785968996.0035603, - "ast_hash": "219ba1cd026db8463bf987541c865896", + "mtime": 1787282296.7963567, + "ast_hash": "937f86f8be800138db7cb8092d5ef5c0", "semantic_hash": "" }, "app/schemas/pl/transport_address.py": { @@ -1040,8 +1040,8 @@ "semantic_hash": "" }, "app/services/pl_cert_required_service.py": { - "mtime": 1785643505.274516, - "ast_hash": "b98cd18f818dd489894b663b4e0a811f", + "mtime": 1787200437.8182042, + "ast_hash": "e7c4f9a292ee90e4284ccda739066601", "semantic_hash": "" }, "app/services/pl_cert_service.py": { @@ -1085,8 +1085,8 @@ "semantic_hash": "" }, "app/services/pl_menu_badge_service.py": { - "mtime": 1783258109.0, - "ast_hash": "2819fceaa269a00af0f7983b8be27cdb", + "mtime": 1787199006.5479605, + "ast_hash": "3857f682b2594f4b42d9390a2a41c56e", "semantic_hash": "" }, "app/services/pl_ocr_service.py": { @@ -1095,18 +1095,18 @@ "semantic_hash": "" }, "app/services/pl_paste_recognize_service.py": { - "mtime": 1785808688.436616, - "ast_hash": "ad1eb07fcfe0800419e4b80c7493f26d", + "mtime": 1787201020.688178, + "ast_hash": "7025fdc7f96668db7295824e2beef6a6", "semantic_hash": "" }, "app/services/pl_personnel_service.py": { - "mtime": 1783845044.0, - "ast_hash": "94f2517f259023b46dfef7f0f74fede3", + "mtime": 1787140670.5933692, + "ast_hash": "df714dfb82d5d1777499ab6180b761e3", "semantic_hash": "" }, "app/services/pl_plan_service.py": { - "mtime": 1786204013.4685726, - "ast_hash": "8ee28eee450db2496cb4e5a687655c6d", + "mtime": 1787195004.716748, + "ast_hash": "1c2e4be0f6ca141d4b8a2ff3d5511fc2", "semantic_hash": "" }, "app/services/pl_product_display.py": { @@ -1160,8 +1160,8 @@ "semantic_hash": "" }, "app/tasks/__init__.py": { - "mtime": 1783208067.0, - "ast_hash": "65f48f08b50ecea837b57abb9f1e01bb", + "mtime": 1787140680.3792932, + "ast_hash": "2d651868335e57015c66149887c4b0ce", "semantic_hash": "" }, "app/tasks/customer_pool.py": { @@ -1530,8 +1530,8 @@ "semantic_hash": "" }, "tests/test_crm_name_pinyin_search.py": { - "mtime": 1786094657.392019, - "ast_hash": "cd9d359114a86b80ad39cb19b61be435", + "mtime": 1787293720.0864913, + "ast_hash": "859c85ee2163c95789eb29e1fdb572c9", "semantic_hash": "" }, "tests/test_pinyin_abbr.py": { @@ -1540,8 +1540,8 @@ "semantic_hash": "" }, "app/api/duty.py": { - "mtime": 1786962300.7785535, - "ast_hash": "373ab9a759e0aa3f4a37bc827afe00f8", + "mtime": 1787234033.9137535, + "ast_hash": "ccf7e59af0e0404edfd9c131a557ce34", "semantic_hash": "" }, "app/api/public_duty.py": { @@ -1555,13 +1555,13 @@ "semantic_hash": "" }, "app/models/duty_models.py": { - "mtime": 1786968943.7894385, - "ast_hash": "ac4ef5228cbf8821ca6abf160b11634e", + "mtime": 1787233986.1581693, + "ast_hash": "2ef1c6a59c58f94b060fb9d538fa11f7", "semantic_hash": "" }, "app/schemas/duty.py": { - "mtime": 1786968917.036718, - "ast_hash": "48a191d6b71d0367844a20c0b58ced32", + "mtime": 1787233986.15777, + "ast_hash": "9842cdd57c5c37306c052da67ee8fac9", "semantic_hash": "" }, "app/schemas/menu_favorite.py": { @@ -1575,8 +1575,8 @@ "semantic_hash": "" }, "app/services/duty_schedule.py": { - "mtime": 1786968943.2990172, - "ast_hash": "95a2c1fd6c9848f584fbbd5e817d42ea", + "mtime": 1787234210.6898406, + "ast_hash": "b52deffb5e6a20a98e797c9afc25894f", "semantic_hash": "" }, "app/services/pl_internal_customer.py": { @@ -1584,31 +1584,6 @@ "ast_hash": "a11ce7d29f7285bc4d65f9fe9845805e", "semantic_hash": "" }, - "scripts/migrate_20260814_duty_schedule.sql": { - "mtime": 1786780828.212848, - "ast_hash": "cc55e9e99cb71881758315e366178240", - "semantic_hash": "" - }, - "scripts/migrate_20260815_duty_menu_portal_fix.sql": { - "mtime": 1786862443.5190866, - "ast_hash": "b639e0673848f86bd7f0e46d00b24601", - "semantic_hash": "" - }, - "scripts/migrate_20260816_crm_settlement_method_options.sql": { - "mtime": 1786863543.5774279, - "ast_hash": "1926afbfb9d9534d4f96a743160d0394", - "semantic_hash": "" - }, - "scripts/migrate_20260817_bx_reimburse_detail_occur_date.sql": { - "mtime": 1786952998.7556877, - "ast_hash": "115e7bc5352900901cbc7222d6055afc", - "semantic_hash": "" - }, - "scripts/migrate_20260817_duty_staff_role.sql": { - "mtime": 1786961977.381234, - "ast_hash": "485a6e3405d4b04dcf0654b701ac4ca8", - "semantic_hash": "" - }, "tests/test_bx_optional_date.py": { "mtime": 1786953396.8217323, "ast_hash": "352fd5738fdbcf11d8c9706588492610", @@ -1625,13 +1600,98 @@ "semantic_hash": "" }, "tests/test_duty_schedule.py": { - "mtime": 1786962525.0293584, - "ast_hash": "b4f8930c8641f23bba5a411774fa66bc", + "mtime": 1787234218.5751219, + "ast_hash": "7539c27a87f0e442b8031b5c7a89c5e8", "semantic_hash": "" }, "tests/test_menu_favorite_crud.py": { "mtime": 1786161663.839656, "ast_hash": "4404ae2a3524b330074edb2605990226", "semantic_hash": "" + }, + "app/core/id_card.py": { + "mtime": 1787140660.3752768, + "ast_hash": "ea14b76f1b299c27e47c02fb4eacf5ea", + "semantic_hash": "" + }, + "app/services/bx/reimburse_import.py": { + "mtime": 1787059477.5401058, + "ast_hash": "b34213a76b56cf3897f06a207dfb93a1", + "semantic_hash": "" + }, + "app/services/dict_ensure.py": { + "mtime": 1787296137.624254, + "ast_hash": "3e999cc609a5546b724791ee7e1219a7", + "semantic_hash": "" + }, + "app/services/pl_plan_contract_gap.py": { + "mtime": 1787202689.374864, + "ast_hash": "8cf065f81ee8b548875211cd6ed18b2b", + "semantic_hash": "" + }, + "app/tasks/pl_personnel_age.py": { + "mtime": 1787140671.7765138, + "ast_hash": "6645d9c056aad90f64cdd7fb33eb3daa", + "semantic_hash": "" + }, + "app/utils/excel_list_validation.py": { + "mtime": 1787058157.6880832, + "ast_hash": "e17d6c4acc619bd2a3d14800dd3432ee", + "semantic_hash": "" + }, + "scripts/migrate_20260820_duty_shift_dict_time.sql": { + "mtime": 1787230059.4213135, + "ast_hash": "5442a321ea0d78f90df78d0d1c52fdfb", + "semantic_hash": "" + }, + "scripts/migrate_20260820_duty_time_range_dict.sql": { + "mtime": 1787234296.4603348, + "ast_hash": "1c0d678eb254feec33e31894c40097be", + "semantic_hash": "" + }, + "scripts/migrate_20260820_pl_plan_contract_complete_menu.sql": { + "mtime": 1787235628.9670775, + "ast_hash": "686849e28378a8d0c824f89794bfc26a", + "semantic_hash": "" + }, + "scripts/migrate_20260821_pl_plan_force_follow_status_menu.sql": { + "mtime": 1787278886.924597, + "ast_hash": "68340d696269746964619abe56d58970", + "semantic_hash": "" + }, + "tests/test_bx_reimburse_import.py": { + "mtime": 1787059491.7636578, + "ast_hash": "b8fa1f5145c190fc2c3cfd384c2af145", + "semantic_hash": "" + }, + "tests/test_bx_reimburse_my_page_size.py": { + "mtime": 1787292906.6472108, + "ast_hash": "f2c2edf993a2bb24e1f9f61a4b7a2d91", + "semantic_hash": "" + }, + "tests/test_dict_ensure.py": { + "mtime": 1787296131.347678, + "ast_hash": "6e2dc0f1608b406a93d23b1094f994e9", + "semantic_hash": "" + }, + "tests/test_id_card_age.py": { + "mtime": 1787140680.9154348, + "ast_hash": "23f28ca2ee80a5522bbc0b254af4d126", + "semantic_hash": "" + }, + "tests/test_pl_plan_contract_gap.py": { + "mtime": 1787198187.9137385, + "ast_hash": "ba5f68e7e5a0a26b64ea3c7f625559cf", + "semantic_hash": "" + }, + "tests/test_pl_public_transport_history.py": { + "mtime": 1787282256.679657, + "ast_hash": "3ee5e8aae73062ce8a98ba0bb242dfce", + "semantic_hash": "" + }, + "tests/test_pl_trailer_cert_rules.py": { + "mtime": 1787200408.1128635, + "ast_hash": "1cea826045c760885d98f5412bafea49", + "semantic_hash": "" } } \ No newline at end of file diff --git a/backend/graphify-out/GRAPH_REPORT.md b/backend/graphify-out/GRAPH_REPORT.md index 350a97ee0..4397f672f 100644 --- a/backend/graphify-out/GRAPH_REPORT.md +++ b/backend/graphify-out/GRAPH_REPORT.md @@ -1,16 +1,16 @@ # Graph Report - backend (2026-08-21) ## Corpus Check -- 335 files · ~222,563 words +- 338 files · ~223,572 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 4612 nodes · 17089 edges · 176 communities (157 shown, 19 thin omitted) -- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 783 edges (avg confidence: 0.62) +- 4639 nodes · 16923 edges · 186 communities (170 shown, 16 thin omitted) +- Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 553 edges (avg confidence: 0.53) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `88da74d7` +- Built from commit: `e9ad26cb` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). @@ -143,17 +143,27 @@ - [[_COMMUNITY_build_annotated_result_bytes|build_annotated_result_bytes]] - [[_COMMUNITY_customer_pool.py|customer_pool.py]] - [[_COMMUNITY_web_login_rsa_public_key|web_login_rsa_public_key]] -- [[_COMMUNITY_get_client_ip|get_client_ip]] +- [[_COMMUNITY_product_allowed|product_allowed]] - [[_COMMUNITY_BaseStorage|BaseStorage]] +- [[_COMMUNITY_.to_tenant_user_dict|.to_tenant_user_dict]] +- [[_COMMUNITY_list_product_options|list_product_options]] - [[_COMMUNITY_context.py|context.py]] -- [[_COMMUNITY_PlPlanChange|PlPlanChange]] +- [[_COMMUNITY_product.py|product.py]] +- [[_COMMUNITY_test_crm_approval_reedit.py|test_crm_approval_reedit.py]] +- [[_COMMUNITY_opportunity_follow.py|opportunity_follow.py]] - [[_COMMUNITY_Community 136|Community 136]] - [[_COMMUNITY_statistics.py|statistics.py]] - [[_COMMUNITY_Community 138|Community 138]] - [[_COMMUNITY_get_current_user_by_token|get_current_user_by_token]] +- [[_COMMUNITY_utils.py|utils.py]] +- [[_COMMUNITY_customer_follow.py|customer_follow.py]] +- [[_COMMUNITY_price_letter_detail|price_letter_detail]] +- [[_COMMUNITY_opportunity_export|opportunity_export]] - [[_COMMUNITY_dict_data.py|dict_data.py]] - [[_COMMUNITY_resolve_crm_product|resolve_crm_product]] +- [[_COMMUNITY___init__.py|__init__.py]] - [[_COMMUNITY_Community 147|Community 147]] +- [[_COMMUNITY_get_db_current_user_optional|get_db_current_user_optional]] - [[_COMMUNITY_Community 151|Community 151]] - [[_COMMUNITY_response.py|response.py]] - [[_COMMUNITY_customer_update|customer_update]] @@ -183,12 +193,12 @@ - [[_COMMUNITY_PlanResourceSnapshotMixin|PlanResourceSnapshotMixin]] ## God Nodes (most connected - your core abstractions) -1. `BaseModel` - 461 edges +1. `BaseModel` - 463 edges 2. `get_tenant_no()` - 353 edges -3. `success_response()` - 271 edges +3. `success_response()` - 273 edges 4. `DbUserContext` - 258 edges -5. `error_response()` - 250 edges -6. `generate_uuid()` - 196 edges +5. `error_response()` - 252 edges +6. `generate_uuid()` - 198 edges 7. `BxUserContext` - 188 edges 8. `crm_user_info()` - 137 edges 9. `assert_row_deletable_by_creator()` - 83 edges @@ -209,91 +219,91 @@ ## Import Cycles - None detected. -## Communities (176 total, 19 thin omitted) +## Communities (186 total, 16 thin omitted) ### Community 0 - "Community 0" -Cohesion: 0.10 -Nodes (45): register_contract_routes(), batch_assign_owner(), batch_submit_contract_approval(), create_from_opportunity(), create_from_quote(), download_contract_pdf(), execute_change(), finish_contract() (+37 more) +Cohesion: 0.12 +Nodes (20): BxAdvanceApply, BxAdvanceApproval, AdvanceService, Any, Session, 同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。, 返回全部审批动作,按时间正序排列,用于展示完整审批历史。, filter_current_cycle_approvals() (+12 more) ### Community 1 - "Community 1" -Cohesion: 0.08 -Nodes (35): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, 接口菜单权限守卫。super_admin 直接放行。, require_menu_code(), ContractApproverSettingSaveBody, ContractApprovalActionBody, ContractBatchAssignBody, ContractBatchSubmitBody, ContractChangeCreateBody (+27 more) +Cohesion: 0.09 +Nodes (34): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, 接口菜单权限守卫。super_admin 直接放行。, require_menu_code(), ContractApproverSettingSaveBody, ContractApprovalActionBody, ContractBatchAssignBody, ContractBatchSubmitBody, ContractChangeCreateBody (+26 more) ### Community 2 - "Community 2" -Cohesion: 0.09 -Nodes (38): advance_issue_stats(), batch_offset(), export_advance_issues(), issue_advance(), list_advance_issues(), list_advance_offset_records(), list_pending_payments(), list_processed_payments() (+30 more) +Cohesion: 0.13 +Nodes (11): _coerce_id(), OffsetItem, PaymentFinanceStatsOut, 报销单勾选的发票附件(同一发票可勾选多个附件,各占一条)。, ReimburseApplyCreate, ReimburseApprovalOut, ReimburseApproverPendingStatsOut, ReimburseDetailCreate (+3 more) ### Community 3 - "Community 3" -Cohesion: 0.07 -Nodes (67): attachment_download_url(), attachment_preview_url(), create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_menu_favorite(), create_post() (+59 more) +Cohesion: 0.06 +Nodes (73): attachment_download_url(), attachment_preview_url(), create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_menu_favorite(), create_post() (+65 more) ### Community 4 - "Community 4" -Cohesion: 0.09 -Nodes (76): _apply_list_filters(), assign_opportunities(), batch_update_expect_date(), batch_update_stage(), change_stage(), create_opportunity(), _decimal_value(), _enrich_user_names() (+68 more) +Cohesion: 0.12 +Nodes (61): _apply_list_filters(), assign_opportunities(), batch_update_expect_date(), batch_update_stage(), change_stage(), create_opportunity(), _decimal_value(), _enrich_user_names() (+53 more) ### Community 5 - "Community 5" -Cohesion: 0.07 -Nodes (69): archive_plan(), _build_driver_url(), cancel_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), create_from_contract(), create_plan(), create_plan_full() (+61 more) +Cohesion: 0.06 +Nodes (79): archive_plan(), _build_driver_url(), cancel_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), create_from_contract(), create_plan(), create_plan_full() (+71 more) ### Community 6 - "Community 6" -Cohesion: 0.11 -Nodes (50): follow_by_customer(), follow_detail(), assign_customer(), batch_claim_customers(), check_duplicate_customer(), claim_customer(), create_customer(), deal_customer() (+42 more) +Cohesion: 0.18 +Nodes (32): assign_customer(), batch_claim_customers(), check_duplicate_customer(), claim_customer(), create_customer(), deal_customer(), _enrich_user_names(), _ensure_customer_in_scope() (+24 more) ### Community 7 - "Community 7" -Cohesion: 0.04 -Nodes (174): clue_assign(), clue_check_convert(), clue_check_duplicate(), clue_convert(), clue_create(), clue_delete(), clue_export(), clue_follow_create() (+166 more) +Cohesion: 0.06 +Nodes (127): clue_check_convert(), clue_check_duplicate(), clue_detail(), clue_export(), clue_follow_statistics(), clue_import(), clue_list(), clue_mine() (+119 more) ### Community 8 - "Community 8" -Cohesion: 0.09 -Nodes (70): register_quote_routes(), accept_quote(), assert_quote_editable_for_update(), _build_quote_filters(), calculate_quote_amount(), create_new_version(), create_quote(), _decimal_value() (+62 more) +Cohesion: 0.10 +Nodes (48): assert_quote_editable_for_update(), _build_quote_filters(), calculate_quote_amount(), create_new_version(), create_quote(), _decimal_value(), _enrich_contact_fields(), _enrich_supplier_name() (+40 more) ### Community 9 - "Community 9" -Cohesion: 0.07 -Nodes (70): download_reimburse_import_template(), build_annotated_result_bytes(), build_applicant_label(), build_expense_path_labels(), build_import_template_bytes(), cell_str(), _ids_visible_in_web_tree(), import_reimburse_workbook() (+62 more) +Cohesion: 0.10 +Nodes (49): download_reimburse_import_template(), build_annotated_result_bytes(), build_applicant_label(), build_expense_path_labels(), build_import_template_bytes(), cell_str(), _ids_visible_in_web_tree(), import_reimburse_workbook() (+41 more) ### Community 10 - "Community 10" -Cohesion: 0.12 -Nodes (38): _apply_inventory_product_update(), _apply_inventory_update(), _base_query(), create_inventory(), create_link_for_plan(), delete_inventory(), _generate_batch_no(), _get_inventory() (+30 more) +Cohesion: 0.20 +Nodes (24): _apply_inventory_product_update(), _apply_inventory_update(), _base_query(), create_inventory(), create_link_for_plan(), delete_inventory(), _generate_batch_no(), _get_inventory() (+16 more) ### Community 11 - "Community 11" Cohesion: 0.10 Nodes (55): cancel_apply(), create_apply(), create_disburse(), delete_applies(), delete_disburses(), get_apply(), get_disburse(), list_applies() (+47 more) ### Community 12 - "Community 12" -Cohesion: 0.08 -Nodes (40): AttachmentUploadResponse, ChangePasswordRequest, Config, LoginRequest, LoginResponse, Pydantic schemas - 用户认证, ResetPasswordRequest, UserCreate (+32 more) +Cohesion: 0.05 +Nodes (68): contact_add(), contact_delete(), contact_update(), customer_create(), customer_update(), customer_name_exists(), BaseModel, AttachmentUploadResponse (+60 more) ### Community 13 - "Community 13" -Cohesion: 0.20 +Cohesion: 0.19 Nodes (13): create_expense_item(), delete_expense_item(), get_expense_item(), get_expense_item_tree(), Session, update_expense_item(), BxExpenseItem, _coerce_id() (+5 more) ### Community 14 - "Community 14" -Cohesion: 0.20 -Nodes (15): bind_biz(), delete_attachment(), download_file(), list_by_biz(), _parse_id_list(), preview_attachment(), Session, UploadFile (+7 more) +Cohesion: 0.12 +Nodes (25): bind_biz(), delete_attachment(), download_file(), list_by_biz(), _parse_id_list(), preview_attachment(), Session, UploadFile (+17 more) ### Community 15 - "Community 15" -Cohesion: 0.10 -Nodes (39): approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse(), delete_reimburse(), get_approval_history(), get_approvals(), get_generated_title() (+31 more) +Cohesion: 0.09 +Nodes (43): approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse(), delete_reimburse(), get_approval_history(), get_approvals(), get_generated_title() (+35 more) ### Community 16 - "Community 16" Cohesion: 0.09 -Nodes (68): Session, recognize_cert(), RecognizeCertBody, cancel_apply(), create_apply(), create_record(), delete_applies(), delete_records() (+60 more) +Nodes (60): cancel_apply(), create_apply(), create_record(), delete_applies(), delete_records(), get_apply(), get_record(), list_applies() (+52 more) ### Community 17 - "Community 17" Cohesion: 0.10 -Nodes (33): build_dict_value_from_label(), ensure_dict_data(), format_hhmm(), format_time_label(), grab(), join_work_plans(), normalize_person_name(), _pad_hhmm() (+25 more) +Nodes (32): build_dict_value_from_label(), ensure_dict_data(), grab(), join_work_plans(), list_duty_staff_users(), normalize_person_name(), _pad_hhmm(), parse_time_range_input() (+24 more) ### Community 18 - "Community 18" -Cohesion: 0.13 -Nodes (36): advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _fill_offset_amounts(), get_advance() (+28 more) +Cohesion: 0.08 +Nodes (64): advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _fill_offset_amounts(), get_advance() (+56 more) ### Community 19 - "Community 19" -Cohesion: 0.15 -Nodes (10): BxAdvanceApply, BxAdvanceApproval, AdvanceService, Any, Session, 同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。, 返回全部审批动作,按时间正序排列,用于展示完整审批历史。, Any (+2 more) +Cohesion: 0.24 +Nodes (12): DbSequence, 地磅(db)模块数据模型 — 对齐 docs/sql/db_tables.sql, _allocate_inbound_outbound_id(), _ensure_sequence_row(), max_numeric_inbound_outbound_id(), next_inbound_outbound_id(), Session, 出入库单 id 生成 — 租户内纯数字自增,并发安全。 (+4 more) ### Community 20 - "Community 20" -Cohesion: 0.15 -Nodes (31): approve_settlement_legacy(), cancel_settlement(), create_settlement(), delete_settlement(), disburse_settlement(), _generate_settlement_no(), get_settlement(), get_settlement_approval_flow() (+23 more) +Cohesion: 0.11 +Nodes (37): approve_settlement_legacy(), cancel_settlement(), create_settlement(), delete_settlement(), disburse_settlement(), _generate_settlement_no(), get_settlement(), get_settlement_approval_flow() (+29 more) ### Community 21 - "Community 21" Cohesion: 0.08 @@ -304,52 +314,52 @@ Cohesion: 0.08 Nodes (28): parse_admin_request_json(), Any, Request, 运营 Web(/web/admin)JSON 请求体解析。 与 ApiCryptoMiddleware 配合:中间件未改写 body 时,在路由内解密 `{, 读取 JSON body;dict 时走 resolve_request_payload(明文 / 密文 / data 包装)。 Returns:, ApiCryptoError, _b64url_decode(), _b64url_encode() (+20 more) ### Community 23 - "Community 23" -Cohesion: 0.09 -Nodes (56): update_plan(), PlanArchiveFreightBlock, PlanArchiveProductItem, PlanProductCreate, PlanTransportCreateBlock, all_hazard_products_cert_complete(), apply_archive_freight(), apply_archive_product_quantities() (+48 more) +Cohesion: 0.10 +Nodes (57): update_plan(), PlPlanProduct, 计划产品明细表 pl_plan_product, PlanArchiveFreightBlock, PlanArchiveProductItem, PlanProductCreate, PlanTransportCreateBlock, all_hazard_products_cert_complete() (+49 more) ### Community 24 - "Community 24" -Cohesion: 0.13 -Nodes (26): 报销模块认证适配:门户 JWT 用户 → bx 业务上下文。, BxReimburseInvoice, BxReimburseOffset, BxWorkflowNode, 报销(bx)模块数据模型 — 对齐 docs/sql/20260606_bx_tables.sql, filter_current_cycle_approvals(), 审批轮次过滤 — 驳回后重新提交时,进度接口仅展示当前轮次。, 审批进度仅展示当前轮次;完整历史由 get_approval_history 返回。 (+18 more) +Cohesion: 0.14 +Nodes (20): 数据模型(与 docs/sql/shanxia2.0.sql 全库导出基线对齐的核心系统表), Web 管理端约定角色(由 sys_role.role_name 映射而来,非数据库枚举), UserRole, DictEnsureError, ensure_dict_data(), ensure_remove_dict_data(), Session, 业务页字典 ensure:白名单内按 label 复用或插入 sys_dict_data。 (+12 more) ### Community 25 - "Community 25" -Cohesion: 0.22 -Nodes (13): list_share_logs(), _parse_user_agent(), Any, Session, CRM 报价单分享访问日志 CRUD — 对照 CrmQuoteShareLogServiceImpl.java, Java: statisticsVisits, 简易 User-Agent 解析(替代 Hutool UserAgentUtil), Java: queryLogsByQuoteId (+5 more) +Cohesion: 0.26 +Nodes (12): list_share_logs(), _parse_user_agent(), Any, Session, CRM 报价单分享访问日志 CRUD — 对照 CrmQuoteShareLogServiceImpl.java, Java: statisticsVisits, 简易 User-Agent 解析(替代 Hutool UserAgentUtil), Java: queryLogsByQuoteId (+4 more) ### Community 26 - "Community 26" -Cohesion: 0.18 -Nodes (33): DutyAssignment, DutyDay, DutySlot, 值班排班模型 — docs/superpowers/specs/2026-08-14-duty-schedule-design.md, assert_user_is_duty_staff(), _assignment_dict(), build_public_url(), _count_active_assignments() (+25 more) +Cohesion: 0.20 +Nodes (31): DutyAssignment, DutyDay, DutySlot, 值班排班模型 — docs/superpowers/specs/2026-08-14-duty-schedule-design.md, assert_user_is_duty_staff(), _assignment_dict(), build_public_url(), _count_active_assignments() (+23 more) ### Community 27 - "Community 27" -Cohesion: 0.06 -Nodes (61): CRM 报价单 API 路由 — 挂接到 crm.router, RecognizeCertResult, PageResult, ResponseModel, BaseModel, PagedQuery, PagedResponse, CustomerAssignPoolBody (+53 more) +Cohesion: 0.11 +Nodes (32): CRM 报价单 API 路由 — 挂接到 crm.router, QuoteApproverSettingSaveBody, QuoteAcceptBody, QuoteApprovalApproveBody, QuoteApprovalListBody, QuoteApprovalRefreshNamesBody, QuoteApprovalWithdrawBody, QuoteCreateBody (+24 more) ### Community 28 - "Community 28" -Cohesion: 0.08 -Nodes (73): PlFreightSettlement, PlFreightSettlementApproval, PlFreightSettlementTransport, PlRemittanceVoucher, 运费结算表 pl_freight_settlement, 运费结算审批 pl_freight_settlement_approval, 结算单-运输关联表 pl_freight_settlement_transport, 汇款凭证表 pl_remittance_voucher (+65 more) +Cohesion: 0.10 +Nodes (57): PlFreightSettlement, PlFreightSettlementApproval, 运费结算表 pl_freight_settlement, 运费结算审批 pl_freight_settlement_approval, _advance_after_approval(), _approval_to_dict(), can_user_approve_settlement(), cancel_draft_settlement() (+49 more) ### Community 29 - "Community 29" -Cohesion: 0.10 -Nodes (64): _apply_contract_entity_fields(), _build_contract_filters(), _build_contract_name_from_parties(), _build_customer_address(), _calc_amount_with_tax(), _change_row_to_dict(), contract_no_exists(), _contract_period_key() (+56 more) +Cohesion: 0.09 +Nodes (65): _apply_contract_entity_fields(), _build_contract_filters(), _build_contract_name_from_parties(), _build_customer_address(), _calc_amount_with_tax(), _change_row_to_dict(), contract_no_exists(), _contract_period_key() (+57 more) ### Community 30 - "Community 30" Cohesion: 0.16 Nodes (26): clear_target_categories(), compute_level(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings() (+18 more) ### Community 31 - "Community 31" -Cohesion: 0.10 -Nodes (32): _build_public_page(), _build_site_product_read(), _format_file_size(), get_public_site(), _get_site_link_by_token(), _parse_feedback_images(), Session, UploadFile (+24 more) +Cohesion: 0.15 +Nodes (27): _as_date(), _build_driver_url(), _build_public_page(), _format_file_size(), _format_plan_date(), get_public_transport(), get_public_transport_history(), _get_transport_by_token() (+19 more) ### Community 32 - "Community 32" -Cohesion: 0.16 -Nodes (32): check_document_expiry(), document_reminder_stats(), get_inventory_ledger(), get_summary(), list_document_reminders(), list_transactions(), list_warnings(), date (+24 more) +Cohesion: 0.11 +Nodes (45): check_document_expiry(), document_reminder_stats(), get_inventory_ledger(), get_summary(), list_document_reminders(), list_transactions(), list_warnings(), date (+37 more) ### Community 33 - "Community 33" -Cohesion: 0.12 -Nodes (37): clue_detail(), contact_by_customer(), contact_detail(), contact_set_primary(), customer_detail(), create_contact(), get_contact(), list_contacts_by_customer() (+29 more) +Cohesion: 0.29 +Nodes (16): ensure_crm_customer_linked_row_in_scope(), ensure_crm_owner_row_in_scope(), Session, CRM 数据权限辅助(负责人 owner_user_id + 标准 create_by/create_dept_id)。, 客户子表(开票信息等):先校验关联客户 owner scope,否则校验 create_by。, _clear_default_for_customer(), create_invoice_info(), get_invoice_info() (+8 more) ### Community 34 - "Community 34" -Cohesion: 0.17 -Nodes (26): approve_task(), _assert_wf_instance_in_scope(), _business_type_label(), create_process_def(), delete_process_def(), _enrich_task_list(), get_business_all_tasks(), _get_business_form_fields() (+18 more) +Cohesion: 0.18 +Nodes (31): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), legacy_parent_id(), load_oss_id_to_url(), load_runtime_settings() (+23 more) ### Community 35 - "Community 35" Cohesion: 0.18 @@ -360,24 +370,24 @@ Cohesion: 0.15 Nodes (27): 验证密码(哈希非 bcrypt 或损坏时返回 False,避免抛错), verify_password(), change_password(), create_user(), get_user(), get_user_with_relations(), _hash_password(), list_post_ids_for_user() (+19 more) ### Community 37 - "Community 37" -Cohesion: 0.34 -Nodes (32): AttachmentDownloadUrlBody, DeptCreateBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody, DictTypeCreateBody, DictTypeUpdateBody, MenuCreateBody (+24 more) +Cohesion: 0.18 +Nodes (29): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+21 more) ### Community 38 - "Community 38" -Cohesion: 0.31 -Nodes (9): decrypt_login_payload(), ensure_initialized(), extract_login_credentials(), get_public_pem(), Any, 登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。, Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。, 从请求体解析用户名、密码。 返回 (username, password, error_message);error_message 非空时表示失败。 (+1 more) +Cohesion: 0.18 +Nodes (11): Config, decrypt_login_payload(), ensure_initialized(), extract_login_credentials(), get_public_pem(), Any, 登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。, Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。 (+3 more) ### Community 39 - "Community 39" Cohesion: 0.13 Nodes (42): clue_follow_detail(), assign_clues(), check_convert(), check_duplicate_clue(), convert_clue(), create_clue(), _enrich_user_names(), _ensure_clue_in_scope() (+34 more) ### Community 40 - "Community 40" -Cohesion: 0.13 -Nodes (44): _apply_plan_product_update(), _apply_plan_update(), AutoGenerateMonthlyResult, _base_query(), create_plan(), delete_plan(), _generate_plan_no(), get_plan() (+36 more) +Cohesion: 0.15 +Nodes (39): _apply_plan_product_update(), _apply_plan_update(), AutoGenerateMonthlyResult, _base_query(), create_plan(), delete_plan(), _generate_plan_no(), get_plan() (+31 more) ### Community 41 - "Community 41" -Cohesion: 0.14 -Nodes (24): PlTransportProductBrandQty, PlTransportProductFeedback, 运输单按产品回传 pl_transport_product_feedback, 运输单产品回传品牌数量 pl_transport_product_brand_qty, _dict_field(), format_brand_qty_summary(), load_transport_driver_product_feedbacks(), persist_io_item_brand_qtys() (+16 more) +Cohesion: 0.08 +Nodes (54): _generate_notify_message(), _is_rearrange(), 仅计划已正式安排才算「调整运输」。 创建/编辑表单预选车辆会留下 draft 运输单,计划仍为 pending; 若把非 cancelled, PlInboundOrder, PlInboundOrderItem, PlPlan, PlTransport, 运输计划-入库单 pl_inbound_order (+46 more) ### Community 42 - "Community 42" Cohesion: 0.19 @@ -385,23 +395,23 @@ Nodes (32): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_r ### Community 43 - "Community 43" Cohesion: 0.09 -Nodes (34): create_invoice(), delete_invoice(), get_mine_wallet_summary(), list_invoice_ledgers(), list_invoice_wallets(), list_invoices(), Request, Session (+26 more) +Nodes (34): create_invoice(), delete_invoice(), get_mine_wallet_summary(), list_invoice_ledgers(), list_invoices(), Request, Session, 一次上传一条发票:多文件挂同一档案,金额为总额,只写一条额度流水。 使用 request.form().getlist,兼容只传 1 个文件时 Fas (+26 more) ### Community 44 - "Community 44" Cohesion: 0.18 -Nodes (31): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), legacy_parent_id(), load_oss_id_to_url(), load_runtime_settings() (+23 more) +Nodes (24): approve_task(), _assert_wf_instance_in_scope(), _business_type_label(), create_process_def(), delete_process_def(), _enrich_task_list(), get_business_all_tasks(), _get_business_form_fields() (+16 more) ### Community 45 - "Community 45" -Cohesion: 0.12 -Nodes (29): pool_rule_add(), pool_rule_delete(), pool_rule_detail(), pool_rule_execute(), pool_rule_list(), pool_rule_update(), pool_rule_update_status(), create_pool_rule() (+21 more) +Cohesion: 0.33 +Nodes (34): AttachmentDownloadUrlBody, DeptCreateBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody, DictEnsureBody, DictEnsureRemoveBody, DictTypeCreateBody (+26 more) ### Community 46 - "Community 46" -Cohesion: 0.20 -Nodes (24): count_source_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings(), load_settings_env(), load_user_mapping() (+16 more) +Cohesion: 0.12 +Nodes (37): register_contract_routes(), batch_assign_owner(), batch_submit_contract_approval(), contract_row_to_dict(), download_contract_pdf(), _ensure_contract_in_scope(), export_contracts(), finish_contract() (+29 more) ### Community 47 - "Community 47" Cohesion: 0.13 -Nodes (33): put_plan_side_contracts(), PlPlanContract, 运输计划-合同关联(分侧多选) pl_plan_contract, PlanContractGapRead, PlanContractLink, is_internal_customer_name(), 运输计划:内置山峡/云栋客户判定(合同可免), build_plan_contract_gap_read() (+25 more) +Nodes (32): PlanContractGapRead, PlanContractLink, PlanProductBase, PlanProductRead, is_internal_customer_name(), 运输计划:内置山峡/云栋客户判定(合同可免), build_plan_contract_gap_read(), compute_contract_gap_sides() (+24 more) ### Community 48 - "Community 48" Cohesion: 0.21 @@ -412,164 +422,168 @@ Cohesion: 0.49 Nodes (10): clue_statistics_level(), _apply_create_range(), _base_query(), get_clue_level_statistics(), get_clue_overview_statistics(), get_clue_owner_statistics(), get_clue_source_statistics(), get_clue_trend_statistics() (+2 more) ### Community 50 - "Community 50" -Cohesion: 0.19 -Nodes (26): _apply_weighing_product_update(), _apply_weighing_update(), _base_query(), create_weighing(), delete_weighing(), _get_weighing(), get_weighing_related(), list_weighing() (+18 more) +Cohesion: 0.16 +Nodes (30): _apply_weighing_product_update(), _apply_weighing_update(), _base_query(), create_weighing(), delete_weighing(), _get_weighing(), get_weighing_related(), list_weighing() (+22 more) ### Community 51 - "Community 51" Cohesion: 0.26 Nodes (18): _address_to_read(), _build_address_query(), create_transport_address(), delete_transport_address(), _get_address(), get_transport_address(), list_all_transport_addresses(), list_transport_addresses() (+10 more) ### Community 52 - "Community 52" -Cohesion: 0.26 -Nodes (10): _build_workbook(), DictLabelResolver, ExportColumn, load_dict_label_maps(), Any, Session, Excel 导出工具:集中处理字典 code → label(对齐 Java ExcelDictConvert / ExcelDictPreloadConver, 导出列定义,dict_type 非空时自动将字典 value 转为 label。 (+2 more) +Cohesion: 0.19 +Nodes (14): CRM 模块 Excel 导出列定义(字段与字典类型对齐 Java *Vo @ExcelDictFormat)。, _build_workbook(), DictLabelResolver, export_rows_to_xlsx_response(), ExportColumn, load_dict_label_maps(), Any, Session (+6 more) ### Community 53 - "Community 53" Cohesion: 0.19 Nodes (28): apply_biz_backfill(), BackfillRule, BizRef, build_biz_index(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows() (+20 more) ### Community 54 - "Community 54" -Cohesion: 0.24 -Nodes (25): _get_by_plan(), get_inbound(), get_inbound_by_plan(), _get_order(), get_outbound(), get_outbound_by_plan(), inbound_site_url(), list_inbound() (+17 more) +Cohesion: 0.08 +Nodes (57): _get_by_plan(), get_inbound(), get_inbound_by_plan(), _get_order(), get_outbound(), get_outbound_by_plan(), inbound_site_url(), list_inbound() (+49 more) ### Community 55 - "Community 55" -Cohesion: 0.10 -Nodes (28): generate_uuid(), get_current_time(), parse_datetime(), datetime, allocate_next_biz_no(), _format_biz_no(), _prefix_for(), datetime (+20 more) +Cohesion: 0.33 +Nodes (8): allocate_next_biz_no(), _format_biz_no(), _prefix_for(), datetime, Session, 业务协议号自动生成:XBCC / JZCC + YYYYMMDD + 6 位序号, 原子分配下一个业务协议号。 须在 create 事务内调用;使用 MySQL LAST_INSERT_ID 保证并发安全。, BizNoKind ### Community 56 - "Community 56" -Cohesion: 0.29 -Nodes (12): build_name_pinyin_abbr(), normalize_name_pinyin_abbr(), 名称拼音首字母缩写:库内存小写,检索时大小写不敏感。, 保存时解析拼音字段。 - submitted_provided=True:用提交值(空则按 name 生成) - 否则:已有非空 existi, resolve_name_pinyin_abbr(), test_chinese_and_alnum(), test_empty_and_whitespace(), test_resolve_not_submitted_empty_existing_generates() (+4 more) +Cohesion: 0.13 +Nodes (28): generate_uuid(), PlPlanProductBrandQty, 计划产品归档品牌数量 pl_plan_product_brand_qty, load_brand_qtys_by_plan_product_ids(), persist_plan_product_brand_qtys(), Any, Decimal, Session (+20 more) ### Community 57 - "Community 57" -Cohesion: 0.15 -Nodes (22): day_detail(), delete_assignment(), duty_user_options(), _enrich_assign_names(), ensure_duty_dict(), month_summary(), Session, 指定用户时补全 personName(用 nick_name)。 (+14 more) +Cohesion: 0.19 +Nodes (16): API 路由包 — 山峡化工生产一体化门户, create_leave(), delete_leave(), get_leave(), _leave_local_callback(), leave_workflow_callback(), list_leaves(), Session (+8 more) ### Community 58 - "Community 58" -Cohesion: 0.18 -Nodes (29): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+21 more) +Cohesion: 0.19 +Nodes (21): allocate_reimburse_title_seq(), format_reimburse_title(), generate_apply_code(), generate_title(), is_auto_reimburse_title(), parse_optional_date(), parse_reimburse_date(), preview_reimburse_title_seq() (+13 more) ### Community 59 - "Community 59" Cohesion: 0.20 Nodes (28): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+20 more) ### Community 60 - "Community 60" -Cohesion: 0.08 -Nodes (36): 分页查询供方列表 — Java: CrmSupplierInfoController.list, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 新增供方 — Java: CrmSupplierInfoController.add, 修改供方 — Java: CrmSupplierInfoController.edit, 删除供方 — Java: CrmSupplierInfoController.remove, 导出供方列表 — Java: CrmSupplierInfoController.export, supplier_info_add(), supplier_info_delete() (+28 more) +Cohesion: 0.21 +Nodes (16): apply_crm_create_by_scope(), _apply_list_filters(), create_supplier_info(), list_all_supplier_info(), list_supplier_info(), Any, Session, CRM 供方信息 CRUD — 对照 CrmSupplierInfoServiceImpl.java (+8 more) ### Community 61 - "Community 61" -Cohesion: 0.11 -Nodes (47): _generate_notify_message(), PlPlan, PlPlanProduct, PlTransportDbLink, 计划产品明细表 pl_plan_product, 运输-地磅出入库关联 pl_transport_db_link, _apply_plan_quantity_delta(), _create_db_inventory() (+39 more) +Cohesion: 0.31 +Nodes (15): DbInboundOutbound, PlTransportDbLink, 运输-地磅出入库关联 pl_transport_db_link, _apply_plan_quantity_delta(), 再次勾选地磅安排前:软删本运输单此前生成的、仍可作废的出入库单及关联。 - 不删除地磅月计划(可能被其他业务复用) - 若出入库单已完成的/已, _resolve_link_contributed_qty(), revoke_regeneratable_dibang_for_transport(), _subtract_plan_contribution() (+7 more) ### Community 62 - "Community 62" -Cohesion: 0.08 -Nodes (37): approve_carrier(), create_carrier(), get_carrier(), update_carrier(), PlCarrier, carrier_to_read(), CarrierBase, CarrierCreate (+29 more) +Cohesion: 0.17 +Nodes (28): approve_carrier(), create_carrier(), create_driver(), delete_carrier(), delete_driver(), delete_personnel(), delete_vehicle(), get_carrier() (+20 more) ### Community 63 - "Community 63" -Cohesion: 0.21 -Nodes (19): _cargo_stats(), get_dashboard_stats(), get_inbound_by_cargo(), get_inbound_by_partner_cargo(), get_outbound_by_cargo(), get_outbound_by_partner_cargo(), _partner_cargo_stats(), Session (+11 more) +Cohesion: 0.38 +Nodes (14): _cargo_stats(), get_dashboard_stats(), get_inbound_by_cargo(), get_inbound_by_partner_cargo(), get_outbound_by_cargo(), get_outbound_by_partner_cargo(), _partner_cargo_stats(), Session (+6 more) ### Community 64 - "Community 64" -Cohesion: 0.18 -Nodes (18): create_workflow(), delete_workflow(), get_workflow(), get_workflow_by_biz_type(), list_workflows(), Session, save_workflow_nodes(), update_workflow() (+10 more) +Cohesion: 0.13 +Nodes (23): create_workflow(), delete_workflow(), get_workflow(), get_workflow_by_biz_type(), list_workflows(), Session, save_workflow_nodes(), update_workflow() (+15 more) ### Community 65 - "Community 65" Cohesion: 0.10 -Nodes (58): cancel_apply(), create_apply(), create_process(), delete_applies(), delete_processes(), get_apply(), get_process(), list_applies() (+50 more) +Nodes (62): cancel_apply(), create_apply(), create_process(), delete_applies(), delete_processes(), get_apply(), get_process(), list_applies() (+54 more) ### Community 66 - "Community 66" -Cohesion: 0.07 -Nodes (48): ApiRequestLogMiddleware, _claims_from_auth(), _format_body_bytes(), _persist_log(), Any, Request, 统一记录 API 请求/响应出入参的中间件, _redact_obj() (+40 more) +Cohesion: 0.16 +Nodes (19): ApiRequestLogMiddleware, _claims_from_auth(), _format_body_bytes(), _persist_log(), Any, Request, 统一记录 API 请求/响应出入参的中间件, _redact_obj() (+11 more) ### Community 67 - "Community 67" -Cohesion: 0.08 -Nodes (54): get_password_hash(), batch_generate_sample_codes(), batch_issue_sample_codes(), batch_revoke_sample_codes(), create_sample_code(), get_sample_code(), list_sample_codes(), _parse_issued_time() (+46 more) +Cohesion: 0.12 +Nodes (36): get_password_hash(), Namespace, build_merged_users(), bx_role_labels(), check_minio(), check_mysql(), check_redis(), _clip() (+28 more) ### Community 68 - "Community 68" Cohesion: 0.33 Nodes (13): _build_tree(), _cascade_soft_delete(), _collect_with_ancestors(), create_dept(), get_dept(), list_depts(), list_depts_tree(), Any (+5 more) ### Community 69 - "Community 69" -Cohesion: 0.14 -Nodes (25): _append_user_scope_conditions(), apply_data_scope(), _collect_scope_ids(), _get_child_dept_ids(), get_user_dept_id(), Session, 合并多角色数据范围为 dept_ids / user_ids 并集。, 根据用户角色的数据权限过滤查询。 适用于业务单据列表/详情(报销单、客户、运单等)。 以下场景 SHALL NOT 调用本函数(仅租户隔离即 (+17 more) +Cohesion: 0.10 +Nodes (39): _append_user_scope_conditions(), apply_data_scope(), assert_row_in_data_scope(), _collect_scope_ids(), _get_child_dept_ids(), get_user_dept_id(), Session, 数据权限过滤(V0.3:基于角色 data_scope 的查询级行级过滤) data_scope 值: 1 = 全部数据 2 = 本部门数据 3 (+31 more) ### Community 70 - "Community 70" -Cohesion: 0.18 -Nodes (18): align_contract_no_to_sign_date(), generate_contract_no(), date, Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr, 标准编号替换日期段,保留序号;非标准返回 None。, 将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。, replace_contract_no_date(), _mock_last_contract() (+10 more) +Cohesion: 0.19 +Nodes (16): align_contract_no_to_sign_date(), date, 标准编号替换日期段,保留序号;非标准返回 None。, 将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。, replace_contract_no_date(), _mock_last_contract(), 软删占用的编号仍占唯一索引,生成时须跳过(对齐 uk_contract_tenant_no)。, 取最大流水号须含软删,避免复用已软删的最大编号。 (+8 more) ### Community 71 - "Community 71" -Cohesion: 0.23 -Nodes (8): generate_id(), camel_to_snake(), CRUDBase, get_model_attr(), HistoryCRUD, Any, Session, ModelType +Cohesion: 0.24 +Nodes (7): camel_to_snake(), CRUDBase, get_model_attr(), HistoryCRUD, Any, Session, ModelType ### Community 72 - "Community 72" -Cohesion: 0.16 -Nodes (16): can_user_approve(), invalidate_all_approvals(), 作废该合同全部有效审批记录(含已通过/已拒绝),用于再编辑或重新提审。, 顺序审批:当前步骤 pending 且 is_current=1。 同一审批人若同时存在历史已处理记录与当前轮 pending,优先取 pending, invalidate_all_approvals(), 作废该报价单全部有效审批记录(含已通过/已拒绝),用于再编辑或重新提审。, _approval(), 再编辑并重新提审后,历史审批记录不得阻塞当前轮审批。 (+8 more) +Cohesion: 0.25 +Nodes (18): batch_generate_sample_codes(), batch_issue_sample_codes(), batch_revoke_sample_codes(), create_sample_code(), get_sample_code(), list_sample_codes(), _parse_issued_time(), Any (+10 more) ### Community 73 - "Community 73" Cohesion: 0.20 Nodes (25): derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env(), load_user_mapping() (+17 more) ### Community 74 - "Community 74" -Cohesion: 0.25 -Nodes (7): ProcessDefCreateBody, start_instance(), StartInstanceBody, WfNode, Any, Session, WorkflowEngine +Cohesion: 0.13 +Nodes (27): create_vehicle(), update_vehicle(), _vehicle_to_detail(), calc_age_from_chinese_id_card(), date, 从 18 位身份证号计算周岁。号码不完整或出生日期无效时返回 None。, VehicleDetailRead, VehiclePersonnelRow (+19 more) ### Community 75 - "apply_crm_create_by_scope" -Cohesion: 0.21 -Nodes (21): paste_recognize_commit(), VehiclePersonnelRow, ConflictAction, PasteCommitBody, PasteCommitResult, PastePersonnelIn, PasteVehicleIn, 运输计划 - 三方粘贴识别提交 Schema (+13 more) +Cohesion: 0.25 +Nodes (19): bind_vehicle_driver(), get_vehicle(), paste_recognize_commit(), PlVehicle, ConflictAction, PasteCommitBody, PasteCommitResult, PastePersonnelIn (+11 more) ### Community 76 - "opportunity_follow.py" -Cohesion: 0.21 -Nodes (14): change_current_user_password(), get_current_user_profile(), get_web_auth_menu_codes(), public_quote_share(), Request, Session, 获取当前用户信息(与 sys_user 字段对应)。, 获取当前用户菜单权限标识(sys_menu.perms,经角色继承)。 (+6 more) +Cohesion: 0.15 +Nodes (23): _avatar_url_field(), _build_user_info_payload(), change_current_user_password(), get_current_user_profile(), get_web_auth_menu_codes(), _jwt_user_payload(), public_quote_share(), Request (+15 more) ### Community 77 - "Community 77" Cohesion: 0.11 Nodes (12): get_wechat_pay_client(), get_wechat_pay_v2(), Any, 微信支付工具模块 支持微信支付 V3 API 文档参考: https://pay.weixin.qq.com/docs/v3/apis/index.html, 统一下单接口 (V3) Args: out_trade_no: 商户订单号 total_amo, 申请退款 Args: out_trade_no: 商户订单号 total_amount: 订单, 小程序调起支付的二次签名参数(与公众号 JSAPI 规则一致), 统一下单 (V2 API) Args: out_trade_no: 商户订单号 total_f (+4 more) ### Community 78 - "Community 78" -Cohesion: 0.19 -Nodes (23): delete_carrier(), delete_vehicle(), unbind_vehicle_driver(), delete_plan(), _actor_ids(), _actor_names(), assert_row_deletable_by_creator(), assert_rows_deletable_by_creator() (+15 more) +Cohesion: 0.24 +Nodes (18): _actor_ids(), _actor_names(), assert_row_deletable_by_creator(), assert_rows_deletable_by_creator(), can_delete_by_creator(), is_super_admin(), normalize_user_info(), Any (+10 more) ### Community 79 - "PlCarrier" -Cohesion: 0.15 -Nodes (27): _as_date(), _build_driver_url(), _build_public_page(), _format_file_size(), _format_plan_date(), get_public_transport(), get_public_transport_history(), _get_transport_by_token() (+19 more) +Cohesion: 0.19 +Nodes (10): _dispatch_local(), Any, 工作流回调服务 —— 流程状态变更时通知业务系统, 注册本地回调函数。当 callback_url 以 path 开头时直接调用 fn。, 尝试本地直调。返回 True 表示已处理,False 表示无匹配的本地回调。, 流程实例状态变更后,向业务系统发送回调通知。 优先级: 1. 如果 callback_url 是内部路径(以 / 开头),优先尝试本地直调, register_local_callback(), trigger_callback() (+2 more) ### Community 80 - "resolve_crm_product" -Cohesion: 0.12 -Nodes (29): PlInventoryTransaction, PlPlanProductBrandQty, 计划产品归档品牌数量 pl_plan_product_brand_qty, 库存流水表 pl_inventory_transaction, load_brand_qtys_by_plan_product_ids(), persist_plan_product_brand_qtys(), Any, Decimal (+21 more) +Cohesion: 0.30 +Nodes (12): PlCarrier, assert_carrier_eligible_for_transport(), carrier_agreement_expired(), carrier_audit_approved(), carrier_eligible_for_transport(), carrier_qualification_complete(), date, 资质附件均为选填,保留函数签名供兼容调用。 (+4 more) ### Community 81 - "customer_follow.py" -Cohesion: 0.07 -Nodes (53): category_add(), category_delete(), category_tree(), category_update(), customer_create(), customer_update(), invoice_info_add(), invoice_info_by_customer() (+45 more) +Cohesion: 0.20 +Nodes (10): public_grab(), public_page(), Session, Config, format_api_error_message(), PageResult, Exception, 将 HTTP/SQLAlchemy 等异常转为可展示的错误文案(避免 str([]) 空列表)。 (+2 more) ### Community 82 - "storage.py" -Cohesion: 0.12 -Nodes (21): calc_age_from_chinese_id_card(), date, 从 18 位身份证号计算周岁。号码不完整或出生日期无效时返回 None。, 运输计划 - 安排运输时车辆/人员/证件资源快照 Schema, SnapshotCertRead, SnapshotPersonnelRow, TransportResourceSnapshot, build_personnel_summary() (+13 more) +Cohesion: 0.39 +Nodes (10): create_site(), get_site(), list_sites(), Any, Session, _row_to_dict(), site_code_exists(), soft_delete_site() (+2 more) ### Community 83 - "Community 83" -Cohesion: 0.11 -Nodes (42): CRM 合同子模块路由 — 变更/模板/审批独立页, register_contract_sub_routes(), _advance_contract_after_approval(), approve_contract(), approve_contract_by_contract_id(), approve_pass(), approve_reject(), approve_transfer() (+34 more) +Cohesion: 0.09 +Nodes (50): CRM 合同子模块路由 — 变更/模板/审批独立页, register_contract_sub_routes(), _advance_contract_after_approval(), approve_contract(), approve_contract_by_contract_id(), approve_pass(), approve_reject(), approve_transfer() (+42 more) ### Community 84 - "Community 84" Cohesion: 0.23 Nodes (23): build_id_maps(), clip_text(), count_rows(), export_mapping(), fetch_rows(), legacy_id_to_str(), main(), map_id() (+15 more) +### Community 85 - "allocate_next_biz_no" +Cohesion: 0.18 +Nodes (17): get_oper_log_meta(), OperLogMeta, 请求级操作日志元数据(ContextVar), 供异步落库线程使用,避免 ContextVar 跨线程丢失。, set_oper_log_meta(), snapshot_oper_log_meta(), _format_summary(), oper_log() (+9 more) + ### Community 86 - "Community 86" -Cohesion: 0.23 -Nodes (15): create_leave(), delete_leave(), get_leave(), _leave_local_callback(), leave_workflow_callback(), list_leaves(), Session, submit_leave() (+7 more) +Cohesion: 0.08 +Nodes (27): _db_pool_keepalive_loop(), _error_json(), lifespan(), Exception, Request, 数据库异常:返回 JSON 并保留 CORS 头,避免浏览器只报跨域错误, 未捕获异常:统一 JSON 500,确保跨域场景下仍有 Access-Control-Allow-Origin, 定期 ping MySQL,避免远程库/NAT 回收空闲 TCP 后首请求长时间卡住。 (+19 more) ### Community 87 - "Community 87" -Cohesion: 0.19 -Nodes (20): approve_quote(), can_user_approve(), create_approval_records(), delete_pending_approvals(), get_quote_approval(), list_quote_approvals(), Any, Session (+12 more) +Cohesion: 0.17 +Nodes (22): approve_quote(), can_user_approve(), create_approval_records(), delete_pending_approvals(), get_quote_approval(), invalidate_all_approvals(), list_quote_approvals(), Any (+14 more) ### Community 88 - "CrmProduct" -Cohesion: 0.20 -Nodes (12): 流程实例 wf_process_instance, WfProcessInstance, _dispatch_local(), Any, 工作流回调服务 —— 流程状态变更时通知业务系统, 注册本地回调函数。当 callback_url 以 path 开头时直接调用 fn。, 尝试本地直调。返回 True 表示已处理,False 表示无匹配的本地回调。, 流程实例状态变更后,向业务系统发送回调通知。 优先级: 1. 如果 callback_url 是内部路径(以 / 开头),优先尝试本地直调 (+4 more) +Cohesion: 0.14 +Nodes (21): CarrierAuditReject, CarrierBase, DriverBase, DriverCreate, DriverListResponse, DriverUpdate, PersonnelBase, PersonnelCreate (+13 more) ### Community 89 - "pl_ocr_service.py" Cohesion: 0.19 Nodes (22): PlOcrUsageMonth, 阿里云 OCR 月度调用计数 pl_ocr_usage_month(按自然月全局统计), assert_quota_available(), _build_ocr_client(), compress_image_bytes(), current_usage_month(), _first_attachment_url(), get_or_create_usage_row() (+14 more) ### Community 90 - "WechatMessageService" -Cohesion: 0.15 -Nodes (9): 微信消息通知服务 支持微信小程序模板消息推送 使用方式: from app.core.wechat_message import WechatMes, 发送订单状态通知 Args: openid: 用户openid order_n, 发送支付成功通知 Args: openid: 用户openid order_n, 发送配送通知 Args: openid: 配送员openid task_no:, 发送配送时效预警 Args: openid: 配送员openid task_n, 发送退款结果通知 Args: openid: 用户openid order_n, 发送催单通知给配送员 Args: deliver_openid: 配送员openid, 发送模板消息 Args: openid: 用户openid template_ (+1 more) +Cohesion: 0.17 +Nodes (8): 发送订单状态通知 Args: openid: 用户openid order_n, 发送支付成功通知 Args: openid: 用户openid order_n, 发送配送通知 Args: openid: 配送员openid task_no:, 发送配送时效预警 Args: openid: 配送员openid task_n, 发送退款结果通知 Args: openid: 用户openid order_n, 发送催单通知给配送员 Args: deliver_openid: 配送员openid, 发送模板消息 Args: openid: 用户openid template_, WechatMessageService ### Community 91 - "opportunity_product.py" Cohesion: 0.33 @@ -579,149 +593,177 @@ Nodes (11): create_leave(), get_leave(), list_leaves(), Any, Session, _row_to_di Cohesion: 0.20 Nodes (21): _assert_users_exist(), get_setting(), Any, Session, _row_to_dict(), save_setting(), _assert_users_exist(), get_setting() (+13 more) -### Community 93 - "api_request_log_middleware.py" -Cohesion: 0.13 -Nodes (6): convert_heic_to_jpeg(), OSSStorage, process_image_content(), 带下载文件名的访问 URL;默认实现为普通访问地址。, 将 HEIC/HEIF 格式转换为 JPEG 格式, 处理图片内容,如果是 HEIC 格式则转换为 JPEG - ### Community 94 - "assert_contract_editable_for_update" Cohesion: 0.60 Nodes (3): assert_contract_editable_for_update(), test_assert_allows_editable(), test_assert_rejects_non_editable() ### Community 95 - "test_pl_public_link_archived.py" -Cohesion: 0.24 -Nodes (12): get_last_month_range(), month_range(), date, Session, 地磅计划按月自动生成 — 迁移自 simple-dibang-xiaoshou/auto-create-plan/auto_create_monthly_pla, 按月自动生成采购计划。 - 默认仅在每月 1 日执行(force=True 时跳过该限制,供手动触发验收) - 遍历所有租户,按上月计划模板生, run_auto_generate_monthly_plans(), default_execution_status() (+4 more) +Cohesion: 0.11 +Nodes (34): get_last_month_range(), month_range(), date, Session, 地磅计划按月自动生成 — 迁移自 simple-dibang-xiaoshou/auto-create-plan/auto_create_monthly_pla, 按月自动生成采购计划。 - 默认仅在每月 1 日执行(force=True 时跳过该限制,供手动触发验收) - 遍历所有租户,按上月计划模板生, run_auto_generate_monthly_plans(), default_execution_status() (+26 more) ### Community 96 - "minio_url.py" -Cohesion: 0.24 -Nodes (11): extract_minio_object_key(), join_relative_urls(), normalize_oss_storage_url(), MinIO 附件 URL 规范化(数据迁移共用)。 背景 ---- CRM / 地磅 / 报销与 shanxia2.0 共用同一 MinIO(bucket 默, 业务表 OSS ID 串 → 相对 URL 串(用于客户证照、跟进附件等)。, 去掉预签名 query(``?X-Amz-...``)。, 将绝对/相对 URL 规范为 MinIO object key(不含 bucket)。, 迁移 CRM ``sys_oss`` 行:``url`` + ``file_name`` → 门户相对路径。 (+3 more) +Cohesion: 0.20 +Nodes (13): ProcessDefCreateBody, ProcessDefUpdateBody, PublishVersionBody, start_instance(), StartInstanceBody, 流程定义版本 wf_process_version, 流程实例 wf_process_instance, WfNode (+5 more) ### Community 97 - "contact.py" -Cohesion: 0.18 -Nodes (10): contact_add(), contact_delete(), contact_update(), ContactByCustomerBody, ContactCreateBody, ContactDeleteBody, ContactDetailBody, ContactSetPrimaryBody (+2 more) +Cohesion: 0.22 +Nodes (10): invoice_info_by_customer(), _invoice_info_by_customer_impl(), invoice_info_delete(), invoice_info_list(), invoice_info_update(), 按客户ID查询开票信息(与 by-customer 等价), InvoiceInfoByCustomerBody, InvoiceInfoDeleteBody (+2 more) ### Community 98 - "LocalStorage" Cohesion: 0.35 Nodes (11): create_tenant(), get_tenant(), list_tenants(), Any, Session, _row_to_dict(), soft_delete_tenant(), tenant_no_exists() (+3 more) ### Community 99 - "redis_client.py" -Cohesion: 0.39 -Nodes (8): get_redis_client(), get_sync_redis_client(), Redis, 共享 Redis 客户端(同步:会话鉴权;异步:API 加密 nonce)。, 同步 Redis(auth 会话等,在线程池中调用)。, 异步 Redis(API 加密 nonce 等中间件)。, _redis_common_kwargs(), redis_enabled() +Cohesion: 0.31 +Nodes (15): ensure_crm_create_by_row_in_scope(), create_pool_rule(), delete_pool_rules(), execute_pool_rules(), _execute_single_rule(), get_pool_rule(), list_pool_rules(), Any (+7 more) ### Community 100 - "price_letter_detail" Cohesion: 0.27 Nodes (15): Settings, BaseSettings, apply_renumber(), build_mapping(), fetch_products(), format_new_product_no(), load_settings_env(), main() (+7 more) ### Community 101 - "tenant.py" -Cohesion: 0.12 -Nodes (23): SoftDeleteModel, BizAttachment, PlDocumentReminder, PlDriver, PlInboundOrderItemBrandQty, PlInventory, PlInventoryWarning, PlOutboundOrder (+15 more) +Cohesion: 0.10 +Nodes (35): BizAttachment, 民族码表 sys_ethnic(国标 GB/T 3304,全局), SysEthnic, PlDocumentReminder, PlDriver, PlFreightSettlementTransport, PlInboundOrderItemBrandQty, PlInventory (+27 more) ### Community 102 - "crm_supplier_hazard.py" -Cohesion: 0.60 -Nodes (5): product_allowed(), test_dual_requires_both(), test_explosive_only_requires_allow_explosive(), test_plain_always_allowed(), test_toxic_only_requires_allow_toxic() +Cohesion: 0.19 +Nodes (21): create_personnel(), get_personnel(), list_personnel(), list_vehicles(), _personnel_to_detail(), _personnel_to_read(), update_personnel(), _vehicle_to_read() (+13 more) ### Community 103 - "pl_internal_customer.py" -Cohesion: 0.36 -Nodes (7): list_ethnics(), Any, Session, 民族码表 CRUD(全局 sys_ethnic), _row_to_dict(), 民族码表 sys_ethnic(国标 GB/T 3304,全局), SysEthnic +Cohesion: 0.47 +Nodes (5): list_ethnics(), Any, Session, 民族码表 CRUD(全局 sys_ethnic), _row_to_dict() ### Community 104 - "apply_crm_create_by_scope" -Cohesion: 0.13 -Nodes (26): price_letter_add(), price_letter_detail(), price_letter_list(), price_letter_update(), price_letter_void(), create_price_letter(), get_price_letter(), list_price_letters() (+18 more) +Cohesion: 0.29 +Nodes (15): create_price_letter(), get_price_letter(), list_price_letters(), _parse_date(), Any, date, Session, _row_to_dict() (+7 more) ### Community 105 - "pool_customer_assign" -Cohesion: 0.33 -Nodes (7): clue_import_template(), customer_import_template(), product_import_template(), export_rows_to_xlsx_response(), CRM 列表导出统一入口:表头 + 行数据 + 字典 label 转换 + 文件流响应。, workbook_to_streaming_response(), StreamingResponse +Cohesion: 0.29 +Nodes (12): build_name_pinyin_abbr(), normalize_name_pinyin_abbr(), 名称拼音首字母缩写:库内存小写,检索时大小写不敏感。, 保存时解析拼音字段。 - submitted_provided=True:用提交值(空则按 name 生成) - 否则:已有非空 existi, resolve_name_pinyin_abbr(), test_chinese_and_alnum(), test_empty_and_whitespace(), test_resolve_not_submitted_empty_existing_generates() (+4 more) ### Community 106 - "site.py" -Cohesion: 0.39 -Nodes (10): create_site(), get_site(), list_sites(), Any, Session, _row_to_dict(), site_code_exists(), soft_delete_site() (+2 more) +Cohesion: 0.08 +Nodes (25): clue_assign(), clue_convert(), clue_create(), clue_delete(), clue_follow_create(), clue_follow_delete(), clue_follow_list(), clue_follow_update() (+17 more) ### Community 107 - "apply_pl_scope" -Cohesion: 0.15 -Nodes (33): create_instance(), create_process_def(), create_task(), get_all_tasks_for_business(), get_instance(), get_latest_version(), get_nodes_by_version(), get_pending_tasks_by_node() (+25 more) +Cohesion: 0.16 +Nodes (31): create_instance(), create_process_def(), create_task(), get_all_tasks_for_business(), get_instance(), get_latest_version(), get_nodes_by_version(), get_pending_tasks_by_node() (+23 more) ### Community 108 - "statistics.py" +Cohesion: 0.20 +Nodes (24): count_source_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings(), load_settings_env(), load_user_mapping() (+16 more) + +### Community 109 - "_ensure_subpack_slip_no" +Cohesion: 0.05 +Nodes (68): clue_import_template(), customer_import_template(), opportunity_add(), opportunity_assign(), opportunity_batch_update_expect_date(), opportunity_batch_update_stage(), opportunity_change_stage(), opportunity_delete() (+60 more) + +### Community 110 - "list_duty_staff_users" +Cohesion: 0.39 +Nodes (8): get_redis_client(), get_sync_redis_client(), Redis, 共享 Redis 客户端(同步:会话鉴权;异步:API 加密 nonce)。, 同步 Redis(auth 会话等,在线程池中调用)。, 异步 Redis(API 加密 nonce 等中间件)。, _redis_common_kwargs(), redis_enabled() + +### Community 111 - "Community 111" +Cohesion: 0.12 +Nodes (32): 返回 (作废, 归档)。现场链接实际走入库/出库单公共页。, _resolve_io_order_link_flags(), _build_public_page(), _build_site_product_read(), _format_file_size(), get_public_site(), _get_site_link_by_token(), _parse_feedback_images() (+24 more) + +### Community 112 - ".to_tenant_user_dict" Cohesion: 0.45 Nodes (11): _customer_base_query(), get_follow_statistics(), get_industry_statistics(), get_level_statistics(), get_overview_statistics(), get_owner_statistics(), get_source_statistics(), get_trend_statistics() (+3 more) -### Community 109 - "_ensure_subpack_slip_no" -Cohesion: 0.40 -Nodes (6): _ensure_subpack_slip_no(), _format_subpack_slip_no(), _normalize_subpack_slip_no(), 将历史分装单号统一为 NO:SXFZYYYYMMDD-###, 分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增), _subpack_slip_no_seq() - -### Community 110 - "list_duty_staff_users" -Cohesion: 0.33 -Nodes (6): list_duty_staff_users(), 按固定 id 查找「值班人员」角色;找不到再按角色名兜底。, 本租户启用且绑定「值班人员」角色的用户(公开页 users / 管理端 options)。, resolve_duty_staff_role_id(), test_list_duty_staff_users_empty_when_no_role(), test_resolve_duty_staff_role_id_by_fixed_id() - -### Community 111 - "Community 111" -Cohesion: 0.28 -Nodes (14): _assert_editable(), _build_public_page(), _format_file_size(), _get_inventory_by_token(), get_public_inventory(), _parse_feedback_images(), Session, UploadFile (+6 more) - -### Community 112 - ".to_tenant_user_dict" -Cohesion: 0.40 -Nodes (3): Any, 供 get_tenant_no 等门户工具使用。, 与门户 JWT / apply_data_scope 所需的 user_info 字段对齐。 - ### Community 113 - "quote_share_log.py" -Cohesion: 0.40 -Nodes (5): _avatar_url_field(), _build_user_info_payload(), 与 web-admin 静态路由 meta.roles(admin/super_admin)对齐的单元素数组。, 与 web-admin `userInfo` 字段约定一致。, _web_role_list() +Cohesion: 0.24 +Nodes (20): register_quote_routes(), accept_quote(), _ensure_quote_in_scope(), generate_pdf(), generate_share(), get_quote(), get_quote_detail(), _get_quote_in_scope() (+12 more) ### Community 114 - "db_models.py" -Cohesion: 0.24 -Nodes (12): DbSequence, 地磅(db)模块数据模型 — 对齐 docs/sql/db_tables.sql, _allocate_inbound_outbound_id(), _ensure_sequence_row(), max_numeric_inbound_outbound_id(), next_inbound_outbound_id(), Session, 出入库单 id 生成 — 租户内纯数字自增,并发安全。 (+4 more) +Cohesion: 0.31 +Nodes (9): format_hhmm(), format_time_label(), parse_hhmm(), test_format_time_label_cross_day(), test_format_time_label_empty(), test_format_time_label_same_day(), test_parse_hhmm(), test_parse_hhmm_invalid_raises() (+1 more) ### Community 115 - "site.py" -Cohesion: 0.10 -Nodes (54): bind_vehicle_driver(), create_driver(), create_personnel(), create_vehicle(), delete_driver(), delete_personnel(), get_driver(), get_personnel() (+46 more) +Cohesion: 0.21 +Nodes (18): _assert_editable(), _build_public_page(), _format_file_size(), _get_inventory_by_token(), get_public_inventory(), _parse_feedback_images(), Session, UploadFile (+10 more) ### Community 116 - "Community 116" -Cohesion: 0.19 -Nodes (26): batch_insert_quote_products(), calculate_subtotal(), _decimal_value(), delete_products_by_quote_id(), _ensure_quote_parent_scope(), _get_field(), get_quote_product(), insert_quote_product() (+18 more) +Cohesion: 0.17 +Nodes (28): batch_insert_quote_products(), calculate_subtotal(), _decimal_value(), delete_products_by_quote_id(), _ensure_quote_parent_scope(), _get_field(), get_quote_product(), insert_quote_product() (+20 more) ### Community 117 - "get_web_auth_menu_codes" -Cohesion: 0.17 -Nodes (15): list_plans(), _plan_plate_match(), _plan_product_name_exists(), 列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。, _resolve_list_product_name(), _cert_url_blank(), plan_has_hazard_product_exists(), plan_has_incomplete_hazard_cert_exists() (+7 more) +Cohesion: 0.16 +Nodes (17): parse_resource_snapshot(), Any, 运输计划 - 安排运输时车辆/人员/证件资源快照 Schema, 从 ORM 文本列或 dict 解析快照。, SnapshotCertRead, SnapshotPersonnelRow, TransportResourceSnapshot, build_personnel_summary() (+9 more) ### Community 118 - "Community 118" -Cohesion: 0.15 -Nodes (29): batch_insert_contract_products(), calculate_subtotal(), _decimal_value(), delete_price_tiers_by_contract_id(), delete_products_by_contract_id(), _get_field(), insert_contract_product(), _letter_oss_ids_to_json() (+21 more) +Cohesion: 0.20 +Nodes (24): batch_insert_contract_products(), calculate_subtotal(), _decimal_value(), delete_price_tiers_by_contract_id(), delete_products_by_contract_id(), _get_field(), insert_contract_product(), _letter_oss_ids_to_json() (+16 more) ### Community 119 - "Community 119" Cohesion: 0.12 -Nodes (37): CertRow, _cert_row_complete(), collect_required_cert_errors(), _find_cert_for_required(), get_required_personnel_cert_names(), is_huolala_trailer_no(), match_required_cert_name(), _missing_field_labels() (+29 more) +Nodes (33): CertRow, _cert_row_complete(), collect_required_cert_errors(), _find_cert_for_required(), get_required_personnel_cert_names(), is_huolala_trailer_no(), match_required_cert_name(), _missing_field_labels() (+25 more) ### Community 120 - "sqlalchemy_exception_handler" -Cohesion: 0.12 -Nodes (15): _db_pool_keepalive_loop(), _error_json(), lifespan(), Exception, Request, 数据库异常:返回 JSON 并保留 CORS 头,避免浏览器只报跨域错误, 未捕获异常:统一 JSON 500,确保跨域场景下仍有 Access-Control-Allow-Origin, 定期 ping MySQL,避免远程库/NAT 回收空闲 TCP 后首请求长时间卡住。 (+7 more) +Cohesion: 0.07 +Nodes (32): list_public_vehicle_plates(), Session, 地磅公共只读:免登车牌 options(现场填写页), 免登:按出入库/计划解析 tenant_no,返回 pl_vehicle 车牌(self + carrier)。, _resolve_tenant_no(), get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,14 个一级菜单), operlog_detail() (+24 more) ### Community 121 - "Session" -Cohesion: 0.08 -Nodes (31): list_public_vehicle_plates(), Session, 地磅公共只读:免登车牌 options(现场填写页), 免登:按出入库/计划解析 tenant_no,返回 pl_vehicle 车牌(self + carrier)。, _resolve_tenant_no(), API 路由包 — 山峡化工生产一体化门户, get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,14 个一级菜单) (+23 more) +Cohesion: 0.15 +Nodes (22): day_detail(), delete_assignment(), duty_user_options(), _enrich_assign_names(), ensure_duty_dict(), month_summary(), Session, 指定用户时补全 personName(用 nick_name)。 (+14 more) ### Community 122 - "Community 122" Cohesion: 0.39 Nodes (10): create_post(), get_post(), list_posts(), post_code_exists(), Any, Session, _row_to_dict(), soft_delete_post() (+2 more) ### Community 123 - "customer_options" -Cohesion: 0.50 -Nodes (4): customer_options(), 客户下拉选项(租户内只读,不做 owner 数据权限), CustomerOptionsBody, 客户下拉选项请求体(租户内只读搜索,不做 owner 数据权限) +Cohesion: 0.25 +Nodes (10): _cert_url_blank(), plan_has_hazard_product_exists(), plan_has_incomplete_hazard_cert_exists(), 证书 URL 为空(NULL / 空串 / 纯空白)。, 列表筛选:计划下存在 CRM 标识为易制毒/易制爆的产品。, 列表筛选:存在危化产品且至少一张必需证书未上传。, _compile(), 危化品证上传列表筛选:EXISTS 子查询应覆盖 CRM 危化标识与证书缺口。 (+2 more) ### Community 124 - "datetime_parse.py" Cohesion: 0.67 Nodes (3): parse_optional_plan_datetime(), datetime, 运输计划相关日期时间解析:前端 date-picker 仅传 YYYY-MM-DD。 ### Community 125 - "build_annotated_result_bytes" -Cohesion: 0.08 -Nodes (37): _build_history_page(), _build_page(), _get_by_token(), _history_status_label(), _make_handlers(), _models(), _parse_history_date(), date (+29 more) +Cohesion: 0.24 +Nodes (11): extract_minio_object_key(), join_relative_urls(), normalize_oss_storage_url(), MinIO 附件 URL 规范化(数据迁移共用)。 背景 ---- CRM / 地磅 / 报销与 shanxia2.0 共用同一 MinIO(bucket 默, 业务表 OSS ID 串 → 相对 URL 串(用于客户证照、跟进附件等)。, 去掉预签名 query(``?X-Amz-...``)。, 将绝对/相对 URL 规范为 MinIO object key(不含 bucket)。, 迁移 CRM ``sys_oss`` 行:``url`` + ``file_name`` → 门户相对路径。 (+3 more) ### Community 126 - "customer_pool.py" Cohesion: 0.36 Nodes (13): _build_tree(), _cascade_soft_delete(), create_menu(), get_menu(), list_menus(), list_menus_tree(), menu_name_exists(), Any (+5 more) +### Community 127 - "web_login_rsa_public_key" +Cohesion: 0.47 +Nodes (8): create_oss(), get_oss_by_id(), get_oss_by_url(), Session, 按主键 id 查询附件(兼容旧 CRM 雪花 oss_id 迁入后的记录), 将 fileUrl 或旧 CRM 数字 ossId 解析为 MinIO 相对路径。 门户新上传把相对路径写入业务字段;迁入合同附件仍存数字 ossId, resolve_storage_path(), SysOss + +### Community 128 - "product_allowed" +Cohesion: 0.14 +Nodes (19): list_products(), 分页查询产品列表 keyword 默认匹配:名称 / 编号 / 拼音首字母。 选择器场景可关闭编号匹配、开启规格型号匹配(避免短数字误命中产品, assert_products_allowed_for_supplier(), enrich_products_with_hazard_flags(), get_supplier_hazard_flags(), product_allowed(), Any, Session (+11 more) + ### Community 129 - "BaseStorage" Cohesion: 0.12 Nodes (24): _auto_contract_name_body(), generate_contract_name(), 按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。, 前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。, 按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名, resolve_party_short_name(), _strip_contract_name_no_suffix(), _user_contract_name_uses_party_full_name() (+16 more) +### Community 130 - ".to_tenant_user_dict" +Cohesion: 0.40 +Nodes (3): Any, 供 get_tenant_no 等门户工具使用。, 与门户 JWT / apply_data_scope 所需的 user_info 字段对齐。 + +### Community 131 - "list_product_options" +Cohesion: 0.11 +Nodes (17): 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方详情 — Java: CrmSupplierInfoController.getInfo, 新增供方 — Java: CrmSupplierInfoController.add, 修改供方 — Java: CrmSupplierInfoController.edit, 导出供方列表 — Java: CrmSupplierInfoController.export, supplier_info_add(), supplier_info_detail(), supplier_info_export() (+9 more) + +### Community 132 - "context.py" +Cohesion: 0.29 +Nodes (16): create_contact(), get_contact(), list_contacts_by_customer(), _parse_optional_date(), Any, date, Session, _row_to_dict() (+8 more) + +### Community 133 - "product.py" +Cohesion: 0.12 +Nodes (15): category_add(), category_delete(), category_tree(), category_update(), product_delete(), 删除产品(支持单条 body.id 和批量 body.ids), CategoryDeleteBody, ProductAliasItem (+7 more) + +### Community 134 - "test_crm_approval_reedit.py" +Cohesion: 0.18 +Nodes (14): can_user_approve(), invalidate_all_approvals(), 作废该合同全部有效审批记录(含已通过/已拒绝),用于再编辑或重新提审。, 顺序审批:当前步骤 pending 且 is_current=1。 同一审批人若同时存在历史已处理记录与当前轮 pending,优先取 pending, _approval(), 再编辑并重新提审后,历史审批记录不得阻塞当前轮审批。, 再提审后同审批人同时存在历史已通过 + 新 pending 时,应允许审批。, 编辑保存回草稿时须作废全部历史审批(含已通过),不能只删 pending。 (+6 more) + +### Community 135 - "opportunity_follow.py" +Cohesion: 0.36 +Nodes (15): create_opportunity_follow(), _ensure_parent_opportunity(), get_opportunity_follow(), list_follows_by_opportunity(), list_opportunity_follows(), _parse_optional_datetime(), Any, datetime (+7 more) + ### Community 136 - "Community 136" -Cohesion: 0.13 -Nodes (23): 数据权限过滤(V0.3:基于角色 data_scope 的查询级行级过滤) data_scope 值: 1 = 全部数据 2 = 本部门数据 3, create_role(), get_role(), get_role_data_scope(), get_role_menu_ids(), list_roles(), Any, Session (+15 more) +Cohesion: 0.19 +Nodes (18): create_role(), get_role(), get_role_data_scope(), get_role_menu_ids(), list_roles(), Any, Session, 角色 CRUD(sys_role / sys_role_menu / sys_role_data_scope_detail) (+10 more) ### Community 137 - "statistics.py" Cohesion: 0.35 @@ -732,44 +774,64 @@ Cohesion: 0.33 Nodes (19): check_python(), create_venv(), ensure_dirs(), ensure_valid_venv(), ensure_venv_and_runtime(), install_dependencies(), is_running(), log_error() (+11 more) ### Community 139 - "get_current_user_by_token" +Cohesion: 0.25 +Nodes (13): get_storage(), download_file_bytes(), file_stream(), get_access_url(), get_download_url(), get_preview_url(), normalize_storage_path(), 报销附件存储适配 — 复用门户 app.core.storage,对外保持 bx 协议。 (+5 more) + +### Community 140 - "utils.py" Cohesion: 0.22 -Nodes (15): get_storage(), download_file_bytes(), file_stream(), get_access_url(), get_download_url(), get_preview_url(), normalize_storage_path(), 报销附件存储适配 — 复用门户 app.core.storage,对外保持 bx 协议。 (+7 more) +Nodes (10): get_current_time(), parse_datetime(), datetime, get_pool_record(), list_pool_records(), Any, Session, _row_to_dict() (+2 more) + +### Community 141 - "customer_follow.py" +Cohesion: 0.40 +Nodes (12): create_follow(), _enrich_follow_dict(), get_follow(), list_follows(), list_follows_by_customer(), Any, Session, _row_to_dict() (+4 more) + +### Community 142 - "price_letter_detail" +Cohesion: 0.20 +Nodes (9): price_letter_add(), price_letter_detail(), price_letter_list(), price_letter_void(), PriceLetterCreateBody, PriceLetterDetailBody, PriceLetterListBody, PriceLetterVoidBody (+1 more) + +### Community 143 - "opportunity_export" +Cohesion: 0.48 +Nodes (7): _opp_list_kwargs(), opportunity_export(), opportunity_kanban(), opportunity_list(), opportunity_mine_list(), OpportunityKanbanBody, OpportunityListBody ### Community 144 - "dict_data.py" Cohesion: 0.27 Nodes (11): create_dict_data(), get_dict_data(), list_dict_data(), list_dict_data_options(), Any, Session, 字典数据 CRUD(sys_dict_data), 字典下拉选项:租户主数据,忽略数据范围(user_info 保留兼容调用方,不参与过滤)。 (+3 more) ### Community 145 - "resolve_crm_product" -Cohesion: 0.10 -Nodes (43): PlInboundOrder, PlInboundOrderItem, PlOutboundOrderItem, 运输计划-入库单 pl_inbound_order, 运输计划-入库单明细 pl_inbound_order_item, 运输计划-出库单明细 pl_outbound_order_item, apply_site_feedback(), build_io_order_site_url() (+35 more) +Cohesion: 0.14 +Nodes (24): PlTransportProductBrandQty, PlTransportProductFeedback, 运输单按产品回传 pl_transport_product_feedback, 运输单产品回传品牌数量 pl_transport_product_brand_qty, _dict_field(), format_brand_qty_summary(), load_transport_driver_product_feedbacks(), persist_io_item_brand_qtys() (+16 more) ### Community 147 - "Community 147" Cohesion: 0.37 Nodes (17): check_env(), check_python(), create_venv(), init_env(), install_dependencies(), log_error(), log_info(), log_success() (+9 more) +### Community 148 - "get_db_current_user_optional" +Cohesion: 0.67 +Nodes (3): get_db_current_user_optional(), Session, 有 Bearer 且为 admin/super_admin 时返回上下文,否则 None(供三方 H5 无登录调用)。 + ### Community 154 - "response.py" Cohesion: 0.19 Nodes (7): _guess_preview_content_type(), MinIOStorage, Any, 从 MINIO_BASE_URL 解析公网 endpoint;未配置或与内网相同时复用 self.client。, 按对象键后缀推断内联预览 Content-Type(纠正上传时未写入 MIME 的情况)。, MinIO 预签名下载 URL,携带原始文件名。, MinIO 预签名内联预览 URL(图片新标签页 / PDF iframe 等)。 上传时 put_object 未写 content_typ ### Community 159 - "customer_update" -Cohesion: 0.24 -Nodes (14): _expand_with_ancestor_menu_ids(), _granted_menu_ids_for_user(), iter_user_menu_perm_codes(), _map_role_name_to_web(), Session, Web 管理端登录:基于 V0.3 sys_user / sys_user_role / sys_role 的角色与菜单权限解析, 角色仅勾选按钮(F)时,补齐祖先 C/M 菜单 id,便于前端匹配 :list 路由。, 用户通过角色关联得到的菜单权限标识(sys_menu.perms,与前端 meta.menuCode 对齐)。 (+6 more) +Cohesion: 0.28 +Nodes (12): _expand_with_ancestor_menu_ids(), _granted_menu_ids_for_user(), iter_user_menu_perm_codes(), Session, Web 管理端登录:基于 V0.3 sys_user / sys_user_role / sys_role 的角色与菜单权限解析, 角色仅勾选按钮(F)时,补齐祖先 C/M 菜单 id,便于前端匹配 :list 路由。, 用户通过角色关联得到的菜单权限标识(sys_menu.perms,与前端 meta.menuCode 对齐)。, 用户是否在 sys_user_role 中绑定了至少一个有效角色。 (+4 more) ### Community 162 - ".to_tenant_user_dict" Cohesion: 0.42 Nodes (7): default_settlement_clause(), test_advance_payment_clause(), test_arrive_payment_clause(), test_empty_falls_back_to_arrive(), test_monthly_settlement_clause_uses_label(), test_unknown_falls_back_to_arrive(), test_volume_quarterly_other_labels() ### Community 164 - "get_client_ip" -Cohesion: 0.20 -Nodes (24): _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/shanxia2.0.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。无 Token 或已失效时仍返回成功(幂等)。, Web 端登录:账号为 sys_user.user_no,密码为 sys_user.password(bcrypt)。, refresh_token(), web_login(), create_access_token() (+16 more) +Cohesion: 0.13 +Nodes (25): logout(), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。无 Token 或已失效时仍返回成功(幂等)。, decode_token(), extend_session(), get_client_ip(), get_current_user(), get_current_user_by_token(), get_current_user_simple() (+17 more) ### Community 170 - "test_quote_approver_setting.py" -Cohesion: 0.17 -Nodes (3): BaseStorage, QiniuStorage, 浏览器内联预览 URL;默认实现为普通访问地址。 +Cohesion: 0.08 +Nodes (10): BaseStorage, convert_heic_to_jpeg(), OSSStorage, process_image_content(), QiniuStorage, 文件存储工具模块 支持多种存储方式: 1. 本地存储 (local) - 默认 2. 七牛云存储 (qiniu) - 推荐生产环境使用 3. 阿里云OSS (, 带下载文件名的访问 URL;默认实现为普通访问地址。, 浏览器内联预览 URL;默认实现为普通访问地址。 (+2 more) ### Community 173 - "resolve_create_time_bounds" -Cohesion: 0.08 -Nodes (69): get_plan_arrange_info(), 获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。, _apply_plan_logistics_from_payload(), _apply_transport_arrange_fields(), arrange_transport(), _assert_vehicle_carrier_eligible(), _build_arrange_result(), _build_driver_url() (+61 more) +Cohesion: 0.09 +Nodes (67): get_plan_arrange_info(), 获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。, _apply_plan_logistics_from_payload(), _apply_transport_arrange_fields(), arrange_transport(), _assert_vehicle_carrier_eligible(), _build_arrange_result(), _build_driver_url() (+59 more) ### Community 179 - "test_pl_vehicle_personnel_photo_schema.py" Cohesion: 0.27 @@ -784,8 +846,8 @@ Cohesion: 0.18 Nodes (10): 1. 创建虚拟环境, 2. 安装依赖, 3. 配置环境变量, 4. 启动服务, API 路由分组, shanxia2.0 后端骨架(FastAPI), 开发规范, 快速开始 (+2 more) ### Community 220 - "api_crypto_middleware.py" -Cohesion: 0.23 -Nodes (14): ApiCryptoMiddleware, _claims_from_auth(), _coerce_post_method_override_to_get(), _get_redis_client(), _is_crypto_api(), _json_error_response(), _mark_nonce_once(), _nonce_key() (+6 more) +Cohesion: 0.21 +Nodes (15): ApiCryptoMiddleware, _claims_from_auth(), _coerce_post_method_override_to_get(), _get_redis_client(), _is_crypto_api(), _json_error_response(), _mark_nonce_once(), _nonce_key() (+7 more) ### Community 237 - "order_status_compat.py" Cohesion: 0.36 @@ -802,22 +864,22 @@ Nodes (6): eq_unicode(), like_unicode(), MySQL 字符串比较/模糊匹配时 ## Knowledge Gaps - **30 isolated node(s):** `Config`, `Config`, `Config`, `Config`, `Config` (+25 more) These have ≤1 connection - possible missing edges or undocumented components. -- **19 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. +- **16 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `BaseModel` connect `Community 27` to `Community 1`, `Community 2`, `Community 5`, `Community 7`, `Community 10`, `Community 11`, `Community 12`, `Community 13`, `Community 14`, `Community 15`, `Community 16`, `Community 18`, `Community 20`, `Community 23`, `Community 32`, `Community 34`, `Community 37`, `Community 40`, `Community 43`, `resolve_create_time_bounds`, `Community 45`, `Community 47`, `Community 50`, `Community 51`, `Community 54`, `Community 57`, `Community 60`, `Community 62`, `Community 63`, `Community 64`, `Community 65`, `Community 74`, `apply_crm_create_by_scope`, `customer_follow.py`, `storage.py`, `Community 83`, `Community 86`, `contact.py`, `tenant.py`, `apply_crm_create_by_scope`, `Community 111`, `site.py`, `Community 119`, `Session`, `customer_options`, `build_annotated_result_bytes`?** - _High betweenness centrality (0.108) - this node is a cross-community bridge._ -- **Why does `generate_uuid()` connect `Community 55` to `Community 4`, `Community 5`, `Community 6`, `Community 8`, `statistics.py`, `Community 136`, `Community 11`, `Community 15`, `dict_data.py`, `Community 17`, `resolve_crm_product`, `Community 19`, `Community 16`, `Community 21`, `Community 23`, `Community 24`, `Community 25`, `Community 26`, `Community 28`, `Community 29`, `Community 32`, `Community 33`, `get_client_ip`, `Community 36`, `Community 39`, `Community 40`, `Community 41`, `Community 43`, `resolve_create_time_bounds`, `Community 45`, `Community 47`, `Community 50`, `Community 51`, `Community 60`, `Community 61`, `Community 62`, `Community 64`, `Community 65`, `Community 67`, `Community 68`, `apply_crm_create_by_scope`, `resolve_crm_product`, `customer_follow.py`, `storage.py`, `Community 83`, `Community 87`, `pl_ocr_service.py`, `opportunity_product.py`, `Community 92`, `test_pl_public_link_archived.py`, `LocalStorage`, `apply_crm_create_by_scope`, `site.py`, `apply_pl_scope`, `db_models.py`, `site.py`, `Community 116`, `Community 118`, `Community 122`, `customer_pool.py`?** - _High betweenness centrality (0.106) - this node is a cross-community bridge._ -- **Why does `Settings` connect `price_letter_detail` to `Community 35`, `Community 67`, `Community 73`, `Community 42`, `Community 44`, `Community 46`, `Community 48`, `Community 53`, `Community 58`, `Community 59`, `build_annotated_result_bytes`, `Community 30`?** - _High betweenness centrality (0.082) - this node is a cross-community bridge._ +- **Why does `generate_uuid()` connect `Community 56` to `Community 0`, `context.py`, `Community 5`, `Community 6`, `Community 4`, `opportunity_follow.py`, `Community 8`, `statistics.py`, `Community 136`, `utils.py`, `customer_follow.py`, `Community 14`, `Community 15`, `dict_data.py`, `Community 17`, `resolve_crm_product`, `Community 19`, `Community 16`, `Community 21`, `Community 23`, `Community 24`, `Community 25`, `Community 26`, `Community 28`, `Community 29`, `Community 32`, `Community 33`, `Community 36`, `Community 39`, `Community 40`, `Community 41`, `Community 43`, `resolve_create_time_bounds`, `Community 47`, `Community 50`, `Community 51`, `Community 55`, `Community 11`, `Community 58`, `Community 60`, `Community 62`, `Community 64`, `Community 65`, `Community 67`, `Community 68`, `Community 72`, `Community 74`, `apply_crm_create_by_scope`, `opportunity_follow.py`, `storage.py`, `Community 83`, `Community 86`, `Community 87`, `pl_ocr_service.py`, `opportunity_product.py`, `Community 92`, `test_pl_public_link_archived.py`, `LocalStorage`, `redis_client.py`, `crm_supplier_hazard.py`, `apply_crm_create_by_scope`, `apply_pl_scope`, `Community 116`, `Community 118`, `Community 122`, `customer_pool.py`, `web_login_rsa_public_key`?** + _High betweenness centrality (0.131) - this node is a cross-community bridge._ +- **Why does `BaseModel` connect `Community 12` to `Community 1`, `Community 2`, `list_product_options`, `product.py`, `Community 5`, `Community 7`, `Community 10`, `Community 11`, `Community 13`, `Community 14`, `Community 15`, `opportunity_export`, `price_letter_detail`, `Community 18`, `Community 16`, `Community 20`, `Community 23`, `Community 27`, `Community 32`, `Community 40`, `Community 43`, `Community 44`, `Community 45`, `resolve_create_time_bounds`, `Community 47`, `Community 50`, `Community 51`, `Community 54`, `Community 57`, `Community 62`, `Community 63`, `Community 64`, `Community 65`, `Community 74`, `apply_crm_create_by_scope`, `customer_follow.py`, `Community 83`, `CrmProduct`, `minio_url.py`, `contact.py`, `tenant.py`, `site.py`, `_ensure_subpack_slip_no`, `site.py`, `get_web_auth_menu_codes`, `Community 119`, `sqlalchemy_exception_handler`, `Session`?** + _High betweenness centrality (0.103) - this node is a cross-community bridge._ +- **Why does `get_tenant_no()` connect `Community 7` to `Community 0`, `Community 1`, `list_product_options`, `product.py`, `Community 5`, `Community 10`, `Community 11`, `Community 12`, `Community 13`, `Community 14`, `Community 15`, `opportunity_export`, `price_letter_detail`, `Community 18`, `Community 16`, `Community 20`, `Community 23`, `Community 27`, `Community 32`, `Community 39`, `Community 40`, `Community 43`, `resolve_create_time_bounds`, `Community 46`, `Community 49`, `Community 50`, `Community 51`, `Community 54`, `Community 58`, `Community 62`, `Community 63`, `Community 64`, `Community 65`, `Community 74`, `apply_crm_create_by_scope`, `Community 83`, `contact.py`, `crm_supplier_hazard.py`, `site.py`, `_ensure_subpack_slip_no`, `quote_share_log.py`, `sqlalchemy_exception_handler`?** + _High betweenness centrality (0.091) - this node is a cross-community bridge._ - **Are the 8 inferred relationships involving `DbUserContext` (e.g. with `InventoryRelatedData` and `AutoGenerateMonthlyResult`) actually correct?** _`DbUserContext` has 8 INFERRED edges - model-reasoned connections that need verification._ - **What connects `API 路由包 — 山峡化工生产一体化门户`, `返回运营端角色下拉选项(label=库中角色名,value=Web 角色码)。`, `返回用户下拉选项(label=昵称,value=用户ID,附带 nickName/userNo)。 供申请人/审批人等选择场景使用,返回本租户全部有效` to the rest of the system?** - _578 weakly-connected nodes found - possible documentation gaps or missing edges._ + _582 weakly-connected nodes found - possible documentation gaps or missing edges._ - **Should `Community 0` be split into smaller, more focused modules?** - _Cohesion score 0.10017730496453901 - nodes in this community are weakly interconnected._ + _Cohesion score 0.11980676328502415 - nodes in this community are weakly interconnected._ - **Should `Community 1` be split into smaller, more focused modules?** - _Cohesion score 0.08076923076923077 - nodes in this community are weakly interconnected._ \ No newline at end of file + _Cohesion score 0.09009009009009009 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/28a0667e7c2508d19c356f84f7c8e0d880e8ef42200c1034f071d85062d58795.json b/backend/graphify-out/cache/ast/v0.9.4/28a0667e7c2508d19c356f84f7c8e0d880e8ef42200c1034f071d85062d58795.json new file mode 100644 index 000000000..846a17d81 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/28a0667e7c2508d19c356f84f7c8e0d880e8ef42200c1034f071d85062d58795.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_bx_reimburse_my_page_size_py", "label": "test_bx_reimburse_my_page_size.py", "file_type": "code", "source_file": "tests/test_bx_reimburse_my_page_size.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_bx_reimburse_my_page_size_test_my_reimburses_page_size_query_bounds", "label": "test_my_reimburses_page_size_query_bounds()", "file_type": "code", "source_file": "tests/test_bx_reimburse_my_page_size.py", "source_location": "L8"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_bx_reimburse_my_page_size_py", "target": "inspect", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_bx_reimburse_my_page_size.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_bx_reimburse_my_page_size_py", "target": "fastapi_params", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_bx_reimburse_my_page_size.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_bx_reimburse_my_page_size_py", "target": "app_api_bx_reimburse", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_bx_reimburse_my_page_size.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_bx_reimburse_my_page_size_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_bx_reimburse_my_page_size_test_my_reimburses_page_size_query_bounds", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_bx_reimburse_my_page_size.py", "source_location": "L8", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_bx_reimburse_my_page_size_test_my_reimburses_page_size_query_bounds", "callee": "signature", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_bx_reimburse_my_page_size.py", "source_location": "L9", "receiver": "inspect"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_bx_reimburse_my_page_size_test_my_reimburses_page_size_query_bounds", "callee": "my_reimburses", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_bx_reimburse_my_page_size.py", "source_location": "L9"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_bx_reimburse_my_page_size_test_my_reimburses_page_size_query_bounds", "callee": "QueryParam", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_bx_reimburse_my_page_size.py", "source_location": "L11"}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_tests_test_bx_reimburse_my_page_size_test_my_reimburses_page_size_query_bounds"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/37bc823b215c4dcafafb7c663945d56b44ec14549836ec20c3d29b5f4f5be3b9.json b/backend/graphify-out/cache/ast/v0.9.4/37bc823b215c4dcafafb7c663945d56b44ec14549836ec20c3d29b5f4f5be3b9.json new file mode 100644 index 000000000..3f7a2bbf2 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/37bc823b215c4dcafafb7c663945d56b44ec14549836ec20c3d29b5f4f5be3b9.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "label": "dict_ensure.py", "file_type": "code", "source_file": "app/services/dict_ensure.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_dictensureerror", "label": "DictEnsureError", "file_type": "code", "source_file": "app/services/dict_ensure.py", "source_location": "L20"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "label": "ensure_dict_data()", "file_type": "code", "source_file": "app/services/dict_ensure.py", "source_location": "L24"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "label": "ensure_remove_dict_data()", "file_type": "code", "source_file": "app/services/dict_ensure.py", "source_location": "L96"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_rationale_1", "label": "\u4e1a\u52a1\u9875\u5b57\u5178 ensure\uff1a\u767d\u540d\u5355\u5185\u6309 label \u590d\u7528\u6216\u63d2\u5165 sys_dict_data\u3002", "file_type": "rationale", "source_file": "app/services/dict_ensure.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "app_models_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_dictensureerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_dictensureerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L96", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L96", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_dictensureerror", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_dictensureerror", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L106", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/services/dict_ensure.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L33", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L39", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L42", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L42", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "SysDictData", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L42"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L59", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L59", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "SysDictData", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L59"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "SysDictData", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L75", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L76", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L86", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L88", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L91", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "callee": "flush", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L92", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L104", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L111", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L111", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "callee": "SysDictData", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L111"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L127", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L128", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "callee": "flush", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py", "source_location": "L129", "receiver": "db"}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_dictensureerror", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/55bea79d1250920d22e144e06ffef6716294c5de26479c26dbfb25061926a8b7.json b/backend/graphify-out/cache/ast/v0.9.4/55bea79d1250920d22e144e06ffef6716294c5de26479c26dbfb25061926a8b7.json new file mode 100644 index 000000000..90fad4576 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/55bea79d1250920d22e144e06ffef6716294c5de26479c26dbfb25061926a8b7.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "label": "crm.py", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "label": "category_tree()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L330"}, {"id": "productcategorytreebody", "label": "ProductCategoryTreeBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "label": "customer_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L358"}, {"id": "customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "label": "customer_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L392"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "label": "customer_options()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L418"}, {"id": "customeroptionsbody", "label": "CustomerOptionsBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "label": "customer_create()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L442"}, {"id": "customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "label": "customer_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L472"}, {"id": "customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "label": "customer_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L499"}, {"id": "customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_generate_no", "label": "customer_generate_no()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L527"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "label": "category_add()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L543"}, {"id": "productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "label": "category_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L562"}, {"id": "productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_delete", "label": "category_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L582"}, {"id": "categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "label": "product_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L602"}, {"id": "productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "label": "product_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L641"}, {"id": "productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "label": "product_add()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L662"}, {"id": "productcreatebody", "label": "ProductCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "label": "product_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L686"}, {"id": "productupdatebody", "label": "ProductUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "label": "product_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L707"}, {"id": "productdeletebody", "label": "ProductDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "label": "product_update_status()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L735"}, {"id": "productupdatestatusbody", "label": "ProductUpdateStatusBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "label": "product_options()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L756"}, {"id": "productoptionsbody", "label": "ProductOptionsBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "label": "product_import()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L784"}, {"id": "uploadfile", "label": "UploadFile", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "label": "product_export()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L875"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import_template", "label": "product_import_template()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L912"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "label": "customer_transfer()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L956"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "label": "customer_into_pool()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L982"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "label": "customer_deal()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1007"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "label": "customer_check_duplicate()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1036"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "label": "customer_export()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1059"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_import_template", "label": "customer_import_template()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1095"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "label": "customer_mine()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1134"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "label": "customer_to_follow()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1168"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "label": "customer_key()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1202"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "label": "customer_dealed()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1236"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "label": "customer_week_new()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1268"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "label": "customer_long_time_no_follow()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1300"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_park_area_list", "label": "customer_park_area_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1332"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "label": "pool_customer_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1352"}, {"id": "poolcustomerlistbody", "label": "PoolCustomerListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "label": "pool_customer_assign()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1384"}, {"id": "poolassignbody", "label": "PoolAssignBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "label": "pool_customer_claim()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1403"}, {"id": "poolclaimbody", "label": "PoolClaimBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "label": "pool_record_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1421"}, {"id": "poolrecordlistbody", "label": "PoolRecordListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "label": "pool_record_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1451"}, {"id": "poolrecorddetailbody", "label": "PoolRecordDetailBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "label": "contact_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1473"}, {"id": "contactlistbody", "label": "ContactListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "label": "contact_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1509"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "label": "contact_by_customer()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1533"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "label": "contact_add()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1554"}, {"id": "contactcreatebody", "label": "ContactCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "label": "contact_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1577"}, {"id": "contactupdatebody", "label": "ContactUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "label": "contact_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1598"}, {"id": "contactdeletebody", "label": "ContactDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "label": "contact_set_primary()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1618"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "label": "contact_export()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1640"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "label": "contact_decision()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1670"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "label": "contact_primary()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1701"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "label": "contact_birthday()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1732"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "label": "follow_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1766"}, {"id": "followlistbody", "label": "FollowListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "label": "follow_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1798"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "label": "follow_by_customer()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1824"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "label": "follow_add()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1845"}, {"id": "followcreatebody", "label": "FollowCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "label": "follow_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1869"}, {"id": "followupdatebody", "label": "FollowUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "label": "follow_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1888"}, {"id": "followdeletebody", "label": "FollowDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "label": "follow_export()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1905"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "label": "pool_rule_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1938"}, {"id": "poolrulelistbody", "label": "PoolRuleListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "label": "pool_rule_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1969"}, {"id": "poolruledetailbody", "label": "PoolRuleDetailBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "label": "pool_rule_add()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L1990"}, {"id": "poolruleaddbody", "label": "PoolRuleAddBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "label": "pool_rule_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2017"}, {"id": "poolruleupdatebody", "label": "PoolRuleUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "label": "pool_rule_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2046"}, {"id": "poolruledeletebody", "label": "PoolRuleDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "label": "pool_rule_update_status()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2063"}, {"id": "poolruleupdatestatusbody", "label": "PoolRuleUpdateStatusBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_execute", "label": "pool_rule_execute()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2083"}, {"id": "poolruleexecutebody", "label": "PoolRuleExecuteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "label": "statistics_overview()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2102"}, {"id": "statisticsbody", "label": "StatisticsBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "label": "statistics_source()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2122"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "label": "statistics_level()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2140"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "label": "statistics_industry()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2158"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "label": "statistics_trend()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2176"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "label": "statistics_owner()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2199"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "label": "statistics_follow()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2217"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opp_list_kwargs", "label": "_opp_list_kwargs()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2242"}, {"id": "opportunitylistbody", "label": "OpportunityListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "label": "opportunity_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2271"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "label": "opportunity_mine_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2304"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "label": "opportunity_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2337"}, {"id": "opportunitydetailbody", "label": "OpportunityDetailBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "label": "opportunity_add()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2367"}, {"id": "opportunitycreatebody", "label": "OpportunityCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "label": "opportunity_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2391"}, {"id": "opportunityupdatebody", "label": "OpportunityUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "label": "opportunity_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2412"}, {"id": "opportunitydeletebody", "label": "OpportunityDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "label": "opportunity_assign()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2433"}, {"id": "opportunityassignbody", "label": "OpportunityAssignBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "label": "opportunity_change_stage()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2460"}, {"id": "opportunitychangestagebody", "label": "OpportunityChangeStageBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "label": "opportunity_mark_won()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2490"}, {"id": "opportunitymarkwonbody", "label": "OpportunityMarkWonBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "label": "opportunity_mark_lost()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2518"}, {"id": "opportunitymarklostbody", "label": "OpportunityMarkLostBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "label": "opportunity_batch_update_stage()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2547"}, {"id": "opportunitybatchupdatestagebody", "label": "OpportunityBatchUpdateStageBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "label": "opportunity_batch_update_expect_date()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2576"}, {"id": "opportunitybatchupdateexpectdatebody", "label": "OpportunityBatchUpdateExpectDateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "label": "opportunity_stage_log_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2604"}, {"id": "opportunitystageloglistbody", "label": "OpportunityStageLogListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "label": "opportunity_kanban()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2622"}, {"id": "opportunitykanbanbody", "label": "OpportunityKanbanBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "label": "opportunity_statistics_overview()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2653"}, {"id": "opportunitystatisticsbody", "label": "OpportunityStatisticsBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_stage", "label": "opportunity_statistics_stage()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2679"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "label": "opportunity_statistics_win_rate()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2695"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "label": "opportunity_statistics_owner()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2721"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "label": "opportunity_statistics_funnel()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2746"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "label": "opportunity_follow_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2772"}, {"id": "opportunityfollowlistbody", "label": "OpportunityFollowListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "label": "opportunity_follow_add()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2804"}, {"id": "opportunityfollowcreatebody", "label": "OpportunityFollowCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "label": "opportunity_follow_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2829"}, {"id": "opportunityfollowupdatebody", "label": "OpportunityFollowUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "label": "opportunity_follow_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2852"}, {"id": "opportunityfollowdeletebody", "label": "OpportunityFollowDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "label": "opportunity_follow_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2876"}, {"id": "opportunityfollowdetailbody", "label": "OpportunityFollowDetailBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "label": "opportunity_product_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2896"}, {"id": "opportunityproductlistbody", "label": "OpportunityProductListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "label": "opportunity_product_list_by_opportunity()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2929"}, {"id": "opportunityproductbyopportunitybody", "label": "OpportunityProductByOpportunityBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "label": "opportunity_product_add()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2950"}, {"id": "opportunityproductcreatebody", "label": "OpportunityProductCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "label": "opportunity_product_batch_add()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L2975"}, {"id": "opportunityproductbatchaddbody", "label": "OpportunityProductBatchAddBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "label": "opportunity_product_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3005"}, {"id": "opportunityproductupdatebody", "label": "OpportunityProductUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "label": "opportunity_product_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3028"}, {"id": "opportunityproductdeletebody", "label": "OpportunityProductDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "label": "opportunity_product_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3049"}, {"id": "opportunityproductdetailbody", "label": "OpportunityProductDetailBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "label": "opportunity_export()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3069"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "label": "supplier_info_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3111"}, {"id": "supplierinfolistbody", "label": "SupplierInfoListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "label": "supplier_info_list_all()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3146"}, {"id": "supplierinfolistallbody", "label": "SupplierInfoListAllBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "label": "supplier_info_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3171"}, {"id": "supplierinfodetailbody", "label": "SupplierInfoDetailBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "label": "supplier_info_add()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3194"}, {"id": "supplierinfocreatebody", "label": "SupplierInfoCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "label": "supplier_info_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3220"}, {"id": "supplierinfoupdatebody", "label": "SupplierInfoUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "label": "supplier_info_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3248"}, {"id": "supplierinfodeletebody", "label": "SupplierInfoDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "label": "supplier_info_export()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3277"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer_impl", "label": "_invoice_info_by_customer_impl()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3314"}, {"id": "invoiceinfobycustomerbody", "label": "InvoiceInfoByCustomerBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_list", "label": "invoice_info_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3328"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer", "label": "invoice_info_by_customer()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3343"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "label": "invoice_info_add()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3358"}, {"id": "invoiceinfocreatebody", "label": "InvoiceInfoCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "label": "invoice_info_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3383"}, {"id": "invoiceinfoupdatebody", "label": "InvoiceInfoUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "label": "invoice_info_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3411"}, {"id": "invoiceinfodeletebody", "label": "InvoiceInfoDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "label": "invoice_info_set_default()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3434"}, {"id": "invoiceinfosetdefaultbody", "label": "InvoiceInfoSetDefaultBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "label": "clue_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3462"}, {"id": "cluelistbody", "label": "ClueListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "label": "clue_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3509"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "label": "clue_create()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3536"}, {"id": "cluecreatebody", "label": "ClueCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "label": "clue_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3559"}, {"id": "clueupdatebody", "label": "ClueUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "label": "clue_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3581"}, {"id": "cluedeletebody", "label": "ClueDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "label": "clue_assign()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3612"}, {"id": "clueassignbody", "label": "ClueAssignBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "label": "clue_convert()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3640"}, {"id": "clueconvertbody", "label": "ClueConvertBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "label": "clue_check_convert()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3668"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "label": "clue_update_status()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3688"}, {"id": "cluestatusbody", "label": "ClueStatusBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "label": "clue_invalid()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3709"}, {"id": "clueinvalidbody", "label": "ClueInvalidBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "label": "clue_update_level()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3740"}, {"id": "cluelevelbody", "label": "ClueLevelBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "label": "clue_mine()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3761"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "label": "clue_to_follow()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3807"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "label": "clue_today_new()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3853"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_park_area_list", "label": "clue_park_area_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3899"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "label": "clue_follow_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3914"}, {"id": "cluefollowlistbody", "label": "ClueFollowListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "label": "clue_follow_create()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3946"}, {"id": "cluefollowcreatebody", "label": "ClueFollowCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "label": "clue_follow_delete()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L3978"}, {"id": "cluefollowdeletebody", "label": "ClueFollowDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "label": "clue_follow_statistics()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4009"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "label": "clue_export()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4078"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "label": "clue_import_template()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4135"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "label": "clue_import()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4170"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "label": "clue_check_duplicate()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4222"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "label": "clue_follow_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4246"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "label": "clue_follow_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4270"}, {"id": "cluefollowupdatebody", "label": "ClueFollowUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "label": "clue_statistics_overview()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4291"}, {"id": "cluestatisticsbody", "label": "ClueStatisticsBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "label": "clue_statistics_source()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4319"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_level", "label": "clue_statistics_level()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4344"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "label": "clue_statistics_trend()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4361"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "label": "clue_statistics_owner()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4388"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "label": "price_letter_list()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4433"}, {"id": "priceletterlistbody", "label": "PriceLetterListBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "label": "price_letter_detail()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4474"}, {"id": "priceletterdetailbody", "label": "PriceLetterDetailBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "label": "price_letter_add()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4496"}, {"id": "pricelettercreatebody", "label": "PriceLetterCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "label": "price_letter_update()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4523"}, {"id": "priceletterupdatebody", "label": "PriceLetterUpdateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "label": "price_letter_void()", "file_type": "code", "source_file": "app/api/crm.py", "source_location": "L4554"}, {"id": "pricelettervoidbody", "label": "PriceLetterVoidBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_1", "label": "CRM \u7ba1\u7406\u63a5\u53e3\uff08\u4ea7\u54c1\u5206\u7c7b + \u4ea7\u54c1 + Excel \u5bfc\u5165\u5bfc\u51fa\uff09", "file_type": "rationale", "source_file": "app/api/crm.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_423", "label": "\u5ba2\u6237\u4e0b\u62c9\u9009\u9879\uff08\u79df\u6237\u5185\u53ea\u8bfb\uff0c\u4e0d\u505a owner \u6570\u636e\u6743\u9650\uff09", "file_type": "rationale", "source_file": "app/api/crm.py", "source_location": "L423"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_712", "label": "\u5220\u9664\u4ea7\u54c1\uff08\u652f\u6301\u5355\u6761 body.id \u548c\u6279\u91cf body.ids\uff09", "file_type": "rationale", "source_file": "app/api/crm.py", "source_location": "L712"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3116", "label": "\u5206\u9875\u67e5\u8be2\u4f9b\u65b9\u5217\u8868 \u2014 Java: CrmSupplierInfoController.list", "file_type": "rationale", "source_file": "app/api/crm.py", "source_location": "L3116"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3151", "label": "\u4f9b\u65b9\u5168\u91cf\u5217\u8868\uff08\u4e0b\u62c9\uff09\u2014 Java: CrmSupplierInfoController.listAll", "file_type": "rationale", "source_file": "app/api/crm.py", "source_location": "L3151"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3176", "label": "\u4f9b\u65b9\u8be6\u60c5 \u2014 Java: CrmSupplierInfoController.getInfo", "file_type": "rationale", "source_file": "app/api/crm.py", "source_location": "L3176"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3199", "label": "\u65b0\u589e\u4f9b\u65b9 \u2014 Java: CrmSupplierInfoController.add", "file_type": "rationale", "source_file": "app/api/crm.py", "source_location": "L3199"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3225", "label": "\u4fee\u6539\u4f9b\u65b9 \u2014 Java: CrmSupplierInfoController.edit", "file_type": "rationale", "source_file": "app/api/crm.py", "source_location": "L3225"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3253", "label": "\u5220\u9664\u4f9b\u65b9 \u2014 Java: CrmSupplierInfoController.remove", "file_type": "rationale", "source_file": "app/api/crm.py", "source_location": "L3253"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3282", "label": "\u5bfc\u51fa\u4f9b\u65b9\u5217\u8868 \u2014 Java: CrmSupplierInfoController.export", "file_type": "rationale", "source_file": "app/api/crm.py", "source_location": "L3282"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3333", "label": "\u6309\u5ba2\u6237ID\u67e5\u8be2\u5f00\u7968\u4fe1\u606f\uff08\u4e0e by-customer \u7b49\u4ef7\uff09", "file_type": "rationale", "source_file": "app/api/crm.py", "source_location": "L3333"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "io", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "urllib_parse", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_core_menu_guard", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_core_oper_log_decorator", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_core_response", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_core_tenant_context", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_data_scope_helpers", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_utils_crm_export_columns", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_utils_excel_export", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_product", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_schemas_crm_product", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L53", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_customer", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_contact", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L88", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_invoice_info", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L99", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_supplier_info", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L107", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_customer_pool", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L117", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_pool_rule", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L122", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_opportunity", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L132", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_opportunity_follow", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L153", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_opportunity_product", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L162", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_customer_follow", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L172", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_statistics", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L182", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_schemas_crm_customer_pool", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L191", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_schemas_crm_pool_rule", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L198", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_schemas_crm_customer", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L207", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_schemas_crm_contact", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L214", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_schemas_crm_invoice_info", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L220", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_schemas_crm_supplier_info", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L227", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_schemas_crm_opportunity", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L235", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_schemas_crm_customer_follow", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L263", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_schemas_crm_statistics", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L269", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_clue", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L270", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_clue_follow", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L289", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_clue_statistics", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L299", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_schemas_crm_clue", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L306", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L330", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "target": "productcategorytreebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L330", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L330", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L358", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "target": "customerlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L358", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L358", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L392", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L392", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L418", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "target": "customeroptionsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L418", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L418", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L442", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "target": "customercreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L442", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L442", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L472", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "target": "customerupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L472", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L472", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L499", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "target": "customerdeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L499", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L499", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_generate_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L527", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_generate_no", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L527", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L543", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "target": "productcategorycreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L543", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L543", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L562", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "target": "productcategoryupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L562", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L562", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L582", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_delete", "target": "categorydeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L582", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L582", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L602", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "target": "productlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L602", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L602", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L641", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "target": "productdetailbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L641", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L641", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L662", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "target": "productcreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L662", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L662", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L686", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "target": "productupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L686", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L686", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L707", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "target": "productdeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L707", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L707", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L735", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "target": "productupdatestatusbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L735", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L735", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L756", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "target": "productoptionsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L756", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L756", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L784", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "target": "uploadfile", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L784", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L784", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L875", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "target": "productlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L875", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L875", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import_template", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L912", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L956", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L956", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L982", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L982", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1007", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1007", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1036", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1036", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1059", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "target": "customerlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1059", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1059", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_import_template", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1095", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1134", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "target": "customerlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1134", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1134", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1168", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "target": "customerlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1168", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1168", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1202", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "target": "customerlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1202", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1202", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1236", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "target": "customerlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1236", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1236", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1268", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "target": "customerlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1268", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1268", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1300", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "target": "customerlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1300", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1300", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_park_area_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1332", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_park_area_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1332", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1352", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "target": "poolcustomerlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1352", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1352", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1384", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "target": "poolassignbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1384", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1384", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1403", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "target": "poolclaimbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1403", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1403", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1421", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "target": "poolrecordlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1421", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1421", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1451", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "target": "poolrecorddetailbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1451", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1451", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1473", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "target": "contactlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1473", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1473", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1509", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1509", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1533", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1533", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1554", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "target": "contactcreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1554", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1554", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1577", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "target": "contactupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1577", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1577", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1598", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "target": "contactdeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1598", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1598", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1618", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1618", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1640", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "target": "contactlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1640", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1640", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1670", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "target": "contactlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1670", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1670", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1701", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "target": "contactlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1701", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1701", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1732", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "target": "contactlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1732", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1732", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1766", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "target": "followlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1766", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1766", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1798", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1798", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1824", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1824", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1845", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "target": "followcreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1845", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1845", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1869", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "target": "followupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1869", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1869", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1888", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "target": "followdeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1888", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1888", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1905", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "target": "followlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1905", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1905", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1938", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "target": "poolrulelistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1938", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1938", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1969", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "target": "poolruledetailbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1969", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1969", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1990", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "target": "poolruleaddbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1990", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1990", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2017", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "target": "poolruleupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2017", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2017", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2046", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "target": "poolruledeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2046", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2046", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2063", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "target": "poolruleupdatestatusbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2063", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2063", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_execute", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2083", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_execute", "target": "poolruleexecutebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2083", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_execute", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2083", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2102", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "target": "statisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2102", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2102", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2122", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "target": "statisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2122", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2122", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2140", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "target": "statisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2140", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2140", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2158", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "target": "statisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2158", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2158", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2176", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "target": "statisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2176", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2176", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2199", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "target": "statisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2199", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2199", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2217", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "target": "statisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2217", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2217", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opp_list_kwargs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2242", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opp_list_kwargs", "target": "opportunitylistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2242", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2271", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "target": "opportunitylistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2271", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2271", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2304", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "target": "opportunitylistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2304", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2304", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2337", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "target": "opportunitydetailbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2337", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2337", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2367", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "target": "opportunitycreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2367", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2367", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2391", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "target": "opportunityupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2391", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2391", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2412", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "target": "opportunitydeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2412", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2412", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2433", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "target": "opportunityassignbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2433", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2433", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2460", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "target": "opportunitychangestagebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2460", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2460", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2490", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "target": "opportunitymarkwonbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2490", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2490", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2518", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "target": "opportunitymarklostbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2518", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2518", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2547", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "target": "opportunitybatchupdatestagebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2547", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2547", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2576", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "target": "opportunitybatchupdateexpectdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2576", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2576", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2604", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "target": "opportunitystageloglistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2604", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2604", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2622", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "target": "opportunitykanbanbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2622", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2622", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2653", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "target": "opportunitystatisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2653", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2653", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_stage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2679", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_stage", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2679", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2695", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "target": "opportunitystatisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2695", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2695", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2721", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "target": "opportunitystatisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2721", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2721", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2746", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "target": "opportunitystatisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2746", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2746", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2772", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "target": "opportunityfollowlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2772", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2772", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2804", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "target": "opportunityfollowcreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2804", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2804", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2829", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "target": "opportunityfollowupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2829", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2829", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2852", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "target": "opportunityfollowdeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2852", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2852", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2876", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "target": "opportunityfollowdetailbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2876", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2876", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2896", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "target": "opportunityproductlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2896", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2896", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2929", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "target": "opportunityproductbyopportunitybody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2929", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2929", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2950", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "target": "opportunityproductcreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2950", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2950", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2975", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "target": "opportunityproductbatchaddbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2975", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2975", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3005", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "target": "opportunityproductupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3005", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3005", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3028", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "target": "opportunityproductdeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3028", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3028", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3049", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "target": "opportunityproductdetailbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3049", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3049", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3069", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "target": "opportunitylistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3069", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3069", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "target": "supplierinfolistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3146", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "target": "supplierinfolistallbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3146", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3146", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3171", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "target": "supplierinfodetailbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3171", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3171", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3194", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "target": "supplierinfocreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3194", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3194", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3220", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "target": "supplierinfoupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3220", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3220", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3248", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "target": "supplierinfodeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3248", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3248", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3277", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "target": "supplierinfolistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3277", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3277", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer_impl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3314", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer_impl", "target": "invoiceinfobycustomerbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3314", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer_impl", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3314", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3328", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_list", "target": "invoiceinfobycustomerbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3328", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3328", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3343", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer", "target": "invoiceinfobycustomerbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3343", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3343", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3358", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "target": "invoiceinfocreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3358", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3358", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3383", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "target": "invoiceinfoupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3383", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3383", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3411", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "target": "invoiceinfodeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3411", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3411", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3434", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "target": "invoiceinfosetdefaultbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3434", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3434", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3462", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "target": "cluelistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3462", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3462", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3509", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3509", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3536", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "target": "cluecreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3536", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3536", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3559", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "target": "clueupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3559", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3559", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3581", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "target": "cluedeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3581", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3581", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3612", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "target": "clueassignbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3612", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3612", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3640", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "target": "clueconvertbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3640", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3640", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3668", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3668", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3688", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "target": "cluestatusbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3688", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3688", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3709", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "target": "clueinvalidbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3709", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3709", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3740", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "target": "cluelevelbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3740", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3740", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3761", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "target": "cluelistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3761", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3761", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3807", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "target": "cluelistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3807", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3807", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3853", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "target": "cluelistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3853", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3853", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_park_area_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3899", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_park_area_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3899", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3914", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "target": "cluefollowlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3914", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3914", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3946", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "target": "cluefollowcreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3946", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3946", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3978", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "target": "cluefollowdeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3978", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3978", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4009", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4009", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4078", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "target": "cluelistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4078", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4078", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4135", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4170", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "target": "uploadfile", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4170", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4170", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4222", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4222", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4246", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4246", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4270", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "target": "cluefollowupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4270", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4270", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4291", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "target": "cluestatisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4291", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4291", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4319", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "target": "cluestatisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4319", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4319", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_level", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4344", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_level", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4344", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4361", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "target": "cluestatisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4361", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4361", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4388", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "target": "cluestatisticsbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4388", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4388", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_crud_crm_price_letter", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4414", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_schemas_crm_price_letter", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4423", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4433", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "target": "priceletterlistbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4433", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4433", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4474", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "target": "priceletterdetailbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4474", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4474", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4496", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "target": "pricelettercreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4496", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4496", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4523", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "target": "priceletterupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4523", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4523", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4554", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "target": "pricelettervoidbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4554", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4554", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_api_crm_quote_routes", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4580", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_api_crm_contract_routes", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4581", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "target": "app_api_crm_contract_sub_routes", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4582", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "target": "productcategorytreebody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L339", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "target": "customerlistbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1069", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "target": "customerlistbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1144", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "target": "customerlistbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1178", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "target": "customerlistbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1212", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "target": "opportunitylistbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2280", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opp_list_kwargs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2287", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "target": "opportunitylistbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2313", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opp_list_kwargs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2320", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "target": "opportunitykanbanbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2631", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opp_list_kwargs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2632", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "target": "opportunitystatisticsbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2662", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "target": "opportunitystatisticsbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2704", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "target": "opportunitystatisticsbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2730", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "target": "opportunitystatisticsbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L2755", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "target": "opportunitylistbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3078", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opp_list_kwargs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3085", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "target": "supplierinfolistbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3120", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "target": "supplierinfolistallbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3155", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "target": "supplierinfolistbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_list", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer_impl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3335", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer_impl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3350", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "target": "cluelistbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4088", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "target": "cluestatisticsbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "target": "cluestatisticsbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4328", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "target": "cluestatisticsbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4370", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "target": "cluestatisticsbody", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L4397", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_423", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L423", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_712", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L712", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3116", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3116", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3151", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3151", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3176", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3176", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3199", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3199", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3225", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3225", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3253", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3253", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3282", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3282", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_rationale_3333", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_list", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/crm.py", "source_location": "L3333", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L337", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L338", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "callee": "list_category_tree", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L340", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L347", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L349", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L349"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L351", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L351"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L365", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L366", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L367", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L367", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "callee": "list_customers", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L369", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "callee": "to_list_kwargs", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L376", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L378", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L383", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L386", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L386"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L388", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L388"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L399", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L401", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "get_customer", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L402", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L404", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L405", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L406", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "ensure_crm_owner_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L407", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "customer_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L408", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "enrich_customer_user_names", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L409", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L410", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L412", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L412"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L414", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L414"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L425", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L426", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "callee": "list_customer_options", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L427", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L433", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L435", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L435"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L437", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L437"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L449", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L450", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L450", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L451", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "customer_name_exists", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L453", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L454", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "create_customer", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L456", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L461", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L463", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "customer_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L463", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L465", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L465"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L467", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L467"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L479", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L480", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L481", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L481", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L483", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L484", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "customer_name_exists", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L486", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L487", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "update_customer", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L489", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L490", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "customer_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L490", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L492", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L492"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L494", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L494"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L506", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L507", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "callee": "soft_delete_customer", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L512", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L513", "receiver": "success_ids"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L515", "receiver": "fail_items"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L515"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L521", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L523", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L523"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_generate_no", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L534", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_generate_no", "callee": "generate_customer_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L535", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_generate_no", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L536", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_generate_no", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L538", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_generate_no", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L538"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L550", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L551", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L551", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L552", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "callee": "create_category", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L553", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L554", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "callee": "_category_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L554", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L556", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L556"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L558", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L558"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L569", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L570", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L570", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L571", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L572", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "callee": "update_category", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L573", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L574", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "callee": "_category_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L574", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L576", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L576"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L578", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L578"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_delete", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L589", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_delete", "callee": "soft_delete_category", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L590", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L591", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L593", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L593"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L595", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L595"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L609", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L610", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "callee": "list_products", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L611", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "callee": "total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L624", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L625", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L635", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L635"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L637", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L637"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L648", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L649", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "callee": "get_product", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L650", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L652", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "callee": "ensure_crm_create_by_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L653", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L654", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "callee": "product_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L654", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L656", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L656"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L658", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L658"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L669", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L670", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L671", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L671", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "callee": "create_product", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L672", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L676", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L678", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "callee": "product_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L678", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L680", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L680"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L682", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L682"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L693", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L693", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L694", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L695", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L696", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L697", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "update_product", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L698", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L699", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "product_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L699", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L701", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L701"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L703", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L703"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L714", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L715", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L722", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "callee": "soft_delete_product", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L725", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L727", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L729", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L729"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L731", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L731"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L742", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L743", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L744", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L744", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "callee": "update_product", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L747", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L748", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L750", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L750"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L752", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L752"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L763", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L764", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "callee": "list_product_options", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L765", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L773", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L775", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L775"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L777", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L777"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L793", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L794", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L795", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L795", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "read", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L797", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "load_workbook", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L798", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "BytesIO", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L798", "receiver": "io"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "list_categories", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L802", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "iter_rows", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L811", "receiver": "ws"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L816", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L817", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L818", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L819", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L820", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L825", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L829", "receiver": "row_errors"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "product_no_exists", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L832", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L833", "receiver": "row_errors"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L838", "receiver": "cat_name_to_id"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L840", "receiver": "row_errors"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L844", "receiver": "errors"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "create_product", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L847", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L862", "receiver": "errors"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L862"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "close", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L864", "receiver": "wb"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L865", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L869", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L869"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L871", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L871"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L882", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L883", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "callee": "list_products", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L884", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L896", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L896", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "callee": "export_rows_to_xlsx_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L897", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "callee": "PRODUCT_EXPORT_COLUMNS", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L901"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L906", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L906"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L908", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L908"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import_template", "callee": "Workbook", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L920", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import_template", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L932", "receiver": "ws"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import_template", "callee": "BytesIO", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L934", "receiver": "io"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import_template", "callee": "save", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L935", "receiver": "wb"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import_template", "callee": "seek", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L936", "receiver": "output"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import_template", "callee": "quote", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L938", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import_template", "callee": "StreamingResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L940", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import_template", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L948", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import_template", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L948"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L963", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L964", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L965", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L965", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L966", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L967", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L968", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L970", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "transfer_customer", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L972", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L973", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L975", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L975"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L977", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L977"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L989", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L990", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L991", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L991", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L992", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L993", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L995", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "into_pool", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L997", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L998", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1000", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1000"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1002", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1002"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1015", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1015", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1016", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1017", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1018", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "deal_customer", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1019", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1025", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1026", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1028", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "customer_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1028", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1030", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1030"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1032", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1032"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1043", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1044", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1045", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1046", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "callee": "check_duplicate_customer", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1047", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1050", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1052", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1052"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1054", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1054"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1066", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1067", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1068", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1068", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "list_customers", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1070", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "to_list_kwargs", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1077", "receiver": "list_body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1079", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1079", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "export_rows_to_xlsx_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1080", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "CUSTOMER_EXPORT_COLUMNS", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1084"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1089", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1089"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1091", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1091"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_import_template", "callee": "Workbook", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1103", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_import_template", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1111", "receiver": "ws"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_import_template", "callee": "BytesIO", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1113", "receiver": "io"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_import_template", "callee": "save", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1114", "receiver": "wb"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_import_template", "callee": "seek", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1115", "receiver": "output"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_import_template", "callee": "quote", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1117", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_import_template", "callee": "StreamingResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1119", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_import_template", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1127", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_import_template", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1127"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1141", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1142", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1143", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1143", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "callee": "list_customers", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1145", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "callee": "to_list_kwargs", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1152", "receiver": "list_body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1154", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1159", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1162", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1162"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1164", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1164"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1175", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1176", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1177", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1177", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "callee": "list_customers", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1179", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "callee": "to_list_kwargs", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1186", "receiver": "list_body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1188", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1193", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1196", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1196"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1198", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1198"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1209", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1210", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1211", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1211", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "callee": "list_customers", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1213", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "callee": "to_list_kwargs", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1220", "receiver": "list_body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1222", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1227", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1230", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1230"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1232", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1232"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1243", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1244", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1245", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1245", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "callee": "list_customers", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1248", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1254", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1259", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1262", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1262"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1264", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1264"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1275", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1276", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1277", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1277", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "callee": "list_customers", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1280", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1286", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1291", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1294", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1294"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1296", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1296"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1307", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1308", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1309", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1309", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "callee": "list_customers", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1312", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1318", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1323", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1326", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1326"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1328", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1328"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_park_area_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1339", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_park_area_list", "callee": "get_park_area_list", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1340", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_park_area_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1341", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_park_area_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1343", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_park_area_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1343"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_park_area_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1345", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_park_area_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1345"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1358", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "callee": "list_pool_customers", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1361", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1369", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1374", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1377", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1377"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1379", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1379"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1390", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1391", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1392", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1392", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "callee": "assign_customer", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1393", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1394", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1396", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1396"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1398", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1398"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1409", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1410", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1410", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1411", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1411", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "callee": "batch_claim_customers", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1412", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1413", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1415", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1415"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1417", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1417"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1427", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "callee": "list_pool_records", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1430", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1437", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "callee": "pool_record_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1442", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1445", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1445"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1447", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1447"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1457", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "callee": "get_pool_record", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1459", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1461", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1462", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "callee": "pool_record_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1462", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1464", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1464"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1466", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1466"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1480", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1481", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "callee": "list_contacts", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1484", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1494", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1495", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1503", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1503"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1505", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1505"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1516", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1518", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1519", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1520", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "get_contact", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1521", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1523", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "ensure_crm_contact_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1524", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1525", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "contact_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1525", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1527", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1527"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1529", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1529"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1540", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1541", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1542", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1544", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "callee": "list_contacts_by_customer", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1545", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1546", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1548", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1548"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1550", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1550"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1561", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1562", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1563", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1563", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1564", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "create_contact", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1565", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1567", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1569", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "contact_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1569", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1571", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1571"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1573", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1573"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1584", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1584", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1585", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1586", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1587", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1588", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "update_contact", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1589", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1590", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "contact_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1590", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1592", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1592"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1594", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1594"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1605", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1606", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1607", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1607", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "callee": "soft_delete_contact", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1609", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1610", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1612", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1612"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1614", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1614"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1625", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1627", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1628", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1628", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1629", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1630", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "set_primary_contact", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1631", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1632", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "contact_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1632", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1634", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1634"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1636", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1636"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1647", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1648", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "callee": "list_contacts", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1649", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1654", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1654", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "callee": "export_rows_to_xlsx_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1655", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "callee": "CONTACT_EXPORT_COLUMNS", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1659"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1664", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1664"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1666", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1666"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1677", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1678", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "callee": "list_contacts", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1681", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1686", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1687", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1695", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1695"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1697", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1697"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1708", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1709", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "callee": "list_contacts", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1712", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1717", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1718", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1726", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1726"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1728", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1728"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1739", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1740", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "callee": "list_contacts", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1743", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1745", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1748", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1749", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1757", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1757"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1759", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1759"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1773", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1774", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "callee": "list_follows", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1777", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "callee": "customer_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1783", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1784", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1792", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1792"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1794", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1794"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1805", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1806", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1807", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1809", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "get_follow", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1810", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1812", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "ensure_crm_create_by_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1813", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1816", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "follow_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1816", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1818", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1818"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1820", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1820"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1831", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1832", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1833", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1835", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "callee": "list_follows_by_customer", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1836", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1837", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1839", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1839"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1841", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1841"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1852", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1853", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1854", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1854", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1855", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1855", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "create_follow", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1856", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1859", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1861", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "follow_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1861", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1863", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1863"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1865", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1865"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1876", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1876", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1877", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1878", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "update_follow", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1879", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1879", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1879", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1880", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "follow_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1880", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1882", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1882"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1884", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1884"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "callee": "soft_delete_follow", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1896", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1896", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1896", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1897", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1899", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1899"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1901", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1901"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1912", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1913", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "callee": "list_follows", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1914", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1919", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1919", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "callee": "export_rows_to_xlsx_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1920", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "callee": "CUSTOMER_FOLLOW_EXPORT_COLUMNS", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1924"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1929", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1929"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1931", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1931"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1944", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1945", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "callee": "list_pool_rules", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1948", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1955", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "callee": "pool_rule_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1960", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1963", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1963"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1965", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1965"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1975", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1976", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "callee": "get_pool_rule", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1978", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1980", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "callee": "ensure_crm_create_by_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1981", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1982", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "callee": "pool_rule_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1982", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1984", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1984"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1986", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1986"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1996", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1997", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1997", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "callee": "create_pool_rule", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1998", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2009", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2011", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2011"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2013", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2013"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2023", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2024", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2025", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2025", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "callee": "update_pool_rule", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2026", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2038", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2040", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2040"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2042", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2042"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2052", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2053", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "callee": "delete_pool_rules", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2054", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2055", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2057", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2057"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2059", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2059"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2069", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2070", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2071", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2071", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "callee": "update_pool_rule_status", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2072", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2075", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2077", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2077"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2079", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2079"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_execute", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2089", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_execute", "callee": "execute_pool_rules", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2090", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_execute", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2091", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_execute", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2093", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_execute", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2093"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_execute", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2095", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_execute", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2095"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2109", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2110", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "callee": "get_overview_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2111", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2114", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2116", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2116"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2118", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2118"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2129", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2130", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "callee": "get_source_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2131", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2132", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2134", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2134"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2136", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2136"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2147", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2148", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "callee": "get_level_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2149", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2150", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2152", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2152"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2154", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2154"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2165", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2166", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "callee": "get_industry_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2167", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2168", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2170", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2170"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2172", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2172"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2183", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2184", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "callee": "get_trend_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2185", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2191", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2193", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2193"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2195", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2195"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2206", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2207", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "callee": "get_owner_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2208", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2209", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2211", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2211"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2213", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2213"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2224", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2225", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "callee": "get_follow_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2226", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2232", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2234", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2234"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2236", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2236"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2278", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2279", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2281", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2281", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "callee": "list_opportunities", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2282", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2289", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "callee": "opportunity_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2295", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2298", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2298"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2300", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2300"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2311", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2312", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2314", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2314", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "callee": "list_opportunities", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2315", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2322", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "callee": "opportunity_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2328", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2331", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2331"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2333", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2333"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2344", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2345", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2348", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2348", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "CrmOpportunity", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2348"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2354", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "ensure_crm_owner_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2355", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "get_opportunity", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2356", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2358", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2359", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2361", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2361"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2363", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2363"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2374", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2375", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2376", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2376", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "callee": "create_opportunity", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2377", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2380", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2383", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2385", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2385"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2387", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2387"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2398", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2399", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2400", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2400", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2401", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2402", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "callee": "update_opportunity", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2403", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2404", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2406", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2406"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2408", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2408"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2419", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2420", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2421", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2421", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "callee": "soft_delete_opportunities", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2422", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2425", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2427", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2427"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2429", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2429"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2440", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2441", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2442", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2442", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "callee": "assign_opportunities", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2443", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2452", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2454", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2454"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2456", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2456"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2467", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2468", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2469", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2469", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "callee": "change_stage", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2470", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2482", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2484", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2484"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2486", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2486"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2497", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2498", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2499", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2499", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "callee": "mark_won", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2500", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2510", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2512", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2512"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2514", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2514"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2525", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2526", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2527", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2527", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "callee": "mark_lost", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2528", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2539", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2541", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2541"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2543", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2543"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2554", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2555", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2556", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2556", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "callee": "batch_update_stage", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2557", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2568", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2570", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2570"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2572", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2572"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2583", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2584", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2585", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2585", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "callee": "batch_update_expect_date", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2586", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2596", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2598", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2598"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2600", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2600"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2611", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2612", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "callee": "get_stage_log_list", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2613", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2614", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2616", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2616"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2618", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2618"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2629", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2630", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "callee": "get_kanban_data", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2633", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2645", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2647", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2647"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2649", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2649"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2660", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2661", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "callee": "get_statistics_overview", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2663", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2671", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2673", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2673"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2675", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2675"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_stage", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2685", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_stage", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2686", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_stage", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2687", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_stage", "callee": "get_statistics_by_stage", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2687", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_stage", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2689", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_stage", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2689"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_stage", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2691", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_stage", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2691"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2702", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2703", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "callee": "get_win_rate_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2705", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2713", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2715", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2715"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2717", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2717"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2728", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2729", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "callee": "get_statistics_by_owner", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2731", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2738", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2740", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2740"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2742", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2742"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2753", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2754", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "callee": "get_sales_funnel", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2756", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2764", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2766", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2766"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2768", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2768"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2779", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2780", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "callee": "list_opportunity_follows", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2781", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2789", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "callee": "opp_follow_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2795", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2798", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2798"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2800", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2800"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2811", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2812", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2813", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2813", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "callee": "create_opportunity_follow", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2814", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2817", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2821", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2823", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2823"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2825", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2825"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2836", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2837", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2838", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2838", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2839", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2840", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "callee": "update_opportunity_follow", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2841", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2844", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2846", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2846"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2848", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2848"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2859", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2860", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2861", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2861", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "callee": "soft_delete_opportunity_follow", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2864", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2868", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2870", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2870"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2872", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2872"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2883", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2884", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "callee": "get_opportunity_follow", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2885", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2887", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2888", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2890", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2890"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2892", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2892"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2903", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2904", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "callee": "list_opportunity_products", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2905", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2914", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "callee": "opp_product_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2920", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2923", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2923"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2925", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2925"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2936", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2937", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2940", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "callee": "list_products_by_opportunity", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2941", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2942", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2944", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2944"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2946", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2946"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2957", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2958", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2959", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2959", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "callee": "create_opportunity_product", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2960", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2963", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2967", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2969", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2969"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2971", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2971"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2982", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2983", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2984", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2984", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2986", "receiver": "p"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "callee": "batch_add_opportunity_products", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2989", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2997", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2999", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L2999"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3001", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3001"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3012", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3013", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3014", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3014", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3015", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3016", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "callee": "update_opportunity_product", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3017", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3020", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3022", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3022"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3024", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3024"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3035", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3036", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3037", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3037", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "callee": "soft_delete_opportunity_products", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3038", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3041", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3043", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3043"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3045", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3045"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3056", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3057", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "callee": "get_opportunity_product", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3058", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3060", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3061", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3063", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3063"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3065", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3065"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3076", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3077", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3079", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3079", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "list_opportunities", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3080", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "export_rows_to_xlsx_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3089", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "OPPORTUNITY_EXPORT_COLUMNS", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3093"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3095", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3095", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3099", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3099"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3101", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3101"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3104", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3104"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3118", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3119", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "callee": "list_supplier_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3121", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3130", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "callee": "supplier_info_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3136", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3140", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3140"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3142", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3142"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3153", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3154", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "callee": "list_all_supplier_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3156", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3163", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3165", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3165"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3167", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3167"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3178", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3179", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "callee": "get_supplier_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3180", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3182", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "callee": "ensure_crm_create_by_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3183", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3186", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "callee": "supplier_info_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3186", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3188", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3188"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3190", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3190"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3201", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3202", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3203", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3203", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3204", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3204", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "create_supplier_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3205", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3210", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3212", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "supplier_info_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3212", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3214", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3214"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3216", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3216"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3227", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3228", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3229", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3229", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3230", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3231", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "update_supplier_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3232", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3240", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "supplier_info_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3240", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3242", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3242"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3244", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3244"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3255", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3256", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3257", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3257", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3264", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "callee": "soft_delete_supplier_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3267", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3269", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3271", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3271"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3273", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3273"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3284", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3285", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "callee": "list_supplier_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3287", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "callee": "export_rows_to_xlsx_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3296", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "callee": "SUPPLIER_INFO_EXPORT_COLUMNS", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3300"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3302", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3302", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3306", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3306"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3308", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3308"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer_impl", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3319", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer_impl", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3320", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer_impl", "callee": "list_invoice_info_by_customer", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3321", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer_impl", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3324", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3337", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3337"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3339", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3339"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3352", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3352"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3354", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3354"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3365", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3366", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3367", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3367", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "callee": "create_invoice_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3368", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3373", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3375", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "callee": "invoice_info_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3375", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3377", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3377"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3379", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3379"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3390", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3391", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3392", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3392", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3393", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3394", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "update_invoice_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3395", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3403", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "invoice_info_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3403", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3405", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3405"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3407", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3407"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3418", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3418", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3421", "receiver": "ids"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3423", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "callee": "soft_delete_invoice_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3425", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3426", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3428", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3428"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3430", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3430"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3441", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3442", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3443", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3443", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "callee": "set_default_invoice_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3444", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3451", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "callee": "invoice_info_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3451", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3453", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3453"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3455", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3455"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3469", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3470", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3471", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3471", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "callee": "list_clues", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3473", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3495", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "callee": "clue_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3500", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3503", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3503"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3505", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3505"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3516", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3517", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3518", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3520", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3521", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "get_clue", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3522", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3524", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "ensure_crm_owner_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3525", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "clue_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3526", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "enrich_clue_user_names", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3527", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3528", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3530", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3530"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3532", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3532"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3543", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3544", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3544", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "callee": "create_clue", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3545", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3548", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3551", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "callee": "clue_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3551", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3553", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3553"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3555", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3555"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3566", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3567", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3568", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3568", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3570", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3571", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "update_clue", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3572", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3573", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "clue_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3573", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3575", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3575"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3577", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3577"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3588", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3589", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3590", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3590", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "callee": "soft_delete_clue", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3595", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3596", "receiver": "success_ids"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3598", "receiver": "fail_items"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3598"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3605", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3606", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3608", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3608"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3619", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3620", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3621", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3621", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "callee": "assign_clues", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3622", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3632", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3634", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3634"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3636", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3636"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3647", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3648", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3649", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3649", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3650", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3651", "receiver": "customer_data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "callee": "convert_clue", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3652", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3660", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3662", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3662"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3664", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3664"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3675", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3676", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3678", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "callee": "check_convert", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3679", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3680", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3682", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3682"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3684", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3684"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3695", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3696", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3697", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3697", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "callee": "update_clue_status", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3698", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3701", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "callee": "clue_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3701", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3703", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3703"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3705", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3705"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3716", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3717", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3718", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3718", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3721", "receiver": "id_list"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "fromkeys", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3722", "receiver": "dict"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3724", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "invalid_clue", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3727", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3730", "receiver": "results"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "clue_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3730", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3732", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3734", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3734"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3736", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3736"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3747", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3748", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3749", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3749", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "callee": "update_clue_level", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3750", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3753", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3755", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3755"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3757", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3757"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3768", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3769", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3770", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3770", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "callee": "list_clues", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3772", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3793", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "callee": "clue_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3798", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3801", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3801"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3803", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3803"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3814", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3815", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3816", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3816", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "callee": "list_clues", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3818", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3839", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "callee": "clue_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3844", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3847", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3847"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3849", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3849"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3860", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3861", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3862", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3862", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "callee": "list_clues", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3864", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3885", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "callee": "clue_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3890", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3893", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3893"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3895", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3895"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_park_area_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3906", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_park_area_list", "callee": "get_clue_park_area_list", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3907", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_park_area_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3908", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_park_area_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3910", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_park_area_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3910"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3921", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3922", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "callee": "list_clue_follows", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3923", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "callee": "enrich_clue_user_names", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3931", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3932", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "callee": "clue_follow_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3937", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3940", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3940"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3942", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3942"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3953", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3954", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3955", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3955", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3957", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3958", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3959", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3960", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "create_clue_follow", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3962", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3970", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3972", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3972"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3974", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3974"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3985", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3986", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "callee": "delete_clue_follow", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3991", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3993", "receiver": "success_ids"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3995", "receiver": "fail_items"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3997", "receiver": "fail_items"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L3997"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4003", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4005", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4005"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4016", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4017", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4018", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4020", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "callee": "get_clue_follow_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4021", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4024", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4026", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4026"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4028", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4028"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4085", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4086", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4087", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4087", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "list_clues", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4089", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4119", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4119", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "export_rows_to_xlsx_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4120", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "CLUE_EXPORT_COLUMNS", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4124"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4129", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4129"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4131", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4131"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "callee": "Workbook", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4143", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4146", "receiver": "ws"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "callee": "_CLUE_IMPORT_HEADERS", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4146"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4147", "receiver": "ws"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "callee": "BytesIO", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4154", "receiver": "io"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "callee": "save", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4155", "receiver": "wb"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "callee": "seek", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4156", "receiver": "output"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "callee": "quote", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4157", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "callee": "StreamingResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4158", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4166", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4166"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4180", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4181", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4181", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "read", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4183", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "load_workbook", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4184", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "BytesIO", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4184", "receiver": "io"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "iter_rows", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4186", "receiver": "ws"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "close", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4187", "receiver": "wb"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4189", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4191", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "index", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4195", "receiver": "_CLUE_IMPORT_HEADERS"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4199", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "items", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4202", "receiver": "field_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4204", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4205", "receiver": "parsed_rows"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "import_clues", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4207", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4214", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4214", "receiver": "result"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4216", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4216"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4218", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4218"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4229", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "callee": "check_duplicate_clue", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4231", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4234", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4235", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4236", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4238", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4240", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4240"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4242", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4242"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4253", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4254", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4255", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4257", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "callee": "get_clue_follow", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4258", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4260", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "callee": "enrich_clue_user_names", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4261", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4262", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4264", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4264"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4266", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4266"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4277", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4278", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4279", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4279", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "callee": "update_clue_follow", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4280", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4283", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4285", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4285"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4287", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4287"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4298", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4299", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4300", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4300", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "callee": "get_clue_overview_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4302", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4311", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4313", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4313"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4315", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4315"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4326", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4327", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "callee": "get_clue_source_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4329", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4336", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4338", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4338"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4340", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4340"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_level", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4350", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_level", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4351", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_level", "callee": "get_clue_level_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4352", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_level", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4353", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_level", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4355", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_level", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4355"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_level", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4357", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_level", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4357"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4368", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4369", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "callee": "get_clue_trend_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4372", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4380", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4382", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4382"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4384", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4384"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4395", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4396", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "callee": "get_clue_owner_statistics", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4398", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4405", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4407", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4407"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4409", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4409"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4440", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4441", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "callee": "list_price_letters", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4442", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "callee": "price_letter_total_pages", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4457", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4458", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4468", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4468"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4470", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4470"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4481", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4482", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "callee": "get_price_letter", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4483", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4485", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "callee": "ensure_crm_create_by_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4486", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4487", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "callee": "price_letter_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4487", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4489", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4489"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4491", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4491"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4503", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4504", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4504", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4505", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4505", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4506", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "create_price_letter", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4507", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4514", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "price_letter_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4514", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4516", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4516"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4518", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4518"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4530", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4531", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4532", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4532", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4533", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "pop", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4534", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4536", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "update_price_letter", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4537", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4545", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "price_letter_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4545", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4547", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4547"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4549", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4549"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4561", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "callee": "crm_user_info", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4562", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4563", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4563", "receiver": "_user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "callee": "void_price_letter", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4564", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4573", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "callee": "price_letter_row_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4573", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4575", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4575"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4577", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L4577"}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_add", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_tree", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_category_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_assign", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_convert", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_check_duplicate", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_convert", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_create", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_export", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_create", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_statistics", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_follow_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_import_template", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_invalid", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_mine", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_park_area_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_level", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_overview", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_owner", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_source", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_statistics_trend", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_to_follow", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_today_new", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_level", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_clue_update_status", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_add", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_birthday", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_by_customer", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_decision", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_export", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_primary", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_set_primary", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_contact_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_check_duplicate", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_create", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_deal", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_dealed", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_export", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_generate_no", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_import_template", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_into_pool", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_key", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_long_time_no_follow", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_mine", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_options", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_park_area_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_to_follow", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_transfer", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_customer_week_new", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_add", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_by_customer", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_export", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_follow_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_add", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_by_customer_impl", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_set_default", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_invoice_info_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opp_list_kwargs", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_add", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_assign", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_expect_date", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_batch_update_stage", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_change_stage", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_export", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_add", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_follow_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_kanban", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_lost", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mark_won", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_mine_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_add", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_batch_add", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_list_by_opportunity", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_product_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_stage_log_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_funnel", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_overview", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_owner", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_stage", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_statistics_win_rate", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_opportunity_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_assign", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_claim", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_customer_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_record_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_add", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_execute", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_pool_rule_update_status", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_add", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_price_letter_void", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_add", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_export", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_import_template", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_options", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_product_update_status", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_follow", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_industry", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_level", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_overview", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_owner", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_source", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_statistics_trend", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_add", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_delete", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_export", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_list_all", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_crm_supplier_info_update"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/572ceb080c14c4ceca2eb391c798726efd0e7b7932b734db2da08e84f2fe14e9.json b/backend/graphify-out/cache/ast/v0.9.4/572ceb080c14c4ceca2eb391c798726efd0e7b7932b734db2da08e84f2fe14e9.json new file mode 100644 index 000000000..1e97178c5 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/572ceb080c14c4ceca2eb391c798726efd0e7b7932b734db2da08e84f2fe14e9.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "label": "public_io_order.py", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_models", "label": "_models()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", "source_location": "L42"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_get_by_token", "label": "_get_by_token()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", "source_location": "L48"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_resolve_io_order_link_flags", "label": "_resolve_io_order_link_flags()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", "source_location": "L66"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_parse_history_date", "label": "_parse_history_date()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", "source_location": "L73"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_history_status_label", "label": "_history_status_label()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", "source_location": "L83"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "label": "_query_kind_history()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", "source_location": "L93"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "label": "_build_history_page()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", "source_location": "L155"}, {"id": "publicioorderhistorypageread", "label": "PublicIoOrderHistoryPageRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_page", "label": "_build_page()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", "source_location": "L191"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_format_file_size", "label": "_format_file_size()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", "source_location": "L203"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_make_handlers", "label": "_make_handlers()", "file_type": "code", "source_file": "app/api/pl/public_io_order.py", "source_location": "L211"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_rationale_1", "label": "\u8fd0\u8f93\u8ba1\u5212 \u00b7 \u5165\u5e93/\u51fa\u5e93\u5355\u73b0\u573a\u514d\u767b\u5f55\u516c\u5171 API", "file_type": "rationale", "source_file": "app/api/pl/public_io_order.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_rationale_67", "label": "\u8fd4\u56de (\u4f5c\u5e9f, \u5f52\u6863)\u3002\u73b0\u573a\u94fe\u63a5\u5b9e\u9645\u8d70\u5165\u5e93/\u51fa\u5e93\u5355\u516c\u5171\u9875\u3002", "file_type": "rationale", "source_file": "app/api/pl/public_io_order.py", "source_location": "L67"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_rationale_101", "label": "\u8fd4\u56de [(create_time, PublicIoOrderHistoryRecordRead), ...]\u3002", "file_type": "rationale", "source_file": "app/api/pl/public_io_order.py", "source_location": "L101"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "app_core_attachment_biz", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "app_core_config", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "app_core_response", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "app_core_storage", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "app_models_pl_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "app_schemas_pl_io_order", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "app_services_pl_io_order_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L31", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_models", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L42", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_get_by_token", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_get_by_token", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_resolve_io_order_link_flags", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_resolve_io_order_link_flags", "target": "plplan", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_parse_history_date", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L73", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_parse_history_date", "target": "date", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L73", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_history_status_label", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L83", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L93", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L93", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "target": "date", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L93", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L155", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L155", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "target": "publicioorderhistorypageread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L155", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_page", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L191", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_page", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L191", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_format_file_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L203", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_make_handlers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L211", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_get_by_token", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_models", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L49", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_models", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L102", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_resolve_io_order_link_flags", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L127", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_history_status_label", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L148", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_get_by_token", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L165", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_parse_history_date", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L166", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L170", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "target": "publicioorderhistorypageread", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L181", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_page", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_resolve_io_order_link_flags", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L193", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_rationale_67", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_resolve_io_order_link_flags", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L67", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_rationale_101", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_io_order.py", "source_location": "L101", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_models", "callee": "PlInboundOrder", "is_member_call": false, "indirect": true, "context": "return", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L44"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_models", "callee": "PlInboundOrderItem", "is_member_call": false, "indirect": true, "context": "return", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L44"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_models", "callee": "PlOutboundOrder", "is_member_call": false, "indirect": true, "context": "return", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L45"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_models", "callee": "PlOutboundOrderItem", "is_member_call": false, "indirect": true, "context": "return", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L45"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_get_by_token", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L51", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_get_by_token", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L51", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_get_by_token", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L56", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_get_by_token", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L58", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_get_by_token", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L58", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_get_by_token", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L60", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_parse_history_date", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L74", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_parse_history_date", "callee": "fromisoformat", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L78", "receiver": "date"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "outerjoin", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L104", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "PlPlan", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L106"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L104", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "PlPlan", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L104"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L107", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L115", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L119", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L120", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L121", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L124", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L124", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L128", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L129", "receiver": "out"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "PublicIoOrderHistoryRecordRead", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L132", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "callee": "build_io_order_site_url", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L144", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L168", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L169", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "callee": "sort", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L175", "receiver": "merged"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "callee": "isoformat", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L182", "receiver": "day"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_page", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L192", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_page", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L192", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_page", "callee": "PlPlan", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L192"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_page", "callee": "order_header_to_dict", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L194", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_make_handlers", "callee": "get_page", "is_member_call": false, "indirect": true, "context": "return", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L333"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_make_handlers", "callee": "get_history", "is_member_call": false, "indirect": true, "context": "return", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L333"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_make_handlers", "callee": "save_feedback", "is_member_call": false, "indirect": true, "context": "return", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L333"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_make_handlers", "callee": "upload_attachment", "is_member_call": false, "indirect": true, "context": "return", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py", "source_location": "L333"}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_history_page", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_build_page", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_format_file_size", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_get_by_token", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_history_status_label", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_make_handlers", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_models", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_parse_history_date", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_query_kind_history", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_io_order_resolve_io_order_link_flags"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/574a7c321a8bb2997637744194d5ff1b40fd6144ce718ce8e6f036fea1293c69.json b/backend/graphify-out/cache/ast/v0.9.4/574a7c321a8bb2997637744194d5ff1b40fd6144ce718ce8e6f036fea1293c69.json new file mode 100644 index 000000000..2e7544c1c --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/574a7c321a8bb2997637744194d5ff1b40fd6144ce718ce8e6f036fea1293c69.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "label": "test_dict_ensure.py", "file_type": "code", "source_file": "tests/test_dict_ensure.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_whitelist_contains_crm_types", "label": "test_whitelist_contains_crm_types()", "file_type": "code", "source_file": "tests/test_dict_ensure.py", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_unknown_dict_type", "label": "test_ensure_rejects_unknown_dict_type()", "file_type": "code", "source_file": "tests/test_dict_ensure.py", "source_location": "L22"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_empty_label", "label": "test_ensure_rejects_empty_label()", "file_type": "code", "source_file": "tests/test_dict_ensure.py", "source_location": "L30"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_label", "label": "test_ensure_reuses_existing_label()", "file_type": "code", "source_file": "tests/test_dict_ensure.py", "source_location": "L38"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", "label": "test_ensure_inserts_new_with_value_equals_label()", "file_type": "code", "source_file": "tests/test_dict_ensure.py", "source_location": "L52"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", "label": "test_ensure_reuses_existing_by_preferred_value()", "file_type": "code", "source_file": "tests/test_dict_ensure.py", "source_location": "L75"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_honors_explicit_preferred_value_on_insert", "label": "test_ensure_honors_explicit_preferred_value_on_insert()", "file_type": "code", "source_file": "tests/test_dict_ensure.py", "source_location": "L91"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_soft_deletes_own_row", "label": "test_ensure_remove_soft_deletes_own_row()", "file_type": "code", "source_file": "tests/test_dict_ensure.py", "source_location": "L110"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_other_users_row", "label": "test_ensure_remove_rejects_other_users_row()", "file_type": "code", "source_file": "tests/test_dict_ensure.py", "source_location": "L136"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_unknown_type", "label": "test_ensure_remove_rejects_unknown_type()", "file_type": "code", "source_file": "tests/test_dict_ensure.py", "source_location": "L153"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_rationale_76", "label": "label miss, but preferred value already exists \u2192 reuse, no insert", "file_type": "rationale", "source_file": "tests/test_dict_ensure.py", "source_location": "L76"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "types", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "unittest_mock", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "app_models_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "app_services_dict_ensure", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_whitelist_contains_crm_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_unknown_dict_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_empty_label", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L30", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_label", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L38", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L52", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_honors_explicit_preferred_value_on_insert", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L91", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_soft_deletes_own_row", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L110", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_other_users_row", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L136", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_unknown_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L153", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_rationale_76", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_dict_ensure.py", "source_location": "L76", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_unknown_dict_type", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L23", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_unknown_dict_type", "callee": "raises", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L24", "receiver": "pytest"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_unknown_dict_type", "callee": "DictEnsureError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L24"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_unknown_dict_type", "callee": "ensure_dict_data", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L25", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_empty_label", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L31", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_empty_label", "callee": "raises", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L32", "receiver": "pytest"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_empty_label", "callee": "DictEnsureError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L32"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_empty_label", "callee": "ensure_dict_data", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L33", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_label", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L39", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_label", "callee": "SimpleNamespace", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L40", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_label", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L41", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_label", "callee": "ensure_dict_data", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L45", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_label", "callee": "assert_not_called", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L49", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L53", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L54", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", "callee": "ensure_dict_data", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L59", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", "callee": "assert_called_once", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L63", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", "callee": "assert_called_once", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L64", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", "callee": "assert_not_called", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L65", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", "callee": "SysDictData", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L67"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L77", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", "callee": "SimpleNamespace", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L78", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L79", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", "callee": "ensure_dict_data", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L84", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", "callee": "assert_not_called", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L88", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_honors_explicit_preferred_value_on_insert", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L92", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_honors_explicit_preferred_value_on_insert", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L93", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_honors_explicit_preferred_value_on_insert", "callee": "ensure_dict_data", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L97", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_soft_deletes_own_row", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L111", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_soft_deletes_own_row", "callee": "SimpleNamespace", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L112", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_soft_deletes_own_row", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L119", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_soft_deletes_own_row", "callee": "ensure_remove_dict_data", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L123", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_soft_deletes_own_row", "callee": "assert_called_once_with", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L132", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_soft_deletes_own_row", "callee": "assert_called_once", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L133", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_other_users_row", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L137", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_other_users_row", "callee": "SimpleNamespace", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L138", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_other_users_row", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L139", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_other_users_row", "callee": "raises", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L143", "receiver": "pytest"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_other_users_row", "callee": "DictEnsureError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L143"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_other_users_row", "callee": "ensure_remove_dict_data", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L144", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_unknown_type", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L154", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_unknown_type", "callee": "raises", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L155", "receiver": "pytest"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_unknown_type", "callee": "DictEnsureError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L155"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_unknown_type", "callee": "ensure_remove_dict_data", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py", "source_location": "L156", "receiver": null}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_honors_explicit_preferred_value_on_insert", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_inserts_new_with_value_equals_label", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_empty_label", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_rejects_unknown_dict_type", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_other_users_row", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_rejects_unknown_type", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_remove_soft_deletes_own_row", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_by_preferred_value", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_ensure_reuses_existing_label", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_dict_ensure_test_whitelist_contains_crm_types"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/64081c7370130dc17b2aed29d24af25477a27525949697b5eaaf7a4e8e96573a.json b/backend/graphify-out/cache/ast/v0.9.4/64081c7370130dc17b2aed29d24af25477a27525949697b5eaaf7a4e8e96573a.json new file mode 100644 index 000000000..394f87b87 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/64081c7370130dc17b2aed29d24af25477a27525949697b5eaaf7a4e8e96573a.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "label": "product.py", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L12"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L26"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L41"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategorytreebody", "label": "ProductCategoryTreeBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L47"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productupdatestatusbody", "label": "ProductUpdateStatusBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L56"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L66"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productbranditem", "label": "ProductBrandItem", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L93"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productaliasitem", "label": "ProductAliasItem", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L104"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcreatebody", "label": "ProductCreateBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L114"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productupdatebody", "label": "ProductUpdateBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L151"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L189"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productdeletebody", "label": "ProductDeleteBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L195"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productoptionsbody", "label": "ProductOptionsBody", "file_type": "code", "source_file": "app/schemas/crm/product.py", "source_location": "L202"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_rationale_1", "label": "CRM \u4ea7\u54c1\u6a21\u5757 Pydantic Schemas", "file_type": "rationale", "source_file": "app/schemas/crm/product.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_rationale_48", "label": "\u4ea7\u54c1\u5206\u7c7b\u6811\u67e5\u8be2\uff08\u5bc6\u6587\u89e3\u5bc6\u540e\u987b\u7528 Pydantic \u7ed1\u5b9a\uff0c\u88f8 dict=None \u5728\u90e8\u5206\u94fe\u8def\u4e0b\u4f1a\u4e22 body\uff09", "file_type": "rationale", "source_file": "app/schemas/crm/product.py", "source_location": "L48"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategorycreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategorycreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategoryupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategoryupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_categorydeletebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_categorydeletebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategorytreebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L47", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategorytreebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L47", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productupdatestatusbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L56", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productupdatestatusbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L56", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productlistbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productlistbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productbranditem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L93", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productbranditem", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L93", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productaliasitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L104", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productaliasitem", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L104", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L114", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L114", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L151", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L151", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productdetailbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L189", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productdetailbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L189", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productdeletebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productdeletebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productoptionsbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L202", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productoptionsbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L202", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_rationale_48", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategorytreebody", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/schemas/crm/product.py", "source_location": "L48", "weight": 1.0}], "raw_calls": [], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_categorydeletebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productaliasitem", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productbranditem", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategorycreatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategorytreebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcategoryupdatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productcreatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productdeletebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productdetailbody", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productlistbody", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productoptionsbody", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productupdatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_product_productupdatestatusbody"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/7fc8a4c63ac4e125c45afa62a64ca1fcfc6c3fd8651ecfe91fb5d38dfc46c766.json b/backend/graphify-out/cache/ast/v0.9.4/7fc8a4c63ac4e125c45afa62a64ca1fcfc6c3fd8651ecfe91fb5d38dfc46c766.json new file mode 100644 index 000000000..62a1106f5 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/7fc8a4c63ac4e125c45afa62a64ca1fcfc6c3fd8651ecfe91fb5d38dfc46c766.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "label": "reimburse.py", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "label": "_tenant()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L41"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py"}, {"id": "bxusercontext", "label": "BxUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "label": "_build_details_data()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L45"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_generated_title", "label": "get_generated_title()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L82"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "label": "download_reimburse_import_template()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L99"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "label": "import_reimburses()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L131"}, {"id": "uploadfile", "label": "UploadFile", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "label": "list_reimburses()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L147"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "label": "my_reimburses()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L193"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburse_stats", "label": "my_reimburse_stats()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L238"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reimburse_status_counts", "label": "reimburse_status_counts()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L248"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval", "label": "pending_approval()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L257"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval_stats", "label": "pending_approval_stats()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L289"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approved_by_me", "label": "approved_by_me()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L299"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_reimburse", "label": "get_reimburse()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L331"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approvals", "label": "get_approvals()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L345"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approval_history", "label": "get_approval_history()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L358"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "label": "create_reimburse()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L371"}, {"id": "reimburseapplycreate", "label": "ReimburseApplyCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "label": "update_reimburse()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L425"}, {"id": "reimburseapplyupdate", "label": "ReimburseApplyUpdate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "label": "submit_reimburse()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L470"}, {"id": "reimbursesubmitbody", "label": "ReimburseSubmitBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "label": "approve_reimburse()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L492"}, {"id": "reimburseapprovalcreate", "label": "ReimburseApprovalCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "label": "reject_reimburse()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L508"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_withdraw_reimburse", "label": "withdraw_reimburse()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L524"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_delete_reimburse", "label": "delete_reimburse()", "file_type": "code", "source_file": "app/api/bx/reimburse.py", "source_location": "L542"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "io", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "urllib_parse", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "fastapi_responses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "app_core_bx_auth", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "app_core_tenant_context", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "app_models_bx_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "app_schemas_bx_common", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "app_schemas_bx_reimburse", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "app_services_bx_expense_item", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "app_services_bx_reimburse", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L27", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "app_services_bx_reimburse_import", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L28", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "app_utils_bx_codegen", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "app_utils_bx_date_range", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L45", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L45", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L45", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_generated_title", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L82", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_generated_title", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L82", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_generated_title", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L82", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L99", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L99", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L99", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L131", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "target": "uploadfile", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L131", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L131", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L131", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L147", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L147", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L147", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L193", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L193", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L193", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburse_stats", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L238", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburse_stats", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L238", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburse_stats", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L238", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reimburse_status_counts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L248", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reimburse_status_counts", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L248", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reimburse_status_counts", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L248", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L257", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L257", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L257", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval_stats", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L289", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval_stats", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L289", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval_stats", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L289", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approved_by_me", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L299", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approved_by_me", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L299", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approved_by_me", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L299", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_reimburse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L331", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_reimburse", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L331", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_reimburse", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L331", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approvals", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L345", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approvals", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L345", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approvals", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L345", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approval_history", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L358", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approval_history", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L358", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approval_history", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L358", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L371", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "target": "reimburseapplycreate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L371", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L371", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L371", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L425", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "target": "reimburseapplyupdate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L425", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L425", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L425", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L470", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "target": "reimbursesubmitbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L470", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L470", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L470", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L492", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "target": "reimburseapprovalcreate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L492", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L492", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L492", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L508", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "target": "reimburseapprovalcreate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L508", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L508", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L508", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_withdraw_reimburse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L524", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_withdraw_reimburse", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L524", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_withdraw_reimburse", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L524", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_delete_reimburse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L542", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_delete_reimburse", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L542", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_delete_reimburse", "target": "bxusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L542", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_generated_title", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L89", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L103", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L161", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L205", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburse_stats", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L242", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reimburse_status_counts", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L252", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L269", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval_stats", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L293", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approved_by_me", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_reimburse", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L336", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approvals", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L350", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approval_history", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L363", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L376", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L377", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L431", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L434", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L476", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L498", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L514", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_withdraw_reimburse", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L529", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_delete_reimburse", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/bx/reimburse.py", "source_location": "L547", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L42", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L42", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "callee": "get_by_id", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L54", "receiver": "ExpenseItemService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L58", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "callee": "parse_optional_date", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L63", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L65", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L69", "receiver": "details_data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_generated_title", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L90", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_generated_title", "callee": "resolve_applicant", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L91", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_generated_title", "callee": "generate_title", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L94", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_generated_title", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L95", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "callee": "load_expense_nodes_flat", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L104", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "callee": "load_applicant_options", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L105", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "callee": "build_applicant_label", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L108", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "callee": "build_applicant_label", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L110", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "callee": "build_import_template_bytes", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L114", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "callee": "today", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L118", "receiver": "date_cls"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "callee": "quote", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L120", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "callee": "StreamingResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L121", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "callee": "BytesIO", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L122", "receiver": "io"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "callee": "read", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L136", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L138", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "callee": "import_reimburse_workbook", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L140", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L142", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "callee": "exc", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L142"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L143", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L164", "receiver": "filters"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L166", "receiver": "filters"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L167", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L168", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L169", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L170", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L174", "receiver": "filters"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L174", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "build_expense_name_condition", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L175", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L177", "receiver": "filters"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L179", "receiver": "filters"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L179", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "append_create_time_filters", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L180", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "BxReimburseApply", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L182"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "get_paged", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L187", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "out_rows_with_attachment_counts", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L188", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L189", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "callee": "PagedData", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L189", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L207", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L213", "receiver": "filters"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L215", "receiver": "filters"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L216", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L217", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L218", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L219", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "build_expense_name_condition", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L222", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L224", "receiver": "filters"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "append_create_time_filters", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L225", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "BxReimburseApply", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L227"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "get_paged", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L232", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "out_rows_with_attachment_counts", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L233", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L234", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "callee": "PagedData", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L234", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburse_stats", "callee": "my_apply_stats", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L243", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburse_stats", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L244", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburse_stats", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L244", "receiver": "ReimburseMyStatsOut"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reimburse_status_counts", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L253", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reimburse_status_counts", "callee": "global_status_counts", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L253", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L270", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval", "callee": "pending_approval", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L271", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval", "callee": "out_rows_with_attachment_counts", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L284", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L285", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval", "callee": "PagedData", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L285", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval_stats", "callee": "pending_approval_stats", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L294", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval_stats", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L295", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval_stats", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L295", "receiver": "ReimburseApproverPendingStatsOut"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approved_by_me", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L312", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approved_by_me", "callee": "approved_by_me", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L313", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approved_by_me", "callee": "out_rows_with_attachment_counts", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L326", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approved_by_me", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L327", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approved_by_me", "callee": "PagedData", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L327", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_reimburse", "callee": "get_by_id", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L337", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_reimburse", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L339", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_reimburse", "callee": "build_apply_out_with_details", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L340", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_reimburse", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L341", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approvals", "callee": "get_by_id", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L351", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approvals", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L352", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approvals", "callee": "get_approvals", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L353", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approvals", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L354", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approvals", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L354", "receiver": "ReimburseApprovalOut"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approval_history", "callee": "get_by_id", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L364", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approval_history", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L365", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approval_history", "callee": "get_approval_history", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L366", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approval_history", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L367", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approval_history", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L367", "receiver": "ReimburseApprovalOut"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "callee": "generate_apply_code", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L379", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L387", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L387", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "callee": "BxWorkflowDef", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L387"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "callee": "resolve_applicant", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L397", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "callee": "create_with_details", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L400", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "callee": "sync_reimburse_invoices", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L409", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L418", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L419", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "callee": "build_apply_out_with_details", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L420", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L421", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "callee": "resolve_applicant", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L443", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "callee": "update_with_details", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L448", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L452", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "callee": "sync_reimburse_invoices", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L454", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L463", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L464", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "callee": "build_apply_out_with_details", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L465", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L466", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "callee": "submit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L477", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L485", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L486", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L487", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L488", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "callee": "build_apply_out_with_details", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L488", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "callee": "approve", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L499", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L501", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L502", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L503", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L504", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "callee": "out_one_with_attachment_counts", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L504", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "callee": "reject", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L515", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L517", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L518", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L519", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L520", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "callee": "out_one_with_attachment_counts", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L520", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_withdraw_reimburse", "callee": "withdraw", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L530", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_withdraw_reimburse", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L532", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_withdraw_reimburse", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L536", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_withdraw_reimburse", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L537", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_withdraw_reimburse", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L538", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_withdraw_reimburse", "callee": "build_apply_out_with_details", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L538", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_delete_reimburse", "callee": "get_by_id", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L548", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_delete_reimburse", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L549", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_delete_reimburse", "callee": "soft_delete", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L550", "receiver": "ReimburseService"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_delete_reimburse", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L551", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_delete_reimburse", "callee": "ApiResponse", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py", "source_location": "L552", "receiver": null}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approve_reimburse", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approved_by_me", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_create_reimburse", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_delete_reimburse", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approval_history", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_approvals", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_generated_title", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_reimburse", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburse_stats", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval_stats", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reimburse_status_counts", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reject_reimburse", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_submit_reimburse", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_update_reimburse", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_withdraw_reimburse"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/9fc5dc088e0e4380e57080b726831aeafb31fc3415345d712a07a215137899c4.json b/backend/graphify-out/cache/ast/v0.9.4/9fc5dc088e0e4380e57080b726831aeafb31fc3415345d712a07a215137899c4.json new file mode 100644 index 000000000..6d38a4bc4 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/9fc5dc088e0e4380e57080b726831aeafb31fc3415345d712a07a215137899c4.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "label": "product.py", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L33"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_row_to_dict", "label": "_category_row_to_dict()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L43"}, {"id": "crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "label": "list_categories()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L59"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_build_category_tree", "label": "_build_category_tree()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L86"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_collect_category_with_ancestors", "label": "_collect_category_with_ancestors()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L97"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_category_tree", "label": "list_category_tree()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L113"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "label": "get_category()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L146"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "label": "create_category()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L158"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_category", "label": "update_category()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L195"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "label": "soft_delete_category()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L234"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_code_exists", "label": "category_code_exists()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L274"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_brand_row_to_dict", "label": "_brand_row_to_dict()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L294"}, {"id": "crmproductbrand", "label": "CrmProductBrand", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_alias_row_to_dict", "label": "_alias_row_to_dict()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L303"}, {"id": "crmproductalias", "label": "CrmProductAlias", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "label": "_load_brands_aliases_maps()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L311"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "label": "_assert_brand_deletable()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L345"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "label": "_replace_product_brands()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L382"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "label": "_replace_product_aliases()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L451"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "label": "_product_row_to_dict()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L514"}, {"id": "crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_to_dict", "label": "product_to_dict()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L553"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "label": "list_products()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L563"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product", "label": "get_product()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L651"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product_by_no", "label": "get_product_by_no()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L663"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_max_sxwl_product_seq", "label": "_max_sxwl_product_seq()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L682"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_product_no", "label": "generate_product_no()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L703"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "label": "generate_barcode()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L716"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "label": "create_product()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L744"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "label": "update_product()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L829"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_product", "label": "soft_delete_product()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L925"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_no_exists", "label": "product_no_exists()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L938"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_barcode_exists", "label": "barcode_exists()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L955"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "label": "list_product_options()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L972"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_oss_row_to_dict", "label": "_oss_row_to_dict()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L1025"}, {"id": "sysoss", "label": "SysOss", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_oss_by_biz", "label": "list_oss_by_biz()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L1043"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "label": "create_oss()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L1059"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_oss", "label": "soft_delete_oss()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L1091"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_normalize_text", "label": "_normalize_text()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L1102"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_quote_item_field", "label": "_get_quote_item_field()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L1109"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_auto_product_no", "label": "generate_auto_product_no()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L1116"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "label": "resolve_product_id_for_quote_item()", "file_type": "code", "source_file": "app/crud/crm/product.py", "source_location": "L1121"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_1", "label": "CRM \u4ea7\u54c1\u6a21\u5757 CRUD\uff08\u4ea7\u54c1\u5206\u7c7b + \u4ea7\u54c1 + \u9644\u4ef6\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_44", "label": "\u5206\u7c7b ORM \u5bf9\u8c61\u8f6c dict\uff08camelCase \u952e\u540d\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L44"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_67", "label": "\u83b7\u53d6\u5206\u7c7b\uff08\u6241\u5e73\u5217\u8868\uff0c\u652f\u6301\u540d\u79f0\u6a21\u7cca\u4e0e\u72b6\u6001\u7b5b\u9009\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L67"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_89", "label": "\u6309 parentId \u5c06\u6241\u5e73\u5206\u7c7b\u5217\u8868\u7ec4\u88c5\u4e3a\u5d4c\u5957\u6811", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L89"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_100", "label": "\u4fdd\u7559\u5339\u914d\u8282\u70b9\u53ca\u5176\u5168\u90e8\u4e0a\u7ea7\uff0c\u4f9b\u68c0\u7d22\u540e\u4ecd\u80fd\u6b63\u786e\u7ec4\u6811\u3002", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L100"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_121", "label": "\u83b7\u53d6\u4ea7\u54c1\u5206\u7c7b\u6811\uff08\u5d4c\u5957 children\uff0c\u4f9b\u6811\u5f62\u8868\u683c/\u6811\u9009\u62e9\u5668\u4f7f\u7528\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L121"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_520", "label": "\u4ea7\u54c1 ORM \u5bf9\u8c61\u8f6c dict\uff08camelCase \u952e\u540d\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L520"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_577", "label": "\u5206\u9875\u67e5\u8be2\u4ea7\u54c1\u5217\u8868 keyword \u9ed8\u8ba4\u5339\u914d\uff1a\u540d\u79f0 / \u7f16\u53f7 / \u62fc\u97f3\u9996\u5b57\u6bcd\u3002 \u9009\u62e9\u5668\u573a\u666f\u53ef\u5173\u95ed\u7f16\u53f7\u5339\u914d\u3001\u5f00\u542f\u89c4\u683c\u578b\u53f7\u5339\u914d\uff08\u907f\u514d\u77ed\u6570\u5b57\u8bef\u547d\u4e2d\u4ea7\u54c1", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L577"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_683", "label": "\u53d6\u5f53\u524d\u79df\u6237\u4e0b SXWL \u524d\u7f00\u4e14\u540e\u7f00\u4e3a\u7eaf\u6570\u5b57\u7684\u4ea7\u54c1\u7f16\u53f7\u6700\u5927\u6d41\u6c34\u503c", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L683"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_704", "label": "\u751f\u6210\u4ea7\u54c1\u7f16\u53f7\uff08\u683c\u5f0f\uff1aSXWL + 6\u4f4d\u9012\u589e\u6d41\u6c34\u53f7\uff0c\u5982 SXWL000001\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L704"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_717", "label": "\u751f\u6210\u552f\u4e00\u6761\u7801\uff08\u7eaf\u6570\u5b57\uff1ayyyyMMdd + 6\u4f4d\u5e8f\u53f7\uff0c\u5982 20260606000001\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L717"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_1117", "label": "\u62a5\u4ef7\u81ea\u52a8\u5efa\u6863\u65f6\u751f\u6210\u4ea7\u54c1\u7f16\u53f7\uff08\u4e0e\u4ea7\u54c1\u7ba1\u7406\u65b0\u589e\u89c4\u5219\u4e00\u81f4\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L1117"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_1128", "label": "Java: resolveProductIdForQuoteItem\uff08CrmProduct \u65e0 tax_rate\uff0c\u8df3\u8fc7\u7a0e\u7387\u5339\u914d\uff09", "file_type": "rationale", "source_file": "app/crud/crm/product.py", "source_location": "L1128"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "app_core_delete_guard", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "app_crud_crm_data_scope_helpers", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "app_models_crm_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "app_models_pl_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "app_utils_pinyin_abbr", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L27", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_total_pages", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L33", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L43", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_row_to_dict", "target": "crmproductcategory", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L43", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_row_to_dict", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L43", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L59", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L59", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L59", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_build_category_tree", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L86", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_build_category_tree", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L86", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_build_category_tree", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L86", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_collect_category_with_ancestors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L97", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_collect_category_with_ancestors", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L97", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_collect_category_with_ancestors", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L97", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_category_tree", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L113", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_category_tree", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L113", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_category_tree", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L113", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L146", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L146", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "target": "crmproductcategory", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L146", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L158", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L158", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "target": "crmproductcategory", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L158", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_category", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_category", "target": "crmproductcategory", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L234", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L234", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_code_exists", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L274", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_code_exists", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L274", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_brand_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L294", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_brand_row_to_dict", "target": "crmproductbrand", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L294", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_brand_row_to_dict", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L294", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_alias_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L303", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_alias_row_to_dict", "target": "crmproductalias", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L303", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_alias_row_to_dict", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L303", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L345", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L345", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L382", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L382", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L382", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L451", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L451", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L451", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L514", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "target": "crmproduct", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L514", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L514", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L514", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L514", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L553", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_to_dict", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L553", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_to_dict", "target": "crmproduct", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L553", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_to_dict", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L553", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L563", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L563", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L563", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L651", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L651", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product", "target": "crmproduct", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L651", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product_by_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L663", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product_by_no", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L663", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product_by_no", "target": "crmproduct", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L663", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_max_sxwl_product_seq", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L682", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_max_sxwl_product_seq", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L682", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_product_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L703", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_product_no", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L703", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L716", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L716", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L744", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L744", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "target": "crmproduct", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L744", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L829", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L829", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "target": "crmproduct", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L829", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L925", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_product", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L925", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_no_exists", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L938", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_no_exists", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L938", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_barcode_exists", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L955", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_barcode_exists", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L955", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L972", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L972", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L972", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_oss_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1025", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_oss_row_to_dict", "target": "sysoss", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1025", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_oss_row_to_dict", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1025", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_oss_by_biz", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1043", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_oss_by_biz", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1043", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_oss_by_biz", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1043", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1059", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1059", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "target": "sysoss", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1059", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_oss", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1091", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_oss", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1091", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_normalize_text", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1102", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_normalize_text", "target": "any", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1102", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_quote_item_field", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1109", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_auto_product_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1116", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_auto_product_no", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1116", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1121", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1121", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_row_to_dict", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L83", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_category_tree", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L127", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_category_tree", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_build_category_tree", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L128", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_category_tree", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_collect_category_with_ancestors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L142", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L171", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "target": "crmproductcategory", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L175", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_category", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L204", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L236", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_brand_row_to_dict", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L329", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_alias_row_to_dict", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L341", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L412", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "target": "crmproductbrand", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L437", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "target": "crmproductalias", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L501", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_to_dict", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L555", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_to_dict", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L556", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L640", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L642", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_product_no", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_max_sxwl_product_seq", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L705", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_product_no", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_no_exists", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L710", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_product_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L754", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_normalize_text", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L756", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L758", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_barcode_exists", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L759", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L766", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "target": "crmproduct", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L780", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L810", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L817", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L838", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_normalize_text", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L886", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_barcode_exists", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L887", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L896", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L902", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L910", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_product", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L927", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_oss_by_biz", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_oss_row_to_dict", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1056", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "target": "sysoss", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1067", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_auto_product_no", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_product_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1118", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_quote_item_field", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1132", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1134", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_normalize_text", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1138", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_auto_product_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1170", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1173", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "target": "crmproduct", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1177", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_44", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_row_to_dict", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L44", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_67", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L67", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_89", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_build_category_tree", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L89", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_100", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_collect_category_with_ancestors", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_121", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_category_tree", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L121", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_520", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L520", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_577", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L577", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_683", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_max_sxwl_product_seq", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L683", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_704", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_product_no", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L704", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_717", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L717", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_1117", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_auto_product_no", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1117", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_rationale_1128", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/crud/crm/product.py", "source_location": "L1128", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_total_pages", "callee": "ceil", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L37", "receiver": "math"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L54", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L55", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L68", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "callee": "CrmProductCategory", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L68"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L74", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L76", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L77", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L78", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L79", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L80", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L81", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_build_category_tree", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L90", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_build_category_tree", "callee": "sort", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L93", "receiver": "children"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_build_category_tree", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L93", "receiver": "x"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_collect_category_with_ancestors", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L101", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_collect_category_with_ancestors", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L104", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_collect_category_with_ancestors", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L108", "receiver": "keep"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_collect_category_with_ancestors", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L109", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_collect_category_with_ancestors", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L109", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_category_tree", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L122", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_category_tree", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L123", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_category_tree", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L141", "receiver": "m"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L149", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L149", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "callee": "CrmProductCategory", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L149"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L166", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L167", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L176", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L178", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L179", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L181", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L183", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L184", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L189", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L190", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L191", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_category", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L206", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_category", "callee": "ensure_crm_create_by_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L207", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_category", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L228", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_category", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L229", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_category", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L230", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L238", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "callee": "ensure_crm_create_by_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L239", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L245", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L245", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "callee": "CrmProductCategory", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L245"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L254", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L258", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L258", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "callee": "CrmProduct", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L258"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L267", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "callee": "assert_row_deletable_by_creator", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L269", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L271", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_code_exists", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L281", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_code_exists", "callee": "CrmProductCategory", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L281"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_code_exists", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L288", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L319", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L319", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "CrmProductBrand", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L319"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "in_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L321", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L325", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L325", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L329", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L329", "receiver": "brands_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L331", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L331", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "CrmProductAlias", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L331"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "in_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L333", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L337", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L337", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L341", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L341", "receiver": "aliases_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L349", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L349", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "callee": "PlInventory", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L349"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L359", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L364", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "callee": "join", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L364", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "callee": "PlPlan", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L365"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L364", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "callee": "PlPlanProduct", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L364"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L376", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L393", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "CrmProductBrand", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L393"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "dict", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L403"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L403", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L404", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L404", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L405", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L405", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L405", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L409", "receiver": "keep_ids"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L415", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "dict", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L418"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L418", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L419", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L419", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L419", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L422", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L422", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L423", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L423", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L424", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L424", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L424", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L434", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L436", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L438", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L462", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "CrmProductAlias", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L462"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "dict", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L473"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L473", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L474", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L474", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L475", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L475", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L475", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L477", "receiver": "keep_ids"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L482", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "dict", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L484"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L484", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L485", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L485", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L485", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L488", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L488", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L489", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L489", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L489", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L498", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L500", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L502", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L521", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "callee": "name_pinyin_abbr", "is_member_call": false, "indirect": true, "context": "getattr", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L526"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L548", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L549", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_to_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L558", "receiver": "brands_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_to_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L559", "receiver": "aliases_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L582", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "CrmProduct", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L582"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "apply_crm_create_by_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L587", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "CrmProduct", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L587"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L589", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L592", "receiver": "kw"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L594", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L595", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L595", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "coalesce", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L595", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L598", "receiver": "conds"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L598", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L600", "receiver": "conds"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L600", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L601", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "get_supplier_hazard_flags", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L614", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L616", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L617", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "is_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L617", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L618", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "is_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L618", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L622", "receiver": "conds"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L622", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L622", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "is_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L622", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L624", "receiver": "conds"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L624", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L624", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "is_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L624", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L626", "receiver": "conds"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L626", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L627", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "scalar", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L629", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "with_entities", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L629", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L629", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "count", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L629", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "limit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L634", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "offset", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L634", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L634", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L634", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L644", "receiver": "brands_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L645", "receiver": "aliases_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L654", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L654", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product", "callee": "CrmProduct", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L654"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product_by_no", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L666", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product_by_no", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L666", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product_by_no", "callee": "CrmProduct", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L666"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_max_sxwl_product_seq", "callee": "PRODUCT_NO_PREFIX", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L684"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_max_sxwl_product_seq", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L686", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_max_sxwl_product_seq", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L688", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_max_sxwl_product_seq", "callee": "isdigit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L698", "receiver": "suffix"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_product_no", "callee": "PRODUCT_NO_GENERATE_MAX_RETRIES", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L706"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_product_no", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L708", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_product_no", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L713", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L718", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L718", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L722", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L722", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L722", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L724", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L728", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L752", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L756", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L760", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L763", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L764", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L771", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L773", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "resolve_name_pinyin_abbr", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L774", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L775", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L781", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L783", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L787", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L788", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L790", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L791", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L792", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L793", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L794", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "Decimal", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L794", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L795", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L796", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L797", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L798", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L799", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L800", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L802", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L803", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L808", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "flush", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L809", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L815", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L822", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L824", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L825", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L840", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "ensure_crm_create_by_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L841", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L871", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L873", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L874", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L875", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "resolve_name_pinyin_abbr", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L878", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L886", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L888", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L907", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L915", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L919", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L920", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L921", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_product", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L929", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_product", "callee": "ensure_crm_create_by_row_in_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L930", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_product", "callee": "assert_row_deletable_by_creator", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L933", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_product", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L935", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_no_exists", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L945", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_no_exists", "callee": "CrmProduct", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L945"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_no_exists", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L952", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_barcode_exists", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L962", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_barcode_exists", "callee": "CrmProduct", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L962"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_barcode_exists", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L969", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L982", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "callee": "CrmProduct", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L982"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L990", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L993", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L994", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L995", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L995", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "callee": "coalesce", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L995", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L996", "receiver": "kw"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1002", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1002", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "callee": "limit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1004", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_oss_row_to_dict", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1039", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_oss_by_biz", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1046", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_oss_by_biz", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1046", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_oss_by_biz", "callee": "SysOss", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1046"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_oss_by_biz", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1053", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1068", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1070", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1071", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1072", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1073", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1074", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1075", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1076", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1077", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1078", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1079", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1080", "receiver": "kwargs"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1085", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1086", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1087", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_oss", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1093", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_oss", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1093", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_oss", "callee": "SysOss", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1093"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_oss", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1096", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_normalize_text", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1105", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1130", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1132", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1140", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1143", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1145", "receiver": "product_name"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1146", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1147", "receiver": "unit"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1150", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1150", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "CrmProduct", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1150"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1154", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "trim", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1154", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "coalesce", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1154", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1155", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "trim", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1155", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "coalesce", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1155", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1156", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "trim", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1156", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "coalesce", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1156", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1158", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1178", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1192", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "callee": "flush", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1193", "receiver": "db"}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_alias_row_to_dict", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_assert_brand_deletable", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_barcode_exists", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_brand_row_to_dict", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_build_category_tree", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_code_exists", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_category_row_to_dict", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_collect_category_with_ancestors", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_category", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_oss", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_create_product", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_auto_product_no", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_barcode", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_generate_product_no", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_category", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_product_by_no", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_get_quote_item_field", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_categories", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_category_tree", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_oss_by_biz", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_product_options", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_list_products", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_load_brands_aliases_maps", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_max_sxwl_product_seq", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_normalize_text", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_oss_row_to_dict", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_no_exists", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_row_to_dict", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_product_to_dict", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_aliases", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_replace_product_brands", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_resolve_product_id_for_quote_item", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_category", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_oss", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_soft_delete_product", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_total_pages", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_category", "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_product_update_product"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/a9121522bcd9b53bf1874d74a48ce84f29c9c30fe927a2b77d6dbb40c82e19fa.json b/backend/graphify-out/cache/ast/v0.9.4/a9121522bcd9b53bf1874d74a48ce84f29c9c30fe927a2b77d6dbb40c82e19fa.json new file mode 100644 index 000000000..978eaac18 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/a9121522bcd9b53bf1874d74a48ce84f29c9c30fe927a2b77d6dbb40c82e19fa.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "label": "io_order.py", "file_type": "code", "source_file": "app/schemas/pl/io_order.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_brandoption", "label": "BrandOption", "file_type": "code", "source_file": "app/schemas/pl/io_order.py", "source_location": "L11"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_brandqtyitem", "label": "BrandQtyItem", "file_type": "code", "source_file": "app/schemas/pl/io_order.py", "source_location": "L17"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderitemread", "label": "IoOrderItemRead", "file_type": "code", "source_file": "app/schemas/pl/io_order.py", "source_location": "L24"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderitempatch", "label": "IoOrderItemPatch", "file_type": "code", "source_file": "app/schemas/pl/io_order.py", "source_location": "L51"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderpatch", "label": "IoOrderPatch", "file_type": "code", "source_file": "app/schemas/pl/io_order.py", "source_location": "L58"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderread", "label": "IoOrderRead", "file_type": "code", "source_file": "app/schemas/pl/io_order.py", "source_location": "L67"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderlistresponse", "label": "IoOrderListResponse", "file_type": "code", "source_file": "app/schemas/pl/io_order.py", "source_location": "L108"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderitemfeedback", "label": "PublicIoOrderItemFeedback", "file_type": "code", "source_file": "app/schemas/pl/io_order.py", "source_location": "L113"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderfeedback", "label": "PublicIoOrderFeedback", "file_type": "code", "source_file": "app/schemas/pl/io_order.py", "source_location": "L120"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderhistoryrecordread", "label": "PublicIoOrderHistoryRecordRead", "file_type": "code", "source_file": "app/schemas/pl/io_order.py", "source_location": "L128"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderhistorypageread", "label": "PublicIoOrderHistoryPageRead", "file_type": "code", "source_file": "app/schemas/pl/io_order.py", "source_location": "L148"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_rationale_1", "label": "\u5165\u5e93\u5355 / \u51fa\u5e93\u5355 Pydantic schemas", "file_type": "rationale", "source_file": "app/schemas/pl/io_order.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_brandoption", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_brandoption", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_brandqtyitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_brandqtyitem", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderitemread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderitemread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderitempatch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L51", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderitempatch", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L51", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderpatch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L58", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderpatch", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L58", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L67", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L67", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderlistresponse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L108", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderlistresponse", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L108", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderitemfeedback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L113", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderitemfeedback", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L113", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderfeedback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L120", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderfeedback", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L120", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderhistoryrecordread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L128", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderhistoryrecordread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L128", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderhistorypageread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L148", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderhistorypageread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L148", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/io_order.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_brandoption", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_brandqtyitem", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderitempatch", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderitemread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderlistresponse", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderpatch", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_ioorderread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderfeedback", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderhistorypageread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderhistoryrecordread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_io_order_publicioorderitemfeedback"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/cb330451af4b5b3609999bb31f950c086cd6e443cef9c73da5e4a6414fa2e8cd.json b/backend/graphify-out/cache/ast/v0.9.4/cb330451af4b5b3609999bb31f950c086cd6e443cef9c73da5e4a6414fa2e8cd.json new file mode 100644 index 000000000..8cd52b287 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/cb330451af4b5b3609999bb31f950c086cd6e443cef9c73da5e4a6414fa2e8cd.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "label": "test_crm_name_pinyin_search.py", "file_type": "code", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_includes_name_and_pinyin", "label": "test_list_products_keyword_includes_name_and_pinyin()", "file_type": "code", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L10"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", "label": "test_list_products_keyword_selector_mode_excludes_product_no_includes_model()", "file_type": "code", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L31"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customers_keyword_includes_name_and_pinyin", "label": "test_list_customers_keyword_includes_name_and_pinyin()", "file_type": "code", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L60"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customer_options_keyword_includes_name_and_pinyin", "label": "test_list_customer_options_keyword_includes_name_and_pinyin()", "file_type": "code", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L80"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_rationale_1", "label": "\u4ea7\u54c1/\u5ba2\u6237\u5217\u8868 keyword\uff1a\u540d\u79f0/\u7f16\u53f7/\u62fc\u97f3\u9996\u5b57\u6bcd OR \u5339\u914d\u3002", "file_type": "rationale", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_rationale_32", "label": "\u9009\u62e9\u5668\uff1a\u540d\u79f0/\u62fc\u97f3/\u89c4\u683c\u578b\u53f7\uff0c\u4e0d\u5339\u914d\u4ea7\u54c1\u7f16\u53f7\u3002", "file_type": "rationale", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L32"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "unittest_mock", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "app_crud_crm_customer", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "app_crud_crm_product", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_includes_name_and_pinyin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L31", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customers_keyword_includes_name_and_pinyin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L60", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customer_options_keyword_includes_name_and_pinyin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L80", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_rationale_32", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_crm_name_pinyin_search.py", "source_location": "L32", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_includes_name_and_pinyin", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L11", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_includes_name_and_pinyin", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L12", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_includes_name_and_pinyin", "callee": "list_products", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L22", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_includes_name_and_pinyin", "callee": "join", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L25", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L33", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L34", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", "callee": "list_products", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L44", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", "callee": "join", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L53", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customers_keyword_includes_name_and_pinyin", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L61", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customers_keyword_includes_name_and_pinyin", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L62", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customers_keyword_includes_name_and_pinyin", "callee": "list_customers", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L72", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customers_keyword_includes_name_and_pinyin", "callee": "join", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L75", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customer_options_keyword_includes_name_and_pinyin", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L81", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customer_options_keyword_includes_name_and_pinyin", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L82", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customer_options_keyword_includes_name_and_pinyin", "callee": "list_customer_options", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L89", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customer_options_keyword_includes_name_and_pinyin", "callee": "join", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py", "source_location": "L92", "receiver": null}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customer_options_keyword_includes_name_and_pinyin", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customers_keyword_includes_name_and_pinyin", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_includes_name_and_pinyin", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/d66bcaf4f87640305aabee4fc8ea2821c3b9f52f529489b96bdaf3a9e2e94f01.json b/backend/graphify-out/cache/ast/v0.9.4/d66bcaf4f87640305aabee4fc8ea2821c3b9f52f529489b96bdaf3a9e2e94f01.json new file mode 100644 index 000000000..995900960 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/d66bcaf4f87640305aabee4fc8ea2821c3b9f52f529489b96bdaf3a9e2e94f01.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "label": "admin.py", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "label": "list_roles_for_select()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L48"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users_for_select", "label": "list_users_for_select()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L80"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "label": "list_roles_for_designer()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L106"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_tenantcreatebody", "label": "TenantCreateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L127"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_tenantupdatebody", "label": "TenantUpdateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L138"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_tenants", "label": "list_tenants()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L150"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_tenant", "label": "create_tenant()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L171"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "label": "update_tenant()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L193"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_tenant", "label": "delete_tenant()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L218"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "label": "_get_tenant_no()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L235"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_usercreatebody", "label": "UserCreateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L248"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_userupdatebody", "label": "UserUpdateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L265"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "label": "list_users()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L281"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "label": "get_user_by_id()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L339"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "label": "create_user()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L359"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "label": "update_user()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L392"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_user", "label": "delete_user()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L422"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reset_user_password", "label": "reset_user_password()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L435"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dicttypecreatebody", "label": "DictTypeCreateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L452"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dicttypeupdatebody", "label": "DictTypeUpdateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L461"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_types", "label": "list_dict_types()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L471"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_type", "label": "create_dict_type()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L487"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "label": "update_dict_type()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L509"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_type", "label": "delete_dict_type()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L534"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictdatacreatebody", "label": "DictDataCreateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L551"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictdataupdatebody", "label": "DictDataUpdateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L562"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_data", "label": "list_dict_data()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L573"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_data", "label": "create_dict_data()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L590"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "label": "update_dict_data()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L614"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_data", "label": "delete_dict_data()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L638"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_options", "label": "dict_data_options()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L651"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_all", "label": "dict_data_all()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L665"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictensurebody", "label": "DictEnsureBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L687"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictensureremovebody", "label": "DictEnsureRemoveBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L695"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "label": "ensure_dict_data_api()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L703"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "label": "ensure_remove_dict_data_api()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L726"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_deptcreatebody", "label": "DeptCreateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L752"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_deptupdatebody", "label": "DeptUpdateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L765"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_depts", "label": "list_depts()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L778"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dept", "label": "create_dept()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L789"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "label": "update_dept()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L815"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dept", "label": "delete_dept()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L841"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_sitecreatebody", "label": "SiteCreateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L858"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_siteupdatebody", "label": "SiteUpdateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L873"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_sites", "label": "list_sites()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L889"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_site", "label": "create_site()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L903"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "label": "update_site()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L931"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_site", "label": "delete_site()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L960"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postcreatebody", "label": "PostCreateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L977"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postupdatebody", "label": "PostUpdateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L987"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_posts", "label": "list_posts()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L998"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_post", "label": "create_post()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1012"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "label": "update_post()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1035"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_post", "label": "delete_post()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1059"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postusersupdatebody", "label": "PostUsersUpdateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1071"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_post_bound_users", "label": "list_post_bound_users()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1078"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "label": "update_post_bound_users()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1092"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_menucreatebody", "label": "MenuCreateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1116"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_menuupdatebody", "label": "MenuUpdateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1132"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menus", "label": "list_menus()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1149"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu", "label": "create_menu()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1160"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "label": "update_menu()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1189"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu", "label": "delete_menu()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1219"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rolecreatebody", "label": "RoleCreateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1236"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_roleupdatebody", "label": "RoleUpdateBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1246"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rolemenubody", "label": "RoleMenuBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1256"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_roledatascopebody", "label": "RoleDataScopeBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1260"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_role_management", "label": "list_role_management()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1268"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_role_management", "label": "create_role_management()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1282"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_management", "label": "get_role_management()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1305"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "label": "update_role_management()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1322"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_role_management", "label": "delete_role_management()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1346"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_menus", "label": "get_role_menus()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1359"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_menus", "label": "update_role_menus()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1369"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_data_scope", "label": "get_role_data_scope()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1384"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_data_scope", "label": "update_role_data_scope()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1397"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_format_file_size", "label": "_format_file_size()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1423"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "label": "upload_attachment()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1433"}, {"id": "uploadfile", "label": "UploadFile", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachmentdownloadurlbody", "label": "AttachmentDownloadUrlBody", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1483"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "label": "attachment_download_url()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1490"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "label": "attachment_preview_url()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1516"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menu_favorites", "label": "list_menu_favorites()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1540"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "label": "create_menu_favorite()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1554"}, {"id": "menufavoritecreatebody", "label": "MenuFavoriteCreateBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reorder_menu_favorites", "label": "reorder_menu_favorites()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1579"}, {"id": "menufavoritereorderbody", "label": "MenuFavoriteReorderBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu_favorite", "label": "delete_menu_favorite()", "file_type": "code", "source_file": "app/api/admin.py", "source_location": "L1600"}, {"id": "menufavoritedeletebody", "label": "MenuFavoriteDeleteBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rationale_52", "label": "\u8fd4\u56de\u8fd0\u8425\u7aef\u89d2\u8272\u4e0b\u62c9\u9009\u9879\uff08label=\u5e93\u4e2d\u89d2\u8272\u540d\uff0cvalue=Web \u89d2\u8272\u7801\uff09\u3002", "file_type": "rationale", "source_file": "app/api/admin.py", "source_location": "L52"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rationale_84", "label": "\u8fd4\u56de\u7528\u6237\u4e0b\u62c9\u9009\u9879\uff08label=\u6635\u79f0\uff0cvalue=\u7528\u6237ID\uff0c\u9644\u5e26 nickName/userNo\uff09\u3002 \u4f9b\u7533\u8bf7\u4eba/\u5ba1\u6279\u4eba\u7b49\u9009\u62e9\u573a\u666f\u4f7f\u7528\uff0c\u8fd4\u56de\u672c\u79df\u6237\u5168\u90e8\u6709\u6548", "file_type": "rationale", "source_file": "app/api/admin.py", "source_location": "L84"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rationale_110", "label": "\u8fd4\u56de\u89d2\u8272\u4e0b\u62c9\u9009\u9879\uff08label=\u89d2\u8272\u540d\uff0cvalue=\u89d2\u8272ID UUID\uff09\uff0c\u4f9b\u6d41\u7a0b\u8bbe\u8ba1\u5668\u5ba1\u6279\u4eba\u9009\u62e9\u4f7f\u7528\u3002 \u4e0e /roles \u4e0d\u540c\uff0c\u6b64\u7aef\u70b9\u8fd4\u56de\u89d2\u8272 UUID", "file_type": "rationale", "source_file": "app/api/admin.py", "source_location": "L110"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rationale_1495", "label": "\u8fd4\u56de\u5e26 Content-Disposition \u7684\u4e0b\u8f7d URL\uff0c\u4fdd\u8bc1\u6d4f\u89c8\u5668\u4f7f\u7528\u539f\u59cb\u6587\u4ef6\u540d\u3002", "file_type": "rationale", "source_file": "app/api/admin.py", "source_location": "L1495"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rationale_1521", "label": "\u8fd4\u56de\u7528\u4e8e\u6d4f\u89c8\u5668\u5185\u8054\u9884\u89c8\u7684 URL\uff08PDF iframe \u7b49\uff09\u3002", "file_type": "rationale", "source_file": "app/api/admin.py", "source_location": "L1521"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "uuid", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_core_config", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_core_data_scope", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_core_menu_guard", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_core_response", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_core_attachment_biz", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_core_storage", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_services", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L27", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L28", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L29", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L30", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_models_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L31", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_schemas_menu_favorite", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "app_services_web_auth_roles", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L37", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users_for_select", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L80", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users_for_select", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L80", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L106", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L106", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_tenantcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L127", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_tenantcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L127", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_tenantupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L138", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_tenantupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L138", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_tenants", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L150", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_tenants", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L150", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_tenant", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L171", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_tenant", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_tenantcreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L171", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_tenant", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L171", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L193", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_tenantupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L193", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L193", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_tenant", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L218", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_tenant", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L218", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L235", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L235", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_usercreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L248", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_usercreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L248", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_userupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L265", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_userupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L265", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L281", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L281", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L339", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L339", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L359", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_usercreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L359", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L359", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L392", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_userupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L392", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L392", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L422", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_user", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L422", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reset_user_password", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L435", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reset_user_password", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L435", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dicttypecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L452", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dicttypecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L452", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dicttypeupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L461", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dicttypeupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L461", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L471", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_types", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L471", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L487", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_type", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dicttypecreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L487", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_type", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L487", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L509", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dicttypeupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L509", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L509", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L534", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_type", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L534", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictdatacreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L551", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictdatacreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L551", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictdataupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L562", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictdataupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L562", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L573", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_data", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L573", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L590", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_data", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictdatacreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L590", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_data", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L590", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L614", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictdataupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L614", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L614", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L638", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_data", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L638", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_options", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L651", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_options", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L651", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_all", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L665", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_all", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L665", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictensurebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L687", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictensurebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L687", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictensureremovebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L695", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictensureremovebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L695", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L703", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictensurebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L703", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L703", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L726", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictensureremovebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L726", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L726", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_deptcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L752", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_deptcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L752", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_deptupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L765", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_deptupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L765", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_depts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L778", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_depts", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L778", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L789", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dept", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_deptcreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L789", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dept", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L789", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L815", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_deptupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L815", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L815", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L841", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dept", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L841", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_sitecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L858", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_sitecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L858", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_siteupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L873", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_siteupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L873", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_sites", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L889", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_sites", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L889", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_site", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L903", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_site", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_sitecreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L903", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_site", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L903", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L931", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_siteupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L931", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L931", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_site", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L960", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_site", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L960", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L977", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L977", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L987", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L987", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_posts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L998", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_posts", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L998", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_post", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1012", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_post", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postcreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1012", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_post", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1012", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1035", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1035", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1035", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_post", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1059", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_post", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1059", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postusersupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1071", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postusersupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1071", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_post_bound_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1078", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_post_bound_users", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1078", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1092", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postusersupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1092", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1092", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_menucreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1116", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_menucreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1116", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_menuupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1132", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_menuupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1132", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1149", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menus", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1149", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1160", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_menucreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1160", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1160", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1189", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_menuupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1189", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1189", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1219", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1219", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rolecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1236", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rolecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1236", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_roleupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1246", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_roleupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1246", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rolemenubody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1256", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rolemenubody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1256", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_roledatascopebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1260", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_roledatascopebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1260", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_role_management", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1268", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_role_management", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1268", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_role_management", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1282", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_role_management", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rolecreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1282", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_role_management", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1282", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_management", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1305", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_management", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1305", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1322", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_roleupdatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1322", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1322", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_role_management", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1346", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_role_management", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1346", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_menus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1359", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_menus", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1359", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_menus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1369", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_menus", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rolemenubody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1369", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_menus", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1369", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_data_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1384", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_data_scope", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1384", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_data_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1397", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_data_scope", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_roledatascopebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1397", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_data_scope", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1397", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_format_file_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1423", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1433", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "target": "uploadfile", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1433", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1433", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachmentdownloadurlbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1483", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachmentdownloadurlbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1483", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1490", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachmentdownloadurlbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1490", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1490", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1516", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachmentdownloadurlbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1516", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1516", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menu_favorites", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1540", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menu_favorites", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1540", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1554", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "target": "menufavoritecreatebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1554", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1554", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reorder_menu_favorites", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1579", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reorder_menu_favorites", "target": "menufavoritereorderbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1579", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reorder_menu_favorites", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1579", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu_favorite", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1600", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu_favorite", "target": "menufavoritedeletebody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1600", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu_favorite", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1600", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users_for_select", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L89", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L114", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L290", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L344", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L365", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_types", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L478", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_type", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L493", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L516", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_data", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L581", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_data", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L596", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_options", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L656", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_all", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L669", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L709", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L732", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_depts", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L783", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dept", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L795", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_sites", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L896", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_site", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L909", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_posts", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1005", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_post", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1018", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_post_bound_users", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1083", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1098", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menus", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1154", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1166", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_role_management", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1275", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_role_management", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1288", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_management", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1310", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_menus", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1376", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_data_scope", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1404", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1456", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_format_file_size", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1474", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1499", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1525", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menu_favorites", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1547", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1564", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reorder_menu_favorites", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1589", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu_favorite", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1610", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rationale_52", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L52", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rationale_84", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users_for_select", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L84", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rationale_110", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L110", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rationale_1495", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1495", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rationale_1521", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/admin.py", "source_location": "L1521", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L54", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L54", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "callee": "SysRole", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L54"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L56", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L62", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "callee": "_map_role_name_to_web", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L65", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L69", "receiver": "seen"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L70", "receiver": "out"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L76", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users_for_select", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L90", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users_for_select", "callee": "SysUser", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L90"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users_for_select", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L92", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users_for_select", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L92", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users_for_select", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L102", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L115", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "callee": "SysRole", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L115"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L117", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L117", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L118", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L118", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L119", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_tenants", "callee": "total_pages", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L158", "receiver": "tenant_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_tenants", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L159", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_tenant", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L185", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_tenant", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L187", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_tenant", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L187", "receiver": "tenant_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_tenant", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L189", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_tenant", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L189"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L200", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L204", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L205", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L206", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L207", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L208", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L209", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L210", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L212", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L212", "receiver": "tenant_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L214", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L214"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_tenant", "callee": "soft_delete_tenant", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L224", "receiver": "tenant_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_tenant", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L225", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_tenant", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L227", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_tenant", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L227"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L236", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L239", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L239", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "callee": "SysUser", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L239"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L291", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "SysUser", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L291"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L295", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L299", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L300", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L301", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L302", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "apply_data_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L309", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "SysUser", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L309"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "count", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L310", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "limit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L311", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "offset", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L311", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L311", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L311", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L315", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "SysDept", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L315"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "in_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L315", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L318", "receiver": "user_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L318", "receiver": "dept_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L320", "receiver": "d"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L324", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "SysUserRole", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L324"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "in_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L326", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L331", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L331", "receiver": "role_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L333", "receiver": "role_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "total_pages", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L334", "receiver": "user_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L335", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "callee": "get_user", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L345", "receiver": "user_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L347", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L348", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L349", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "callee": "assert_row_in_data_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L351", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "callee": "SysUser", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L351"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L353", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "callee": "get_user_with_relations", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L354", "receiver": "user_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L355", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "callee": "user_no_exists", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L366", "receiver": "user_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L367", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L382", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L386", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L386", "receiver": "user_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L388", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L388"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L399", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L403", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L404", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L405", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L406", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L407", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L408", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L409", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L410", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L411", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L412", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L413", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L414", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L416", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L416", "receiver": "user_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L418", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L418"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_user", "callee": "soft_delete_user", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L428", "receiver": "user_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_user", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L429", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_user", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L431", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_user", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L431"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reset_user_password", "callee": "reset_password", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L441", "receiver": "user_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reset_user_password", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L442", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reset_user_password", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L444", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reset_user_password", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L444"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_types", "callee": "total_pages", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L482", "receiver": "dict_type_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_types", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L483", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_type", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L501", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_type", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L503", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_type", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L503", "receiver": "dict_type_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_type", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L505", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_type", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L505"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L517", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L521", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L522", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L523", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L524", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L525", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L528", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L528", "receiver": "dict_type_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L530", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L530"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_type", "callee": "soft_delete_dict_type", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L540", "receiver": "dict_type_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_type", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L541", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_type", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L543", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_type", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L543"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_data", "callee": "total_pages", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L585", "receiver": "dict_data_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_data", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L586", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_data", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L606", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_data", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L608", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_data", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L608", "receiver": "dict_data_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_data", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L610", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_data", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L610"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L621", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L625", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L626", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L627", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L628", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L629", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L630", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L632", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L632", "receiver": "dict_data_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L634", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L634"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_data", "callee": "soft_delete_dict_data", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L644", "receiver": "dict_data_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_data", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L645", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_data", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L647", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_data", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L647"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_options", "callee": "list_dict_data_options", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L658", "receiver": "dict_data_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_options", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L661", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_all", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L670", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_all", "callee": "SysDictData", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L670"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_all", "callee": "and_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L671", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_all", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L673", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_all", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L673", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_all", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L679", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_all", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L684", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "callee": "ensure_dict_data", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L710", "receiver": "dict_ensure_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L715", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L715", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L718", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L719", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L721", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L722", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L722"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "callee": "ensure_remove_dict_data", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L733", "receiver": "dict_ensure_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L738", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L738", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L740", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L741", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L743", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L744", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L744"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_depts", "callee": "list_depts_tree", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L784", "receiver": "dept_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_depts", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L785", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dept", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L807", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dept", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L809", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dept", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L809", "receiver": "dept_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dept", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L811", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dept", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L811"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L822", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L826", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L827", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L828", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L829", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L830", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L831", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L832", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L833", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L835", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L835", "receiver": "dept_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L837", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L837"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dept", "callee": "soft_delete_dept", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L847", "receiver": "dept_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dept", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L848", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dept", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L850", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dept", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L850"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_sites", "callee": "total_pages", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L898", "receiver": "site_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_sites", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L899", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_site", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L923", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_site", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L925", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_site", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L925", "receiver": "site_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_site", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L927", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_site", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L927"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L938", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L942", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L943", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L944", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L945", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L946", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L947", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L948", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L949", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L950", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L951", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L952", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L954", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L954", "receiver": "site_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L956", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L956"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_site", "callee": "soft_delete_site", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L966", "receiver": "site_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_site", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L967", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_site", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L969", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_site", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L969"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_posts", "callee": "total_pages", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1007", "receiver": "post_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_posts", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1008", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_post", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1027", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_post", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1029", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_post", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1029", "receiver": "post_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_post", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1031", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_post", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1031"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1042", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1046", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1047", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1048", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1049", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1050", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1051", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1053", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1053", "receiver": "post_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1055", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1055"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_post", "callee": "soft_delete_post", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1065", "receiver": "post_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_post", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1066", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_post", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1068", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_post", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1068"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_post_bound_users", "callee": "get_post", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1084", "receiver": "post_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_post_bound_users", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1086", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_post_bound_users", "callee": "list_user_ids_bound_to_post", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1087", "receiver": "user_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_post_bound_users", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1088", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "callee": "get_post", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1099", "receiver": "post_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1101", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "callee": "sync_post_user_bindings", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1103", "receiver": "user_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1104", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1106", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1108", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1108"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menus", "callee": "list_menus_tree", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1155", "receiver": "menu_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menus", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1156", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1181", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1183", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1183", "receiver": "menu_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1185", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1185"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1196", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1200", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1201", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1202", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1203", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1204", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1205", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1206", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1207", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1208", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1209", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1210", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1211", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1213", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1213", "receiver": "menu_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1215", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1215"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu", "callee": "soft_delete_menu", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1225", "receiver": "menu_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1226", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1228", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1228"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_role_management", "callee": "list_roles", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1276", "receiver": "role_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_role_management", "callee": "total_pages", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1277", "receiver": "role_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_role_management", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1278", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_role_management", "callee": "create_role", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1289", "receiver": "role_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_role_management", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1297", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_role_management", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1299", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_role_management", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1299", "receiver": "role_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_role_management", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1301", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_role_management", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1301"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_management", "callee": "get_role", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1311", "receiver": "role_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_management", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1313", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_management", "callee": "assert_row_in_data_scope", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1315", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_management", "callee": "SysRole", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1315"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_management", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1317", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_management", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1318", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_management", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1318", "receiver": "role_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1329", "receiver": "body"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "callee": "update_role", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1330", "receiver": "role_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1333", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1334", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1335", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1336", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1337", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1338", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1340", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "callee": "_row_to_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1340", "receiver": "role_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1342", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1342"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_role_management", "callee": "soft_delete_role", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1352", "receiver": "role_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_role_management", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1353", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_role_management", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1355", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_role_management", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1355"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_menus", "callee": "get_role_menu_ids", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1364", "receiver": "role_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_menus", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1365", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_menus", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1377", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_menus", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1378", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_menus", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1380", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_menus", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1380"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_data_scope", "callee": "get_role", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1389", "receiver": "role_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_data_scope", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1391", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_data_scope", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1393", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_data_scope", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1411", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_data_scope", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1413", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_data_scope", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1415", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_data_scope", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1415"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1441", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "resolve_upload_folder", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1443", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "read", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1446", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "upload_file", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1447", "receiver": "storage"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "rstrip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1448", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "startswith", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1449", "receiver": "full_url"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "lstrip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1454", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "splitext", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1454", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "create_oss", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1457", "receiver": "oss_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1465", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1466", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1469", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1479", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1480", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1480"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1496", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1498", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "callee": "resolve_storage_path", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1500", "receiver": "oss_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "callee": "get_oss_by_url", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1502", "receiver": "oss_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1503", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1505", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "callee": "rsplit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1507", "receiver": "file_url"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "callee": "presigned_download_url", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1509", "receiver": "storage"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1510", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1512", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1512"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1522", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1524", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "callee": "resolve_storage_path", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1526", "receiver": "oss_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "callee": "presigned_preview_url", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1528", "receiver": "storage"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1529", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1531", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1531"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menu_favorites", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1544", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menu_favorites", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1546", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menu_favorites", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1550", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menu_favorites", "callee": "list_favorites", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1550", "receiver": "fav_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1561", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1563", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "callee": "add_favorite", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1566", "receiver": "fav_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1571", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1573", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1575", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1575"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reorder_menu_favorites", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1586", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reorder_menu_favorites", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1588", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reorder_menu_favorites", "callee": "reorder_favorites", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1591", "receiver": "fav_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reorder_menu_favorites", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1594", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reorder_menu_favorites", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1596", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reorder_menu_favorites", "callee": "e", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1596"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu_favorite", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1607", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu_favorite", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1609", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu_favorite", "callee": "soft_delete_favorite", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1611", "receiver": "fav_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu_favorite", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1614", "receiver": null}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_download_url", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachment_preview_url", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_attachmentdownloadurlbody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dept", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_data", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_dict_type", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_menu_favorite", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_post", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_role_management", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_site", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_tenant", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_create_user", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dept", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_data", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_dict_type", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_menu_favorite", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_post", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_role_management", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_site", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_tenant", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_delete_user", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_deptcreatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_deptupdatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_all", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dict_data_options", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictdatacreatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictdataupdatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictensurebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dictensureremovebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dicttypecreatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_dicttypeupdatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_dict_data_api", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_ensure_remove_dict_data_api", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_format_file_size", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_data_scope", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_management", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_role_menus", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_tenant_no", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_get_user_by_id", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_depts", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_data", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_dict_types", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menu_favorites", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_menus", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_post_bound_users", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_posts", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_role_management", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_designer", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_roles_for_select", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_sites", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_tenants", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_list_users_for_select", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_menucreatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_menuupdatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postcreatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postupdatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_postusersupdatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reorder_menu_favorites", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_reset_user_password", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rolecreatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_roledatascopebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_rolemenubody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_roleupdatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_sitecreatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_siteupdatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_tenantcreatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_tenantupdatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dept", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_data", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_dict_type", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_menu", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_post_bound_users", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_data_scope", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_management", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_role_menus", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_site", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_tenant", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_update_user", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_upload_attachment", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_usercreatebody", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_admin_userupdatebody"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/stat-index.json b/backend/graphify-out/cache/stat-index.json index 933134691..3bb4ae218 100644 --- a/backend/graphify-out/cache/stat-index.json +++ b/backend/graphify-out/cache/stat-index.json @@ -1 +1 @@ -{"/Users/zlwu/work/00code/shanxia2.0/backend/start-prod.sh":{"size":7357,"mtime_ns":1782639355476060453,"hash":"ca89869446be74a2bf2367b3b28f448580220859a39a84ad9613ac5fe35a8433"},"/Users/zlwu/work/00code/shanxia2.0/backend/start.sh":{"size":9548,"mtime_ns":1780114661446983244,"hash":"4d632863e8a0cd81194b491d83a0218a4157435ae812dec76a6f6197b4d48e57"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/__init__.py":{"size":21,"mtime_ns":1780113982281973984,"hash":"60a04ff08fd97084e83ea809fd13feda6d2848be20ebf309e31fc1dad7523230"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/main.py":{"size":6280,"mtime_ns":1782790852770448643,"hash":"8f9da799977bee7134d87a26ff8434ac5ef8eabb0b7368dd537eee49ad7fd00b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":2207,"mtime_ns":1783208067881286091,"hash":"313e6da0e91d743ce891dd283458c79b50b24c4d909dc96ca7b3fd9d2bfa5013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":7457,"mtime_ns":1782790841500516545,"hash":"34bac56e1c2cb6215f4b5fa2dc32d77d4b4abca51428819eebf4afd269cc51cf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto.py":{"size":1870,"mtime_ns":1780108930724444498,"hash":"c04b748aea86890a5971f749523c7b17dbad1ddd6f9f7f07a5679d159c984e33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/login_crypto.py":{"size":3858,"mtime_ns":1780108930725155710,"hash":"b82d51afabf2293a9cb1fb2e5f994c383948e7f47ea95fe674686b4f3f3342b1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/config.py":{"size":6958,"mtime_ns":1784032424448146538,"hash":"c2fb44aedb880733de28afa7f92d2c1c681eb600f821bbeba2bcda3933e5bc37"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_pay.py":{"size":23585,"mtime_ns":1780108930725768130,"hash":"3d52265ce65d21e7103f94afa1e8547aee0823b5ea6d65c50317436ac81fb4fc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_request_log_middleware.py":{"size":11971,"mtime_ns":1782701669198208175,"hash":"0b84c32828939e6102bb3647691fa8f04b1f68e0e0e9f28127374cc44e19a11c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1510,"mtime_ns":1782790847265601586,"hash":"8bc9c8ae62e2be2c6920036582ba448dfcd1711c41cebb62274ff6bc6ee14b0b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/security.py":{"size":728,"mtime_ns":1780108930725470004,"hash":"df0f01115064f7b8de1c81dbe9a6db39360c236610b68c33b3234a51d7f0025b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/request_payload.py":{"size":2842,"mtime_ns":1780108930725350836,"hash":"e9937151530ab1417ef297aef59111977725cf90be2a8fa76c00a0618789aba0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/__init__.py":{"size":61,"mtime_ns":1780108930724312414,"hash":"3dd1842ee59b0c804176b03b4b8a323bd4a252b7feb1bbc32db64f3a8928570e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/response.py":{"size":1824,"mtime_ns":1780108930725412462,"hash":"f1739352d65ea8287d76e282a59553aa8d63c97e35764c64ac378aa5bd9c347e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/menu_guard.py":{"size":1611,"mtime_ns":1780108930725223002,"hash":"3e26077288c3620a4780038b891a326206b45bffe00aca545bdae30172487235"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_collation.py":{"size":548,"mtime_ns":1780108930725025043,"hash":"0c680e25a18244ca839a7de6ed1f4313b33bc8da118d89c463aee1b6af00c6f9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/context.py":{"size":421,"mtime_ns":1780108930724824458,"hash":"83a10aee67162374993c10a30bf8bb8bd9c4b35cf48f42c832415ccebd91660f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/utils.py":{"size":1498,"mtime_ns":1780108930725607296,"hash":"09323693661c1d4560458b86a954128ccff82bbaf6522da0b44f24da99ddf9ea"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/storage.py":{"size":14141,"mtime_ns":1782855136810943216,"hash":"3ae2c413c10898a8adb3d6773870bafbfbc18c739c10e0e8b4f765b4b5ca6c08"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/order_status_compat.py":{"size":2828,"mtime_ns":1780108930725284669,"hash":"5349e5a0745ee6734c4a995337779307adefc46f453906171988a77de2081540"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/exceptions.py":{"size":4946,"mtime_ns":1780108930725084335,"hash":"79c997d964bca1a4f12f2b92fb1f181fdb9e2b3cf72eae39f4cc164d23794fd7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/data_scope.py":{"size":8043,"mtime_ns":1782648925694296304,"hash":"626dff86937e5cacec634ecbc61cd53d3763d760223a1d4ec7cd11f64e59a220"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/admin_request_json.py":{"size":2669,"mtime_ns":1780108930724378914,"hash":"4f68b3cf84291e7bddad6ecf4bb4d29ca5e1ec246a9f7f9c4cf5909d0ec1174a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto_middleware.py":{"size":10876,"mtime_ns":1782790001926627098,"hash":"b39f128b6612589ea6ac5babd30752e9585b3af07b82bb1ad53c9e3c0d90816f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930725684255,"hash":"5086070deb14d99d1a69e419b2299ec4ea2fe128de80fe321b0c3c531fea7a88"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/models.py":{"size":36012,"mtime_ns":1782699345666495916,"hash":"01f974f182660ec4f215bcacc31eddadd7899d60d95aa19a61046579a994512a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/__init__.py":{"size":2186,"mtime_ns":1784035957226402359,"hash":"5af681963b36af57eaca7fdfc7f707255008ffba18df1a8c2d5903f58fcbf159"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py":{"size":2090,"mtime_ns":1780108930807298966,"hash":"fda71bbe87dcb29c6f0ffa9337e9f39c2c06d912df6cb75d521f0e87c7c73c6d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/auth.py":{"size":1315,"mtime_ns":1780108930808197763,"hash":"018b82e42bbb055250549c54ba700ee01cf28cd753397d6c162f9e60185908e5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/user.py":{"size":1911,"mtime_ns":1780108930810184774,"hash":"3d3c159018cab6ed1cd3de7034ffb1fe77a272b9099901a1882d07aa15fc90a0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/__init__.py":{"size":1159,"mtime_ns":1780112973062398026,"hash":"4e8b0bda6680e2c8740c380b96eedb859ddc584a81bad568a18ba6beb001e480"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/menu.py":{"size":816,"mtime_ns":1780108930808681891,"hash":"17e35f2d7bf95cac00d81357f69fdcbe849e855daa05570c3302de8182b4df11"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/attachment.py":{"size":328,"mtime_ns":1780108930808144846,"hash":"300b74c51c66cb0fbf8c9f4d84a4b7bf29dcc9b6a67d922f8e1d0df05f9fc5bf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/common.py":{"size":555,"mtime_ns":1780108930808426681,"hash":"caa0c03398e54017b25cca2a16cf8d232a59739893a16e4c33b51a5316d8964f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/workflow.py":{"size":3949,"mtime_ns":1780108930810245983,"hash":"e5aed7afcf903c838a35cdaf2230a93d221c63f5c6baa1497e455afac8587a9a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/leave.py":{"size":1449,"mtime_ns":1780108930808614098,"hash":"c54098a69bd4490290dd8d7809ed8764a3f38e8c38692eeef2b505293cdfaeb8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/sample_code.py":{"size":12322,"mtime_ns":1780114002126415047,"hash":"5b74838b3920f9182d092f8a1b721697f1a62e8b90728b9f54101dbb96baa40e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/post.py":{"size":5164,"mtime_ns":1782688288640487823,"hash":"370a7c2b5de64c6b72f98bcf7fbbc166ba2a7f5673c6e1426b10bcc88220bb27"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/user.py":{"size":14214,"mtime_ns":1783851628178366109,"hash":"aeac623e3020fee4cdd01e463ced23e4e03539a17c5b57dcbd9d88aac5a4fb4f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dict_type.py":{"size":5537,"mtime_ns":1782688289303121533,"hash":"f4edc5824466d0096b3b70aeea7b4460a9fa54ca0929421759b625b60c56c505"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/tenant.py":{"size":5659,"mtime_ns":1782688281816798167,"hash":"0192db8ac9c3de42fe8ee58324c77111e152bf4c35fd15c0b16467fe243712f0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/biz_no_generator.py":{"size":2534,"mtime_ns":1780108930726090799,"hash":"e6bd375987e47f6ee80294686db64377938a286767bb28324f3eda2ad39ad546"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/__init__.py":{"size":169,"mtime_ns":1780108930725878047,"hash":"340e3c08174d61829012879e684f6166803b88c819c58b54a16a11d210dea85e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/role.py":{"size":9417,"mtime_ns":1782688282481859519,"hash":"008550fe8efce5310afd3d41d944cee4b68d71763a587583f8832855480477f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/menu.py":{"size":7600,"mtime_ns":1782688282878700273,"hash":"36951a77088782d80500bfa6266b46a564a670e10b70af7a28cdee8c50741098"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/site.py":{"size":6525,"mtime_ns":1782688288935534527,"hash":"a7bf593eff76d08b338f48f9a035fa1493f4ca88867bf9fdf4e9af06b6165759"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/api_request_log.py":{"size":4562,"mtime_ns":1782699354647000111,"hash":"f233bde579c4f6c7f2fd6030878c5946fb5dd5e247efaf4fe80d3f48622c19a8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dict_data.py":{"size":5418,"mtime_ns":1782688289691482227,"hash":"5bd3fd93c60956dab0268e9f4e6cf315d0a9c9656d649f4abb40858ba1d32911"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/ethnic.py":{"size":1012,"mtime_ns":1780108930727448890,"hash":"7de1eb94b9fbb897a7b362ffdb5df5ab1020aa7247c7c37a2a2a2aa5cdbac8ad"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/workflow.py":{"size":25052,"mtime_ns":1782688290021142467,"hash":"6ca7e3b79e91356a050592b768d7a6749e1bfdb2841a208c7235899603368aec"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dept.py":{"size":6604,"mtime_ns":1782688283203296227,"hash":"ebb38fcd527fdac4dcbf0632ac926e4cbe95dddb5fab79c3142b010e7a48ea7e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/base.py":{"size":5360,"mtime_ns":1780108930726010257,"hash":"49fdea023825ea249923b1cb02d353dcede1850158d3555a2082887925e69b9b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/leave.py":{"size":4765,"mtime_ns":1782687678100096646,"hash":"847095009bddac2d77dcbb485bcc57cbe168ff874989c197f49f2a28675d2525"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py":{"size":12682,"mtime_ns":1783858998986861832,"hash":"b98ac3f3bc95c2b42c481ac9ae9137528e55845d425e5d2184827dc424304e42"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/__init__.py":{"size":665,"mtime_ns":1780804649232229595,"hash":"f720195209c1783d8b2526220a086c2ae2769d76a12bd7df74136f5432c7b75f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/menu.py":{"size":30932,"mtime_ns":1782790854866245387,"hash":"4e9de047e67ff365d17ac28d30e1baa72cfa3c651caa1b9776e225fc07da0e58"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py":{"size":50055,"mtime_ns":1782855138852859245,"hash":"a5e74057222e3359f6077b2fd05b2db4d058ec2702243cc449bff8d448d44a05"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/workflow.py":{"size":21202,"mtime_ns":1782790854865038715,"hash":"3950dd8d9855f5ed33a0e15883f7e442c4e26bc51672209b1e68ce0d0c9ce399"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/leave.py":{"size":6916,"mtime_ns":1782790854865571301,"hash":"6e03239433bbaecc54f72fa2aba2578573ae6c7fc881f287ef57dafed1a0f1b5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/workflow_callback.py":{"size":3584,"mtime_ns":1780108930810395025,"hash":"a033c13c7bee7f4b636198c1efa47f2abba0d890657e52b0b7057568d4d83a52"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/workflow_engine.py":{"size":14042,"mtime_ns":1780113992914903818,"hash":"5c06a59c734f598d5c7ebe95d30f048ba3a97302b938bc9320d97e5a053c7aef"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/web_auth_roles.py":{"size":5592,"mtime_ns":1783858473640363111,"hash":"04c2cd67a7ec8190aa7a9db717a722cd347a52279ac3ef5bd284777f0698a904"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/ws/__init__.py":{"size":26,"mtime_ns":1780108930810617026,"hash":"d4357444e9b5b0a8593000fb6e4dc37469ebe008e675bf42ec0d55d463f88fc6"},"/Users/zlwu/work/00code/shanxia2.0/backend/README.md":{"size":2752,"mtime_ns":1780114581291841672,"hash":"f5def8d25af0556a443c31a73e81f958883b60cfed8b31fac457f2832c2b6d58"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py":{"size":66592,"mtime_ns":1784122553836870448,"hash":"1a0a09e5f5d9eb2d5e18e2f7d851287442ee370a3abfbf0b487ee4b4a18d43b3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/__init__.py":{"size":0,"mtime_ns":1780201410213315055,"hash":"a6d57250b43cbdecb56b7a9d55d29642b808be368733e14b7df2bd196f54d64d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py":{"size":7820,"mtime_ns":1783820526204158517,"hash":"b8d626eca1b0fc6b0216a66afb1cf234155310d3077d940d5158111f873a414b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/__init__.py":{"size":0,"mtime_ns":1780201410210254759,"hash":"9b8fcaaabdc85883c9ef392b596b60db0bd3b2f1623fc8012e55003f234a9875"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py":{"size":25974,"mtime_ns":1783820522540308906,"hash":"6d1fb7bc06a4f16c729b1b226377ffa38b9b47bf1cc75310dcefbb8f6e480574"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py":{"size":151289,"mtime_ns":1784119033682636742,"hash":"ceaa64369ef66891310f391836c580beefd5a69854b3a5a0539a419744a311b0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py":{"size":9646,"mtime_ns":1780202350147822837,"hash":"4f0ab87e7a12534011b69f58079ca206d5443eee594849ab4aae728bb847de0d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/tenant_context.py":{"size":693,"mtime_ns":1780201410210198550,"hash":"0a810658d894d35b9e981faa1448e1d02d617ecbe563bd711f6ce5a8f9db1861"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/pool_rule.py":{"size":1848,"mtime_ns":1780202212734233591,"hash":"b0331e17e801d206fba2fa89df1a66d1758d850dc5547e076218e16c8211a3e8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py":{"size":1340,"mtime_ns":1780202198698231150,"hash":"7a6b76e0e39ada0783dfbee92280e9f06299b6662b08abb13ab1b0d9c70fe370"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_follow.py":{"size":3716,"mtime_ns":1780201410213934514,"hash":"3979cecd62a4f2ee5dd925639572208e36b397620d91a9ce49a59adfcb2a9d55"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py":{"size":13811,"mtime_ns":1783823672041317102,"hash":"b91167282158aeb11046dccc4bf2f29a13307a0413b3d7b3c860b17d37f8ad4a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py":{"size":4856,"mtime_ns":1780742840975948859,"hash":"60c714cc254d70f39b43205bbcb7fb4c563e807ddd070eefaaa952ae96048377"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py":{"size":8816,"mtime_ns":1782687680547203228,"hash":"779f7f46e7ef8bfba27390d56fa071dfd3a8446d9d3b3361003b1c239f7169aa"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py":{"size":8121,"mtime_ns":1782687665525772610,"hash":"ec67fc7667847017a8d8b5a276f5c75328bda7fa360746d80c7890de3f6d4b76"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py":{"size":23825,"mtime_ns":1782687664490640155,"hash":"5d8934ae6318de87b0761686fe491a7ec2be02792a85d84308c383af3193fa8a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py":{"size":10482,"mtime_ns":1782687664918872966,"hash":"f4e3a684dd7a6c7c927e10e8e1e0c108c151b963777b85c5b74d7e7871f3a438"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/generate_dict_reimport_sql.py":{"size":10692,"mtime_ns":1780201410245078685,"hash":"a4faaf61f246dad04ec3933083ab4348e5d2987ae1ed34b1f6d8f19535642a05"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/statistics.py":{"size":412,"mtime_ns":1780201410215906642,"hash":"fb1957d0fe87f22c37ba5bdaa5f3bf2bb4a40685a21a05dce98326581bb4844b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_pool.py":{"size":3725,"mtime_ns":1780202237342131933,"hash":"0f26ac2bcb585241f25302787184db4db422934e5d896ca25bbe7efaf61d92c4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py":{"size":5642,"mtime_ns":1782649310467813967,"hash":"f954dc5479f42a52fdb3f05ad9076fdbe43e569bae85299fca6c8f37c7323cde"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py":{"size":3104,"mtime_ns":1780406386885207867,"hash":"a59df3aed2c976904e3b5325fedd1621435b322645aa71349f3356e0cdc17424"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/oss.py":{"size":1584,"mtime_ns":1780201410212966513,"hash":"9349799b02a3531d8e1b46f9f70d3b6630afd7306663c779bd11f25448a16013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py":{"size":7446,"mtime_ns":1782687666050313280,"hash":"e0f2069c43cd272e5f061d30b47a42140ac37aa26379985fc781f8a3851aa44d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/opportunity.py":{"size":9391,"mtime_ns":1780242127112297110,"hash":"2e068961824a1d3ec0da0a94a3c494b63582b3251e5f4e030ce3e12897e85002"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract.py":{"size":10565,"mtime_ns":1784195323916483606,"hash":"45d9dfeb58bda22227fcd242c738086431616466bb8ee9f1466927d75d4bec48"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity.py":{"size":42231,"mtime_ns":1782687666592409903,"hash":"75f54438002e070076fe37ec2211c5fd67bf4aebd2607ac94db15e30d6f634d8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py":{"size":92433,"mtime_ns":1783763318740360571,"hash":"b2362db2f2df750afc1c2263f5e6ac1ccd5daa8b93ad5650d56028f452597837"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/monitor/__init__.py":{"size":1,"mtime_ns":1780242127108406092,"hash":"bb5b318d3cb224c50a2e0286e145f89ea7278437437fd17d7c865d67ad148076"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/monitor/operlog.py":{"size":1069,"mtime_ns":1782699353340106185,"hash":"b9f0a382f8990f69391b26bb75b4538d141d6adadc4260fecaa8b33cb44c063d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/monitor/__init__.py":{"size":1,"mtime_ns":1780242127112307360,"hash":"0592c62ce1172d93aca98cbd9aaa54b9c2668022abf3581249516472db312293"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/monitor/oper_log.py":{"size":6673,"mtime_ns":1782699352542520022,"hash":"0586702734f693ee099af38d407c71cc0a840153f93174699c5a5201e0a9acbe"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/monitor.py":{"size":2789,"mtime_ns":1782790854865860510,"hash":"5c13164e49d7ecb6836cf8e65a705fccd518399b85d3be2318c9581a98bacd51"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/clue.py":{"size":9417,"mtime_ns":1780215022189075651,"hash":"2676afaecac4bb6da185674a9421dfbd40834ca21520adf66bb6b175fb728677"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue_follow.py":{"size":8493,"mtime_ns":1782687674053739962,"hash":"54881f876d1842ee4a344d049ea4b5bac18b243535338077cb3eb3ec8b60e9c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue.py":{"size":25820,"mtime_ns":1783155705954031080,"hash":"3526af7e7e79d505911690355890ccdb3a1c30d302534ffdc8626a454cc2499b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue_statistics.py":{"size":11229,"mtime_ns":1782649305846991404,"hash":"fbc3b4f3356256787839cc5b2a6f8dff41dcf9eb27c791e427e816e3ba14e094"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py":{"size":10069,"mtime_ns":1783821986040417425,"hash":"06c9f3deab3472b20429c12a618ae2d4d6efd3afa2353ac44cd52651a596af4c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_product.py":{"size":10346,"mtime_ns":1782687669972916544,"hash":"40b497a41ce4003e128dc305abedc54e01dbaad8a8f7bc1ecec1662a3953a1ed"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py":{"size":9594,"mtime_ns":1780743830255260394,"hash":"b20594507aab09cebc3d540acad04547bf780cac9c885187138f5d64718ed513"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/__init__.py":{"size":0,"mtime_ns":1780242127043319167,"hash":"a66deceefc987198863f61b8aa1b5715483a69c4a15ef47cd5586c5d8e429b97"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/excel_export.py":{"size":4411,"mtime_ns":1780242127113233948,"hash":"7fbde3fca845e4705487e7f801caee308bcc0c99a9da7d0c99681a96eaaf6076"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/supplier_info.py":{"size":3679,"mtime_ns":1780242127112269527,"hash":"8b797e9dee6ac7ff806a8ea23bef5fedce648502ea23287e1b417e9f96d22c2e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/supplier_info.py":{"size":6916,"mtime_ns":1782687684650105460,"hash":"0b66714e36609688f7ce79ecda0679d20df115d2d64a0dff1cc0fc76df7dca6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_product.py":{"size":13126,"mtime_ns":1782650413581368849,"hash":"cd2fc23852ead3c4db19e34bc33c1560fc5f5d4cd7cf51b61def8bf37c44c853"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py":{"size":5961,"mtime_ns":1780745856749183842,"hash":"29c52786df396aededd0850e3c8a3a36f3fb6a952af03adbe1768dae212b6804"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py":{"size":48137,"mtime_ns":1782687675213433843,"hash":"a2ff5c5b74a2becd0949aab6aea8cf63440cce2c0bb22e1a1661463e0b2e963d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_product.py":{"size":10537,"mtime_ns":1782687676011228777,"hash":"57d9d5b4fc2bc8b68c0388a4b8a9c1322539ed7e538764fc23521916429e07c5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_share_log.py":{"size":4277,"mtime_ns":1782650254630170341,"hash":"5bfbf7ce2918f9ecdbbca6fdce17d200cd52cdc71b2dfb44ac126a36ca0ed734"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py":{"size":8816,"mtime_ns":1782650314936479798,"hash":"736353b8c2c5073d260e007a166234bd7d57958bcc738c56a1d39cfb22381180"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/crm_quote_pdf.py":{"size":9877,"mtime_ns":1780242127112382277,"hash":"fec04892fccccc3601fbeb012c92c77110496910be44102de40b4610148fa58a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py":{"size":25633,"mtime_ns":1783825326810765171,"hash":"c51b70766aae85dbc537bf5b48a2c350c73ea8e93bcad2a9660d8d45c6d0979d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py":{"size":13958,"mtime_ns":1780763324103831772,"hash":"3d7fbbb90728568a2577e52d8986ccbec8f599d04a0ef9e330939d1fe729bc98"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_contract_routes.py":{"size":29547,"mtime_ns":1783825526614169736,"hash":"95969972c0773528b91d9728d303feae5ca7187d89a49495d5129dcedffc19dc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract_template.py":{"size":2897,"mtime_ns":1780229101351431207,"hash":"935adfc7659e31201cd83ba8387bf6abcb39e7cdc63fa4692d699ed874cf113b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract_change.py":{"size":2496,"mtime_ns":1780229100306468735,"hash":"05af42f088f6cc400c1e3445d4a2c96670edf482328b361aa4f231230d958729"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_template.py":{"size":11858,"mtime_ns":1780229131746659196,"hash":"b9bdbe6a33c933aefcb25cc57e94b2fd2dc75f8e5822434f3912aa0153dfca00"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_change.py":{"size":15985,"mtime_ns":1780229123819597506,"hash":"771b110d3d136c45106dd61171c724c559b5b4bf572ea7b8c2b648f0bfe629c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_contract_sub_routes.py":{"size":25165,"mtime_ns":1782650354912882614,"hash":"b2733fd74cb7e6cbe6518fc5a5700e387601afc087be09f395f3c61372099847"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py":{"size":1122,"mtime_ns":1782219602888987090,"hash":"fb9fea8983524e3891357016b6546d982c4a82cb782fc01425f70472d4338b6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/bx_auth.py":{"size":1473,"mtime_ns":1782650780925056463,"hash":"678d9ff99b5c89575ef47e5c9e61d495f364917fd6cfb2b322c4d5035d3ba359"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/bx_date_range.py":{"size":2363,"mtime_ns":1783745556349035158,"hash":"e8b487a9bb4072356cae7b1b38496c441f9a1534d6807798448e6de97073d669"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py":{"size":4679,"mtime_ns":1782003396630684570,"hash":"bc3f798cfbc359e0327d72e3c0513fe9cbaee196d0d85bcf6567cf5df4211d97"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/bx_models.py":{"size":16644,"mtime_ns":1782003187247224106,"hash":"37c7372f38d76f1020d31ce8ca9e7f0cb3bc3c204a50deb092b494ce8c983fbf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/__init__.py":{"size":81,"mtime_ns":1780750556881734563,"hash":"07c3422f745afbff1c8162b3782fbb4b8de65084e7e9bbcf45abb9d433d65f98"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/common.py":{"size":1547,"mtime_ns":1782003187605255900,"hash":"a75ca6a0d92f93408eee00cc5053206d28a545512e4cd0f186be9e00e3346ab1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/__init__.py":{"size":777,"mtime_ns":1780751360180065853,"hash":"3525eb716c238682a07a116818d318b8a494fb24b9cefca5114d30bc50d095a5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/expense_item.py":{"size":1668,"mtime_ns":1782688293668634639,"hash":"ac07c7b05fe990e743dd5b4e96a85b59431479ca11b98cce7c340a93dbe99ce1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/workflow.py":{"size":1677,"mtime_ns":1782688293973889288,"hash":"f683e5bb7a45d0bae3b3f262c201453155eaaaf2c8d7f14f567a14295a68d2e1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/expense_item.py":{"size":3362,"mtime_ns":1782650913604714906,"hash":"c6a142011870516822cf11cff16a86c56908f00680eb7c6219c8441c9b63632a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/workflow.py":{"size":4984,"mtime_ns":1782650913326708063,"hash":"84285aab7499ce9280156c5814b2dc4fff42841803dd673cc6bfdc6eed498283"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/expense_item.py":{"size":4366,"mtime_ns":1782650887981843546,"hash":"15321fe1df77a555af579474434e3b401bd042555d19ea81a066ef754915612b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/__init__.py":{"size":34,"mtime_ns":1780750594045301798,"hash":"583b12a6d2c9fd4411b652741e73324df9256138946ee873a0ed03169f8dae2a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/workflow.py":{"size":5446,"mtime_ns":1782650919964956073,"hash":"1d72733147e0ed997094d7f92d1c1f5e1e108093a50e8e523b3b016c3dd676e4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/base.py":{"size":3931,"mtime_ns":1782687617846731919,"hash":"dba80b8f4e26bc59efd2b2aad6bd430c0315133a98bfbbe1b93113b60baba8b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/attachment.py":{"size":525,"mtime_ns":1780750871480000584,"hash":"f287214c72345e41d9d122ca55b4d3e279635d99cbf10ed530de0ac32374f31c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/advance.py":{"size":4603,"mtime_ns":1782688296833335474,"hash":"74b6e8bf6906518f80f16f218f1af74d2c356a6f392a4e8a69466f4179ce0b92"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/attachment.py":{"size":5758,"mtime_ns":1782790898570675189,"hash":"e88b9181e7c1a839074656ce2260cd6f693821402a24f08dd1c0ef3c160f8fa8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/advance.py":{"size":13370,"mtime_ns":1783745567004734594,"hash":"3097a75d86d09951d7de7df10a32f5aedcf6ce11279bdf6dfe0005ec9d8a7be1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/attachment.py":{"size":4582,"mtime_ns":1782650868959755751,"hash":"3a6480cd051bd1af733a67e5babcd64f3f74cbe230d72364b599cde8b0c67a5f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/advance.py":{"size":24037,"mtime_ns":1783746967707088251,"hash":"4834348d099b32b70d14e1b56279dbb385f42519646351d8cb220da8c5fe27f1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/storage.py":{"size":3656,"mtime_ns":1780750869826924187,"hash":"ac98980bd5b6cbab6a9394b6debc678b050cf4df969eccbc5f2d419b615937cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/reimburse.py":{"size":5638,"mtime_ns":1782688293517624966,"hash":"aa47d8e87982a4077ff067dff2955db9eb67171d6368bc636c1eea17ea7682f1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py":{"size":15431,"mtime_ns":1783747621462206303,"hash":"dae4bfc4be69ca2f3ee8fd2e9e3bd6053a2904c8f7a0c83e536f2dd71874f918"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/reimburse.py":{"size":34743,"mtime_ns":1783747614591546341,"hash":"ba8f3ff0304a6668bde3c2e6c3e15427153389f7320b943fb261d1d947b41d1e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/payment.py":{"size":15715,"mtime_ns":1783745581266319098,"hash":"0d0b8823013a63f91baee0ea19b56f203e70fb1e450f873cfeb634a6cd017f54"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/approval_cycle.py":{"size":1296,"mtime_ns":1780758200904804714,"hash":"308c087d94ac253bfc7e2d5455a06ae8ceac034adda41b5c61dd315dc167efaf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/db_models.py":{"size":8110,"mtime_ns":1782219570945208920,"hash":"249bb0971c263436095a6324457557b6ac5cfc3ca5ac9bc9499a9b4cd21d42bf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/__init__.py":{"size":544,"mtime_ns":1782011200096708592,"hash":"822060230e155b8704feb447b908c226d4c53e62b3e6df65c89dc3c7a0e6e07f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/__init__.py":{"size":0,"mtime_ns":1780805614160787709,"hash":"2cb780fb722e6dbf2ecea6f6fc19345fb453e1a3c40694ba0ff7465eb7cf7d33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/base.py":{"size":2754,"mtime_ns":1780802262496001324,"hash":"d2fd88aa376aa5914125381cf61a4ae0f343657d6bd7db1f9fe1254e7aba5b2f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/vehicle.py":{"size":591,"mtime_ns":1780802980783200520,"hash":"d87e4262b344e02a7be21534e382e7b75f5543f599d673ddc046134ad0e8ba4e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/__init__.py":{"size":84,"mtime_ns":1780804619867600032,"hash":"5193d61f7204f825551f083e79722805fb2abfd953bb552e80950bb3ff9784a1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/vehicle.py":{"size":3780,"mtime_ns":1780802985736476363,"hash":"aeb49bdd49cb5091c37275b856396e75bcd24557e3a1b58ef668910b1b0aff64"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/vehicle.py":{"size":4776,"mtime_ns":1780802999039302982,"hash":"cf32c66499ca86285561b573d222837ecc76c3fa51b0091b802485fbde8e2bf2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/plan.py":{"size":1788,"mtime_ns":1780803836065964235,"hash":"30452b2f7fa19f5677475ce08b3e355dae2440d80d2e9049f8417de01d822863"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plan.py":{"size":4167,"mtime_ns":1780803836065953735,"hash":"acac159dedfacb36f02982b700b2a7c7a8fbb4644eb89c3b0c13871941917864"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/plan.py":{"size":9619,"mtime_ns":1780803836065902943,"hash":"e311f2b8b5e7785db764216fbecfd2830a11569ccb827a00c8bd3a2ba3804383"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/inventory.py":{"size":3948,"mtime_ns":1782219604456801044,"hash":"19ea80e59a1309518ad6183a6b0b8751401f4724d7b5101d47defc2417ec36c8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/inventory.py":{"size":16423,"mtime_ns":1783156035144390497,"hash":"901602a8fe362aec9b89ac6f2ee578f1eeb105fcf12a1a6c3ff4ef98f4ad1ef3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/inventory.py":{"size":10663,"mtime_ns":1780803878293678536,"hash":"e38abdd78010b0e96dcb65ed826de03a752b40e3355546ed06a4b07640cf7013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/weighing.py":{"size":5347,"mtime_ns":1780935341753643087,"hash":"f734c66269b713a840d7ce6c1c6150bd2dc00b114b09963362202d119c82301e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/weighing.py":{"size":14940,"mtime_ns":1782687688848020877,"hash":"71d143eb05d0d3f785f5962892bde64dee3c2937139c975b52af62628f308d46"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/weighing.py":{"size":24042,"mtime_ns":1780804029884092079,"hash":"bc9d5cb59bf90597db0e0a1c9afcef5c2b429c3945c92be34bfdc1e77d26ba28"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_auth.py":{"size":2500,"mtime_ns":1782790853674329877,"hash":"4988b71d4e54b326c333872b34743914d67b15fb753c1b0231e9b00b366458a4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/plans.py":{"size":4876,"mtime_ns":1780935329287069452,"hash":"474cb68905249cd5a6237443a412d49cb28af2e0cec61c9bf5c34ec54db1240a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/master_data.py":{"size":619,"mtime_ns":1780925759582999052,"hash":"6f6b2c2e1478efce74b8c6e6fb058d914b8b79adfadf2fea2d91cb55d3f9cdce"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/vehicles.py":{"size":4748,"mtime_ns":1780925781827569662,"hash":"8f8b32dfbf4046cfa0b6645d211732596f7027d46244d9c50132425220065483"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py":{"size":17098,"mtime_ns":1783156035873015369,"hash":"bd2c8344e2ab765ceb2a2c91f5cf2facea319ae66c9097f5468a7f5d753b67dd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/mappers.py":{"size":6955,"mtime_ns":1782219619253708711,"hash":"b9e97f66a0a248d06c2f960c3f5ac4fb3369cc976c16709227dee0cc1513d221"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/weighing_logic.py":{"size":4110,"mtime_ns":1780804818442134500,"hash":"468ded88a0a4a397a96884580c88c59291c0b6effa897f08f1b3fea7857f9191"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/dashboard.py":{"size":514,"mtime_ns":1780804990870580151,"hash":"f2c1b1014d0d769abf32dab3783de65fe7fe327c956ffbfe44adce94542f8892"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/dashboard.py":{"size":6576,"mtime_ns":1782651340330906738,"hash":"753703fbbe8ddc02d8fbdae78df4abd1448f5ce5878e2f0390111360fdc300b3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/db_auto_plan.py":{"size":949,"mtime_ns":1780805095845033710,"hash":"9f7513cd2e74f9ddfe5cbee4ae58a40ee7a58aaaff051d590b19a6e1b08bb46a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/plan_helpers.py":{"size":386,"mtime_ns":1780805092108105489,"hash":"5c6ec7612b204e1dcb65c5daf03fa7f8ffa7710cd1ace63be4f7ca00cbf318b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/auto_generate_plans.py":{"size":4699,"mtime_ns":1780935400833764213,"hash":"d0760cb8155d60e18040bcf6fe41e6964640a3dffd6f4b7bb68678c9f31ab29a"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/run_db_auto_generate_plans.py":{"size":1043,"mtime_ns":1780805102157096922,"hash":"3cd8f15b677f21b2873ff384fc0581da264a53ee4318da3c8262101156e3225b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_dibang_data.py":{"size":20215,"mtime_ns":1782011225157870526,"hash":"28a49a423a784e70bec424b702f3d58f69b6f847153c061414efdcdabb660d0e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/inventory_id.py":{"size":2574,"mtime_ns":1780934632326984469,"hash":"c5269cbb273d987c296143b83f1287762ce67d7ddeccfb0a72bc70234bad9f12"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/product_helpers.py":{"size":2106,"mtime_ns":1780935268573313971,"hash":"cea6b0697eb64081a79d18ab95f0f0477714505a7aef82a41672197b15fc8b14"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_db_inventory_id.py":{"size":586,"mtime_ns":1780934647395760353,"hash":"71a9617d5d0f2c23416686eded204b4c941b47afc3fd6e3facf0c75401e883d9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/pl_models.py":{"size":61386,"mtime_ns":1784032430468998611,"hash":"e23b4653b806a1917eba187d8a3584dff598ad74bc21c8295c179abf0bcfe17e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/plan.py":{"size":22053,"mtime_ns":1783754594278544472,"hash":"f3a69a96b7916cb34e23e673b3155d83f7d9698b2582cfae96dedc392da8e6b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/transport.py":{"size":17945,"mtime_ns":1783211732481443217,"hash":"477ebd0c4c084cf8bccd10865e4703b6b34829d30b791c32232d96c1bac2947f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/__init__.py":{"size":5012,"mtime_ns":1783242582112287271,"hash":"1dced39f250919efc4aa798daee1efef3adcca054c7483843536c455919ff106"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/freight.py":{"size":11275,"mtime_ns":1783213205154827373,"hash":"557f9e9f06ab6f18eb33f54a579fb8ab0f6992d9b25bb530a2ec49d5b2365708"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/inventory.py":{"size":7742,"mtime_ns":1783242580346813026,"hash":"9b57e84bea4844ce93220773544064ed6979c5823b07831bc5fe734b6dc860d3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/plan.py":{"size":48150,"mtime_ns":1783945795484267217,"hash":"a9a876816af12e43b3fa6b9dc748b74b7107f0cae590e68a2a789945617c620e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/transport.py":{"size":33087,"mtime_ns":1783155250374329483,"hash":"6f7703d37ce761406d42f3be4e53ee85be0d3e43e5b880401087dde47ec6608f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/__init__.py":{"size":1243,"mtime_ns":1784035957226411568,"hash":"7d66d74042036571b769e5364616560597a3c3347cb9dea6cfbe04c40483b5e2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/freight.py":{"size":10543,"mtime_ns":1783760751060550793,"hash":"2d64ca83553dbfc928887171941761114c5db012b9c4a01d34e2b522902bac38"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/base_data.py":{"size":33513,"mtime_ns":1783849851800999450,"hash":"133db64dcfad9ae687b90084eb8f1b5f713ebabce852bba26b600cab52e51c50"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/inventory.py":{"size":13188,"mtime_ns":1783242583174353699,"hash":"da03959cdab792ef503edae6ee27e45f9b5a8db1c63cdbcd97bafa85acc9be71"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/check_pl_json_aliases.py":{"size":2918,"mtime_ns":1781880510604174541,"hash":"b04c5636779ecbcb3082eabdbf42db846cc31f7376129845820c6a4c1e829104"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py":{"size":19762,"mtime_ns":1783849843323086946,"hash":"21d29a63b2dbd9178f2239d109c4e71e668c2caf85788dcecc34e7533f0df4e6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_personnel_service.py":{"size":6707,"mtime_ns":1783845044115228598,"hash":"34f3d1d723890e294aac765a66d7e86ca87f4288f42cec674bb9151de091fe22"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_cert_service.py":{"size":7694,"mtime_ns":1783849439910099822,"hash":"7bb0a6d4dfdb1ec11e72e971873791b8e188939e7c6b7328a0a2f4f8986c9d1c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py":{"size":39798,"mtime_ns":1783768766029953703,"hash":"0e0620d2878e4b28c560daf8095d30e8e8a281653d40baf01ef94e899ce114e8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py":{"size":9697,"mtime_ns":1783209147246415813,"hash":"aac3cfd1a30df824d1a4867c5b358e3155e19a051dbaffbae89c995b55767a8c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py":{"size":15310,"mtime_ns":1783777749440894312,"hash":"c506eb84c104ce63b98cde5b16644f16ddcf4e3aa335089bedcb4c267d21fc0d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/public_inventory.py":{"size":1492,"mtime_ns":1783211660985345577,"hash":"ed4e21307ac463410d296a2f8cf53f8e0429187344537bcf1e1212a7affa06a6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/public_inventory.py":{"size":6968,"mtime_ns":1782790898570930774,"hash":"79aa205d2e5e89ed45dd7b95068b93e3f6db82ee9258b0331b21d6c8ab551582"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_inventory_link_read.py":{"size":782,"mtime_ns":1782225276143253698,"hash":"6471dfc9a1fbe66223f79490a5827b2422e5ca6932305ccde6aef4b641676a6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/public_site.py":{"size":8470,"mtime_ns":1783211738132414332,"hash":"08745e00bfa7bd756fbeef7ae7a1d3bf957d6403da51cf7825def02a38502d01"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_site_link_read.py":{"size":2362,"mtime_ns":1782225460524562610,"hash":"3b9e1b93d3c4375b6b3adb4476ceb0df356654089d994aef4fea7e4f29266c06"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_transport_site_service.py":{"size":3701,"mtime_ns":1782225248175867714,"hash":"07585f13aaad965c106e88ac26f5f8c58852c0c2bb0bdb91820185133d799219"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_freight_settlement_service.py":{"size":47560,"mtime_ns":1783213204589333188,"hash":"53a61d4da0cd2e2d0bac74abcca13de3f3d506b603453811d8f1cd53fa50b358"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_data_scope.py":{"size":4660,"mtime_ns":1782649048011371782,"hash":"9545dc65fac7e13bf07ece2ec828ec5957bb115e23d0ac8c996f9c70362a4ecd"},"/Users/zlwu/work/00code/shanxia2.0/backend/DEPLOY.md":{"size":2574,"mtime_ns":1782639356701497576,"hash":"6989c30ab5c99ebf488137e31e5561b4a00d36060716dfad3fc247b673538818"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/data_scope_helpers.py":{"size":3358,"mtime_ns":1782650085670691361,"hash":"b0aab03bc7b3afb2faf39410e9881b65e6a2eeecba592d1655b5b9359fb4dbdd"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_quote_contract.py":{"size":12491,"mtime_ns":1782650163950860693,"hash":"eb6b944df35fda5edb6675b69b00f5a83a75fd78785251d1e81e1788ed439cfe"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_api.py":{"size":14409,"mtime_ns":1782650231443625388,"hash":"fb4cf4178a4b7c5530999f0c950ed38310dfe81b3168c10117849d6f512be01d"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_api_calls.py":{"size":3345,"mtime_ns":1782650279067732462,"hash":"57732d0beb80ee17b533c78ce0250967fa83c68354ea9d1972275ba1fbc39007"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_data_scope.py":{"size":801,"mtime_ns":1782650506729785291,"hash":"0f0275c56a43603e69a030dd1d284cfc7982a7636423cfff6d0e692eb4631cb1"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/apply_pl_data_scope.py":{"size":10945,"mtime_ns":1782650517176615737,"hash":"928fe2112c9fd8bab4da7f4fc67d6d247c78187ca3b1a4146cc2fd3d9e04697f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx_data_scope.py":{"size":2394,"mtime_ns":1782650938092205819,"hash":"1e8e1dbdcf4bc68c2e30b99015e930bb9522bd1f633e95604ec6a62bdb2b43f3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db_data_scope.py":{"size":796,"mtime_ns":1782651142571517234,"hash":"ad4e206ae53e25247ebb004e0ef586077a6e7df0eac7b14973c26b186cffb2eb"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/delete_guard.py":{"size":3572,"mtime_ns":1782687610196676295,"hash":"223d91c51a1677b6a4b7802d5571af14d5cda8bc45e4e757b1f2150990a69bce"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_delete_guard.py":{"size":1565,"mtime_ns":1782687611517772849,"hash":"5e2a45f63b7296e3a10dfbd4b4716e54370e1439248881d6591cba5c9f6581d6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_carrier_service.py":{"size":3479,"mtime_ns":1783848338604396640,"hash":"7d12991ffd2e3d7b768aaa587d7f9ae1ed4d641f65ec3f053ed103fc74a5a005"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_recharge.py":{"size":6299,"mtime_ns":1782694169098881801,"hash":"4d5ab880c0c3ca91b485e1ba53725005b9f89fe205780d58a738c861dbb7e6f8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_recharge.py":{"size":8824,"mtime_ns":1782693867411719704,"hash":"f084b6fb3e80de0455ee9cfcc857ae5814b79497786367380f3a375b16c4bf85"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_recharge_service.py":{"size":22641,"mtime_ns":1783760938743438422,"hash":"a4a9377a8243e30dd7d6a8a175c68525009465fdebdeb01230849156dd8b59f4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_maintenance.py":{"size":6563,"mtime_ns":1782695447503836332,"hash":"c34b79f5bcd004c0f6353922492883e4b08e5a6bc229f0265c9af850d235848b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_maintenance.py":{"size":7793,"mtime_ns":1782695447583143336,"hash":"79033735d527926ac082200de0b89a122c53db3cbdf5fb33e3cc69f74dd017f5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_maintenance_service.py":{"size":23307,"mtime_ns":1783761151873696556,"hash":"0c7aa346d9879347d6a98c435fadc47873907ca0774147b69acf0d392e00e58b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_urea.py":{"size":5609,"mtime_ns":1782696196169930337,"hash":"71b7de2f90b3c7c732b59683e5cd4d858288121414a1ff2679c039299f5fb024"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_urea.py":{"size":6696,"mtime_ns":1782696220189638136,"hash":"750ecae5cdcc857031e618b87ffa9b28607bd47e72ecf6dc7ebbe51003682df3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_urea_service.py":{"size":19556,"mtime_ns":1782696213546483763,"hash":"03d389e791e5fac9a5339d1259d342952fced97712c3657e8f791426de32743b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_decorator.py":{"size":5312,"mtime_ns":1782701254052728785,"hash":"e476146985da29ad8cb77064d10314470546a8a52f6026a75fdbadd3fee34288"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_infer.py":{"size":1767,"mtime_ns":1782699326717654441,"hash":"4346307abeb03020a7069f560556b9954cf50203efb6ac65b0a4b9644b6a9b2d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_context.py":{"size":868,"mtime_ns":1782699327268762002,"hash":"064c356f3f0fbabc454311445f02d375b965c2c055ddc51386d4dad50ac3337a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/redis_client.py":{"size":1691,"mtime_ns":1782790834895168051,"hash":"e5d84d7433ce745da7a37fb46dff5d5eb6ae027ef0efbf406da0c9c7fb6089ad"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/resource_snapshot.py":{"size":3823,"mtime_ns":1782793446819247296,"hash":"2d65c990d058d22010f8d4449652eb752c297a046b5d7b3ff6755c3e1cad0cf3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_transport_resource_snapshot_service.py":{"size":4861,"mtime_ns":1782793450356380638,"hash":"6f94dcb582fe725738a54469e461aa0124b9754b2141cb78d3859ff1a2f25ca9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/datetime_parse.py":{"size":929,"mtime_ns":1782905360746020898,"hash":"7a4eac85768cbeb0ba76f7f478ddadeeacab2498cd9be4070a76e1cfad693cdf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/transport_address.py":{"size":2604,"mtime_ns":1782906539731495489,"hash":"6548b4b0c8c1d8096ce96ff1d5b523c67b12300f9a3eac66570b0256478a1120"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py":{"size":6875,"mtime_ns":1782907484528042124,"hash":"7880a37b53dc2e88534ca5750097792ee7e893c94d87bf1eecd8b6055fbba181"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/pl_cert_expiry.py":{"size":711,"mtime_ns":1783208067000967398,"hash":"7c02dbf83fad89c7da757965b545bf77f37792edd0d01d3ed320349b0b60a50b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_delivery_slip_template.sql":{"size":217,"mtime_ns":1783231586212866839,"hash":"e05e3fe7255e6c8a88aceb1aa53d743a4888a34c9fbaa4449c1cb8a275744d68"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_slip_template.sql":{"size":191,"mtime_ns":1783219958449266456,"hash":"e2a17c3df7be5cc0436ef979a48de81eecbe99c03f43662f4b0954a09dfa1305"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_template.sql":{"size":215,"mtime_ns":1783238744737524455,"hash":"24cf12e21f9f61f49c38e654c0ca655f56a21e5e2364e4c2ca4547dad583272e"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no.sql":{"size":203,"mtime_ns":1783240340132373787,"hash":"de9b3c8e1617b9c345b2d4005e4a627f10ded089db89d35f0b389b333b840c08"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no_format.sql":{"size":571,"mtime_ns":1783241697391655899,"hash":"61fc58ebda64c5d6be6bfd374dda99c7134e38dc89031527f71916625c4e36db"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_product_legal_use_cert_url.sql":{"size":1180,"mtime_ns":1783253793703960795,"hash":"01105ec581050477087d9bf65528cfe77ce0026d0fb682cba8014c4cdb046db7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/menu_badge.py":{"size":247,"mtime_ns":1783257567212910729,"hash":"88c31e5ef8cee73327a1a0f36ea7ae0e61fa8f1ae140ad95ed0c0b9c2b4d05f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/menu_badges.py":{"size":1203,"mtime_ns":1783257582921626135,"hash":"05dfdc446281abd9c3b273ebae2f9cbc4efe681fdc0ab288a77903e9e2bf83c7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_menu_badge_service.py":{"size":6108,"mtime_ns":1783258109621359209,"hash":"aec342e2370f584c5ed0024bb08a8346c70e1827c09ab456b4b06e9dfc817d8c"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_bx_menu_names.sql":{"size":454,"mtime_ns":1783254856670799736,"hash":"d40ab4c556ab285498f4689c21736832deddc754a9a2b7d806e870ccb39fc9ae"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/seed_sys_menu.sql":{"size":82266,"mtime_ns":1784119136237565207,"hash":"e0c15f9bd4525b6e447a7e8da3aa6bf93c14c47a1b99dc5cb4bee9dfd1a60e8b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_menu_groups.sql":{"size":6367,"mtime_ns":1783256049450807031,"hash":"5f6964d1ea2712d3d72c8f43f08c16597d85fe79f3f54c8be99962090d6c2b67"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_doc_reminder_menu_group.sql":{"size":1562,"mtime_ns":1783256051207137180,"hash":"82a0ce8c5293f5051967633c1c2e0a1dc60e1fc7c97919c9e0866246bbcbe3d1"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260711_hide_vehicle_urea_menus.sql":{"size":269,"mtime_ns":1783760394518896877,"hash":"a5f66647cdb4f0f403689b47b804f8099d7d710753823ef3ddc5e7a5a9ca4ca8"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_pl_dibang_plan_quantity.py":{"size":4258,"mtime_ns":1783777759829460303,"hash":"6af8eb3c1f6c7ad34cd62f1e82e9c6b96737ffd48ba74dda7c5f888c55dd11cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_cert_required_service.py":{"size":10503,"mtime_ns":1783946967244318920,"hash":"07991890446a106b2d520e5e3c65e27af90c13d00945516ef1ce9bdf2e389879"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_type.sql":{"size":1662,"mtime_ns":1783843576747470605,"hash":"24fcd156f97e2bdf2bd158beb5358fe7159874783a84716c6c18d2565cc8ac1a"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_affiliation.sql":{"size":753,"mtime_ns":1783845019912997576,"hash":"6d450d264921f43c4e74ee4a2bcfc8335d16f77d9e0413267389741a92bf4eb5"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_add_finance_dept.sql":{"size":1697,"mtime_ns":1783855927743333340,"hash":"4ce457089ead5c063ae8e1a6d6553416deb43c54a7edddb574ee2572390aba99"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/setup_business_roles.py":{"size":14256,"mtime_ns":1783858477739135462,"hash":"ac12df2cf75826931c85f4deb3ae28614e31ea825d0beb3cf351a8d4f5cb1071"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_reset_sys_dept.sql":{"size":4517,"mtime_ns":1783855538627076795,"hash":"3795d6127a4dcf55d406be0fe673b8a83655723fe1f07b855e6fe45823d489fa"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_users.py":{"size":28602,"mtime_ns":1783855936414773748,"hash":"f5626fd3ca8bbc16275862080365c3ea2a27fd0f608e2243a284493762a8f735"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/verify_web_menu_codes.py":{"size":2535,"mtime_ns":1783858485781974173,"hash":"16c9c072b5b80fb309d56823963ebd0dd1f437a3f74d7f82711dd8a7c2de86d2"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/refresh_business_role_menus.py":{"size":3812,"mtime_ns":1783858483854587001,"hash":"b2c76109936791e1f624e239b24832237fa0256b38b98578e39825ac215fb166"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/renumber_crm_product_no.py":{"size":9071,"mtime_ns":1783861492796558653,"hash":"320c63801100ea8e9fb62abfb44b3487139377e293310593a877ab2d06e9d2e3"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_product.py":{"size":13287,"mtime_ns":1783860925852062495,"hash":"3e5dd462f2ad6218d2547b66db741132d0179037e6dd3ac24ddaa02a5b970d4b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_product_category.py":{"size":15583,"mtime_ns":1783860690842141129,"hash":"9cbdfdf3335a366aebd0a605431b3952ea9aab26bd564d075d501479ae0b20f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/compare_dict_snapshots.py":{"size":11072,"mtime_ns":1783860128258640426,"hash":"cfc98cc72c5e387317cfa0a7670c47067fffe8f2e540d5cd580ee459e173e4ef"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_sys_oss.py":{"size":22858,"mtime_ns":1783885816251409459,"hash":"20f59e7e19a0c4415bdf17cef32a31db63220346688b3dbe06bc2c52a42d475c"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration/minio_url.py":{"size":4770,"mtime_ns":1783884947929403985,"hash":"54a1bf95512c0a8b5feeb518ea3af76983bb1b0a3ba645898b07debdb2cc52e9"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_customer.py":{"size":25235,"mtime_ns":1783886258025843303,"hash":"f30d5a50a28a1130325a9d9db88586bcae9e2a39434f077ded25f847af2ed66f"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_opportunity.py":{"size":23720,"mtime_ns":1783887271166904779,"hash":"f98964806f32c3020bdd7d644d930760d6ea3ad5162d5f1d6125494263dd5598"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_payment_invoice.py":{"size":13601,"mtime_ns":1783888353771580120,"hash":"c4af77164dac9ba4195c3d239c9679ea367b92f5f7500139f3b59547525af24e"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_clue.py":{"size":18423,"mtime_ns":1783887050391179085,"hash":"72b84e497176bc63264c26d891c591c839f9dd9788988043c5752413c1b62a09"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_bx_data.py":{"size":32783,"mtime_ns":1783888844450695833,"hash":"16751fcd542e209535216a0516d78b62eecb81732d7fe0f9ec051fdf811e93b6"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_contract.py":{"size":36188,"mtime_ns":1783888258230435217,"hash":"a6269c8eeff19f4ae8ff7d22a3544ebc4a1858aaecd59583e6afd140a7fa766e"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_quote.py":{"size":27580,"mtime_ns":1783887475224438064,"hash":"4ac389eb6cb7437d4f5e8203d9908efec9836046ce8628a5e4be1f8b8ddd52cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_pl_personnel_cert_required.py":{"size":2829,"mtime_ns":1783946968430310316,"hash":"e89b3aa798794dc77085af5c4b880cdddcd2c0590c3cc3414f8a5389fd5f6d93"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260713_pl_personnel_cert_split.sql":{"size":3436,"mtime_ns":1783946793684378982,"hash":"ce61899ec7e13f41de08dbc923dd1ff2a1a976603d13c8f09aa6fd5be9c914a2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/ocr.py":{"size":1889,"mtime_ns":1784035957225824939,"hash":"1de70651a8c1c9e0e208bdccb45d0b9c7e7a0f8f9a663941bdbd5ae278234b1a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_ocr_service.py":{"size":11166,"mtime_ns":1784036700055450000,"hash":"6f233150e253813a7c9da30e6e5d6046fdea01baa67c2589a332fe511ab795f9"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/test_aliyun_driving_license_ocr.py":{"size":5130,"mtime_ns":1784032210609057675,"hash":"13d43c9144c3795b8870fbd900ed14f97ae22ee043e2c265a5151525666abebe"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260714_pl_ocr_usage_month.sql":{"size":1270,"mtime_ns":1784032423540552834,"hash":"d7018a4e5be9760846731440be98e53584d8e1461fc4ea54a0c8db61c666e7fe"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/price_letter.py":{"size":3994,"mtime_ns":1784122554297827011,"hash":"6cd75fdbbd6a2dc65cf0b0b29e6206910fbd86f8bedf05bb56a8835130b81829"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/price_letter.py":{"size":13292,"mtime_ns":1784122560635390924,"hash":"1edbd17d41fcc4205faf15de5ce47aecc5459a39d06a920689379a65cdb9c3d9"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter.sql":{"size":11104,"mtime_ns":1784122573332360310,"hash":"548dab479fcde4bf1628ca2093fd7840720473a774a5289b55bfd4f46b902153"},"/Users/zlwu/work/00code/shanxia2.0/backend/venv.bak.broken/bin/Activate.ps1":{"size":8593,"mtime_ns":1780108930820914793,"hash":"ed2ea10761f2798e8980084d754284d3fcb94f1284ae7085c35c16108fe24846"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter_bill_price.sql":{"size":901,"mtime_ns":1784122547991214820,"hash":"11a4eb6f3b4d89c1a5141bd9a85e931517984b77ac213f5842dc590f928fe1cf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/__init__.py":{"size":21,"mtime_ns":1780113982000000000,"hash":"60a04ff08fd97084e83ea809fd13feda6d2848be20ebf309e31fc1dad7523230"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/__init__.py":{"size":665,"mtime_ns":1780804649000000000,"hash":"f720195209c1783d8b2526220a086c2ae2769d76a12bd7df74136f5432c7b75f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py":{"size":54082,"mtime_ns":1787220370865962181,"hash":"e465a447ffe7f9df496a20ccb8b7b04c600cf6599fbae6c7bce6e96df94c2af3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/__init__.py":{"size":827,"mtime_ns":1784980394000000000,"hash":"8bd7939017216a2b3c9ea7ed910167f7baf5c02cf724c10b392f6f286f6368a5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/advance.py":{"size":13404,"mtime_ns":1784992736000000000,"hash":"e09d555bad6b1a0ab289d045dda5a4231a54316e34616f60b03f724f9152e73c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/attachment.py":{"size":5758,"mtime_ns":1782790898000000000,"hash":"e88b9181e7c1a839074656ce2260cd6f693821402a24f08dd1c0ef3c160f8fa8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/expense_item.py":{"size":3362,"mtime_ns":1782650913000000000,"hash":"c6a142011870516822cf11cff16a86c56908f00680eb7c6219c8441c9b63632a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/payment.py":{"size":15715,"mtime_ns":1783745581000000000,"hash":"0d0b8823013a63f91baee0ea19b56f203e70fb1e450f873cfeb634a6cd017f54"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py":{"size":20251,"mtime_ns":1787058336776549243,"hash":"018f973c0b7e749009921085028217f17d3e5acc21bcf0aece5df477991f7267"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/workflow.py":{"size":4984,"mtime_ns":1782650913000000000,"hash":"84285aab7499ce9280156c5814b2dc4fff42841803dd673cc6bfdc6eed498283"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py":{"size":152113,"mtime_ns":1785808418671982120,"hash":"bc92066b2fdde0314bbc39160a8f70e812c38ac3d4985eb1bc575946716e0194"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_contract_routes.py":{"size":31798,"mtime_ns":1786239377894416082,"hash":"9140626feec0f19a8138f0004d290f9d7531682fdbe03c1aa08dfc183020c07b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_contract_sub_routes.py":{"size":25165,"mtime_ns":1782650354000000000,"hash":"b2733fd74cb7e6cbe6518fc5a5700e387601afc087be09f395f3c61372099847"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py":{"size":27410,"mtime_ns":1786150042655485732,"hash":"31c6530c7713f95a1888ee2b5369a32a8de86040b83c68efc74c5a3faf75b7ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/__init__.py":{"size":544,"mtime_ns":1782011200000000000,"hash":"822060230e155b8704feb447b908c226d4c53e62b3e6df65c89dc3c7a0e6e07f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/dashboard.py":{"size":6576,"mtime_ns":1782651340000000000,"hash":"753703fbbe8ddc02d8fbdae78df4abd1448f5ce5878e2f0390111360fdc300b3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/inventory.py":{"size":16637,"mtime_ns":1785807172285029476,"hash":"e64e316ab276224ca0574ec9bc8730b67e8658459f6f0bfb4915ccad0958a177"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/plans.py":{"size":18251,"mtime_ns":1786955259140296590,"hash":"d8afadc3101075459f50f24b2a8dcf8210b31e93ca4486d6e60cbd48a891e1e6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/public_inventory.py":{"size":6968,"mtime_ns":1782790898000000000,"hash":"79aa205d2e5e89ed45dd7b95068b93e3f6db82ee9258b0331b21d6c8ab551582"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/weighing.py":{"size":15133,"mtime_ns":1785807184507708871,"hash":"69a9b973a3c30f447358a6d7fbb7aa52dbac7301c1f726e233063c51b0403a5d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/leave.py":{"size":6916,"mtime_ns":1782790854000000000,"hash":"6e03239433bbaecc54f72fa2aba2578573ae6c7fc881f287ef57dafed1a0f1b5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/menu.py":{"size":30932,"mtime_ns":1782790854000000000,"hash":"4e9de047e67ff365d17ac28d30e1baa72cfa3c651caa1b9776e225fc07da0e58"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/monitor.py":{"size":2789,"mtime_ns":1782790854000000000,"hash":"5c13164e49d7ecb6836cf8e65a705fccd518399b85d3be2318c9581a98bacd51"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/__init__.py":{"size":1401,"mtime_ns":1784428053000000000,"hash":"dea849a84ab13ec8daf7782c055f04682fb763bbfd2f184e37ace15312421905"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py":{"size":33195,"mtime_ns":1786887371449952277,"hash":"945a79914744ae3a97c0c8c042a0d87480dd5e12f403fa3a8d760f48e77fe3d0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py":{"size":10543,"mtime_ns":1783760751000000000,"hash":"2d64ca83553dbfc928887171941761114c5db012b9c4a01d34e2b522902bac38"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/inventory.py":{"size":13443,"mtime_ns":1785202430756770222,"hash":"b14a59968214a71d272cc6fbfc2555a9ea39eb8174697a75bec673bdfda1b074"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/io_order.py":{"size":12552,"mtime_ns":1785484571840900864,"hash":"c1508e2c882a86f5dc3982e2262762704a0c6ec3f15cbbca688e51ccefa6a4c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/menu_badges.py":{"size":1203,"mtime_ns":1783257582000000000,"hash":"05dfdc446281abd9c3b273ebae2f9cbc4efe681fdc0ab288a77903e9e2bf83c7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/ocr.py":{"size":1889,"mtime_ns":1784035957000000000,"hash":"1de70651a8c1c9e0e208bdccb45d0b9c7e7a0f8f9a663941bdbd5ae278234b1a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py":{"size":65332,"mtime_ns":1787278873796147607,"hash":"c654d11577248d927d79af4c155dcdba639e26b90fc5f979d5bc25c388bae614"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py":{"size":12014,"mtime_ns":1787285721229744937,"hash":"f94a7ce725bbb4452f0a43a53c98ea9258c1f1227407da51b435d241c1159280"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_site.py":{"size":10018,"mtime_ns":1785969013811688695,"hash":"e117273ae089bd4668dbe169bc3bd995d8e72adda2bcb74324df974588759f6a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py":{"size":19561,"mtime_ns":1787282688190594264,"hash":"ff37eb12f52bbeb8f2d5ce77d2db5be1fb44562559bda8c423b44ff813b91a17"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py":{"size":35423,"mtime_ns":1785967888456938238,"hash":"38786a7594853423e2258dab66ae1d034ab107e572808ec14fa5061b761c6849"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py":{"size":6803,"mtime_ns":1787277380108539843,"hash":"efb60eaadc58275ce5a14ba9bcbe8ac56e0c06441b920cef61832a32888e7ea1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/vehicle_maintenance.py":{"size":7793,"mtime_ns":1782695447000000000,"hash":"79033735d527926ac082200de0b89a122c53db3cbdf5fb33e3cc69f74dd017f5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/vehicle_recharge.py":{"size":8824,"mtime_ns":1782693867000000000,"hash":"f084b6fb3e80de0455ee9cfcc857ae5814b79497786367380f3a375b16c4bf85"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/vehicle_urea.py":{"size":6696,"mtime_ns":1782696220000000000,"hash":"750ecae5cdcc857031e618b87ffa9b28607bd47e72ecf6dc7ebbe51003682df3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/public.py":{"size":12667,"mtime_ns":1786197474707909148,"hash":"c8ec7432a0ea688d90e80af3bb4c1fc6bc69c462fc46e8fe4e629ee879565753"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/workflow.py":{"size":21202,"mtime_ns":1782790854000000000,"hash":"3950dd8d9855f5ed33a0e15883f7e442c4e26bc51672209b1e68ce0d0c9ce399"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/__init__.py":{"size":61,"mtime_ns":1780108930000000000,"hash":"3dd1842ee59b0c804176b03b4b8a323bd4a252b7feb1bbc32db64f3a8928570e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/admin_request_json.py":{"size":2669,"mtime_ns":1780108930000000000,"hash":"4f68b3cf84291e7bddad6ecf4bb4d29ca5e1ec246a9f7f9c4cf5909d0ec1174a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/api_crypto.py":{"size":1870,"mtime_ns":1780108930000000000,"hash":"c04b748aea86890a5971f749523c7b17dbad1ddd6f9f7f07a5679d159c984e33"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/api_crypto_middleware.py":{"size":10876,"mtime_ns":1782790001000000000,"hash":"b39f128b6612589ea6ac5babd30752e9585b3af07b82bb1ad53c9e3c0d90816f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/api_request_log_middleware.py":{"size":11971,"mtime_ns":1782701669000000000,"hash":"0b84c32828939e6102bb3647691fa8f04b1f68e0e0e9f28127374cc44e19a11c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/attachment_biz.py":{"size":1122,"mtime_ns":1782219602000000000,"hash":"fb9fea8983524e3891357016b6546d982c4a82cb782fc01425f70472d4338b6b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":7457,"mtime_ns":1782790841000000000,"hash":"34bac56e1c2cb6215f4b5fa2dc32d77d4b4abca51428819eebf4afd269cc51cf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/bx_auth.py":{"size":1473,"mtime_ns":1782650780000000000,"hash":"678d9ff99b5c89575ef47e5c9e61d495f364917fd6cfb2b322c4d5035d3ba359"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/config.py":{"size":7336,"mtime_ns":1786698748826032377,"hash":"f1c64d502228fac0c423b6e693ea4da31ddcee2bb1ad66f22bbb7509281ede0b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/context.py":{"size":421,"mtime_ns":1780108930000000000,"hash":"83a10aee67162374993c10a30bf8bb8bd9c4b35cf48f42c832415ccebd91660f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/data_scope.py":{"size":8432,"mtime_ns":1784993108000000000,"hash":"16fd3ff8a3dde7397d55829d83c8541f6cbfb11145bfa8f2ae4e28fcaf4e2f60"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1510,"mtime_ns":1782790847000000000,"hash":"8bc9c8ae62e2be2c6920036582ba448dfcd1711c41cebb62274ff6bc6ee14b0b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/db_auth.py":{"size":2500,"mtime_ns":1782790853000000000,"hash":"4988b71d4e54b326c333872b34743914d67b15fb753c1b0231e9b00b366458a4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/db_collation.py":{"size":548,"mtime_ns":1780108930000000000,"hash":"0c680e25a18244ca839a7de6ed1f4313b33bc8da118d89c463aee1b6af00c6f9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/delete_guard.py":{"size":3572,"mtime_ns":1782687610000000000,"hash":"223d91c51a1677b6a4b7802d5571af14d5cda8bc45e4e757b1f2150990a69bce"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/exceptions.py":{"size":4946,"mtime_ns":1780108930000000000,"hash":"79c997d964bca1a4f12f2b92fb1f181fdb9e2b3cf72eae39f4cc164d23794fd7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/login_crypto.py":{"size":3858,"mtime_ns":1780108930000000000,"hash":"b82d51afabf2293a9cb1fb2e5f994c383948e7f47ea95fe674686b4f3f3342b1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/menu_guard.py":{"size":1611,"mtime_ns":1780108930000000000,"hash":"3e26077288c3620a4780038b891a326206b45bffe00aca545bdae30172487235"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/oper_log_context.py":{"size":868,"mtime_ns":1782699327000000000,"hash":"064c356f3f0fbabc454311445f02d375b965c2c055ddc51386d4dad50ac3337a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/oper_log_decorator.py":{"size":5312,"mtime_ns":1782701254000000000,"hash":"e476146985da29ad8cb77064d10314470546a8a52f6026a75fdbadd3fee34288"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/oper_log_infer.py":{"size":1767,"mtime_ns":1782699326000000000,"hash":"4346307abeb03020a7069f560556b9954cf50203efb6ac65b0a4b9644b6a9b2d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/order_status_compat.py":{"size":2828,"mtime_ns":1780108930000000000,"hash":"5349e5a0745ee6734c4a995337779307adefc46f453906171988a77de2081540"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/redis_client.py":{"size":1691,"mtime_ns":1782790834000000000,"hash":"e5d84d7433ce745da7a37fb46dff5d5eb6ae027ef0efbf406da0c9c7fb6089ad"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/request_payload.py":{"size":2842,"mtime_ns":1780108930000000000,"hash":"e9937151530ab1417ef297aef59111977725cf90be2a8fa76c00a0618789aba0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/response.py":{"size":1824,"mtime_ns":1780108930000000000,"hash":"f1739352d65ea8287d76e282a59553aa8d63c97e35764c64ac378aa5bd9c347e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/security.py":{"size":728,"mtime_ns":1780108930000000000,"hash":"df0f01115064f7b8de1c81dbe9a6db39360c236610b68c33b3234a51d7f0025b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/storage.py":{"size":16487,"mtime_ns":1786075281717710498,"hash":"2392d8ccfea66b088160fb59163c663e6c7d5aab9ebdab4a515c785fdc31c520"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/tenant_context.py":{"size":693,"mtime_ns":1780201410000000000,"hash":"0a810658d894d35b9e981faa1448e1d02d617ecbe563bd711f6ce5a8f9db1861"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/utils.py":{"size":1498,"mtime_ns":1780108930000000000,"hash":"09323693661c1d4560458b86a954128ccff82bbaf6522da0b44f24da99ddf9ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930000000000,"hash":"5086070deb14d99d1a69e419b2299ec4ea2fe128de80fe321b0c3c531fea7a88"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/wechat_pay.py":{"size":23585,"mtime_ns":1780108930000000000,"hash":"3d52265ce65d21e7103f94afa1e8547aee0823b5ea6d65c50317436ac81fb4fc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/__init__.py":{"size":169,"mtime_ns":1780108930000000000,"hash":"340e3c08174d61829012879e684f6166803b88c819c58b54a16a11d210dea85e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/api_request_log.py":{"size":4562,"mtime_ns":1782699354000000000,"hash":"f233bde579c4f6c7f2fd6030878c5946fb5dd5e247efaf4fe80d3f48622c19a8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/base.py":{"size":5360,"mtime_ns":1780108930000000000,"hash":"49fdea023825ea249923b1cb02d353dcede1850158d3555a2082887925e69b9b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/biz_no_generator.py":{"size":2534,"mtime_ns":1780108930000000000,"hash":"e6bd375987e47f6ee80294686db64377938a286767bb28324f3eda2ad39ad546"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/__init__.py":{"size":0,"mtime_ns":1780201410000000000,"hash":"9b8fcaaabdc85883c9ef392b596b60db0bd3b2f1623fc8012e55003f234a9875"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue.py":{"size":25820,"mtime_ns":1783155705000000000,"hash":"3526af7e7e79d505911690355890ccdb3a1c30d302534ffdc8626a454cc2499b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue_follow.py":{"size":8493,"mtime_ns":1782687674000000000,"hash":"54881f876d1842ee4a344d049ea4b5bac18b243535338077cb3eb3ec8b60e9c1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue_statistics.py":{"size":11229,"mtime_ns":1782649305000000000,"hash":"fbc3b4f3356256787839cc5b2a6f8dff41dcf9eb27c791e427e816e3ba14e094"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contact.py":{"size":10482,"mtime_ns":1782687664000000000,"hash":"f4e3a684dd7a6c7c927e10e8e1e0c108c151b963777b85c5b74d7e7871f3a438"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py":{"size":104081,"mtime_ns":1787132857357401187,"hash":"56e31876461af01cfca87646bfdda4a11e9d552158ff83912447ed6b9fa27d56"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py":{"size":15176,"mtime_ns":1786365604770395775,"hash":"8384859847239b6379ed2694bcf4b96b06c5e0ac666a4d368ed3da8c083cf540"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_product.py":{"size":15057,"mtime_ns":1787130846141770880,"hash":"fbdb0a8ecbf5ab776ed42863ecbd66429442117a05f02c4afb835588e90b13a9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer.py":{"size":27151,"mtime_ns":1786094657376202500,"hash":"143ae3ea59ca45377aef5a66141f074d257c6097c55a3d609316829b9c09f163"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py":{"size":8121,"mtime_ns":1782687665000000000,"hash":"ec67fc7667847017a8d8b5a276f5c75328bda7fa360746d80c7890de3f6d4b76"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer_pool.py":{"size":3725,"mtime_ns":1780202237000000000,"hash":"0f26ac2bcb585241f25302787184db4db422934e5d896ca25bbe7efaf61d92c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/data_scope_helpers.py":{"size":3358,"mtime_ns":1782650085000000000,"hash":"b0aab03bc7b3afb2faf39410e9881b65e6a2eeecba592d1655b5b9359fb4dbdd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py":{"size":7446,"mtime_ns":1782687666000000000,"hash":"e0f2069c43cd272e5f061d30b47a42140ac37aa26379985fc781f8a3851aa44d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity.py":{"size":42231,"mtime_ns":1782687666000000000,"hash":"75f54438002e070076fe37ec2211c5fd67bf4aebd2607ac94db15e30d6f634d8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py":{"size":10069,"mtime_ns":1783821986000000000,"hash":"06c9f3deab3472b20429c12a618ae2d4d6efd3afa2353ac44cd52651a596af4c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_product.py":{"size":10346,"mtime_ns":1782687669000000000,"hash":"40b497a41ce4003e128dc305abedc54e01dbaad8a8f7bc1ecec1662a3953a1ed"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py":{"size":8816,"mtime_ns":1782687680000000000,"hash":"779f7f46e7ef8bfba27390d56fa071dfd3a8446d9d3b3361003b1c239f7169aa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/price_letter.py":{"size":13292,"mtime_ns":1784122560000000000,"hash":"1edbd17d41fcc4205faf15de5ce47aecc5459a39d06a920689379a65cdb9c3d9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py":{"size":38290,"mtime_ns":1786094315681124376,"hash":"0ee3854167f55e5f23e090e2679ec8d882f79ef98d660e82b1f9f2381d3006be"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote.py":{"size":51800,"mtime_ns":1786365631647346096,"hash":"0c7f4464407d643f24e55244e1024a966fac9483b0a4b30f580ad4bdee558901"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py":{"size":10020,"mtime_ns":1786365604675762048,"hash":"1ad6152ab48fb4171b11066eb0f7b5cef0b7b204c0a47432d4b1c77a47213bcd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_product.py":{"size":14114,"mtime_ns":1786184473623076262,"hash":"d38197b231dbafe35fb0e6c3dd38ab15bd88e58ab6d4904a2a00c73ef653c578"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_share_log.py":{"size":4277,"mtime_ns":1782650254000000000,"hash":"5bfbf7ce2918f9ecdbbca6fdce17d200cd52cdc71b2dfb44ac126a36ca0ed734"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py":{"size":5642,"mtime_ns":1782649310000000000,"hash":"f954dc5479f42a52fdb3f05ad9076fdbe43e569bae85299fca6c8f37c7323cde"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/supplier_info.py":{"size":7182,"mtime_ns":1784996460000000000,"hash":"2c244898e16084f533aa42a0a3b45106a99515ebf627d37557b22549fd1f0035"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dept.py":{"size":6593,"mtime_ns":1784993073000000000,"hash":"a636f1c45bd0dd0b2e6c337061f3d1ce4119b130d444d6b31bf7f1be4782fa67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dict_data.py":{"size":5379,"mtime_ns":1784993069000000000,"hash":"750a883eb752a96e26f22267171a941345201afa9d2ff243c4c4569d02a735ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dict_type.py":{"size":5456,"mtime_ns":1784993071000000000,"hash":"d7f64d813e31ed3751b6399245ba502f953644569c75dce0a98598d38b0efde2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/ethnic.py":{"size":961,"mtime_ns":1784993074000000000,"hash":"ba2c043bc078010880031293f6e2f0f01e9b820d191ff6989bf65983903f063c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/leave.py":{"size":4765,"mtime_ns":1782687678000000000,"hash":"847095009bddac2d77dcbb485bcc57cbe168ff874989c197f49f2a28675d2525"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/menu.py":{"size":7600,"mtime_ns":1782688282000000000,"hash":"36951a77088782d80500bfa6266b46a564a670e10b70af7a28cdee8c50741098"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/monitor/__init__.py":{"size":1,"mtime_ns":1780242127000000000,"hash":"0592c62ce1172d93aca98cbd9aaa54b9c2668022abf3581249516472db312293"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/monitor/oper_log.py":{"size":6673,"mtime_ns":1782699352000000000,"hash":"0586702734f693ee099af38d407c71cc0a840153f93174699c5a5201e0a9acbe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/oss.py":{"size":2688,"mtime_ns":1785469127578334497,"hash":"88d704b7041a2ae458860c7a93357cff50bc5a8164939151326c22266f300487"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/post.py":{"size":5081,"mtime_ns":1784993075000000000,"hash":"12619e8ae3e341e757e8696459241924d761161a629b2804d0e1c3611b4d6a67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/role.py":{"size":9417,"mtime_ns":1782688282000000000,"hash":"008550fe8efce5310afd3d41d944cee4b68d71763a587583f8832855480477f7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/sample_code.py":{"size":12322,"mtime_ns":1780114002000000000,"hash":"5b74838b3920f9182d092f8a1b721697f1a62e8b90728b9f54101dbb96baa40e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/site.py":{"size":6442,"mtime_ns":1784993075000000000,"hash":"a5f9e5ab9008186c0001c480bd702e6217946eedc17b2e35eb25ad06edcfccca"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/tenant.py":{"size":5659,"mtime_ns":1782688281000000000,"hash":"0192db8ac9c3de42fe8ee58324c77111e152bf4c35fd15c0b16467fe243712f0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py":{"size":14214,"mtime_ns":1783851628000000000,"hash":"aeac623e3020fee4cdd01e463ced23e4e03539a17c5b57dcbd9d88aac5a4fb4f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/workflow.py":{"size":25052,"mtime_ns":1782688290000000000,"hash":"6ca7e3b79e91356a050592b768d7a6749e1bfdb2841a208c7235899603368aec"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/main.py":{"size":7025,"mtime_ns":1786698748399431982,"hash":"2cb034baf57da51c1d07fc7d0ef3687620e16988ea1eaa8ce52f63583b7119d5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/__init__.py":{"size":2550,"mtime_ns":1786203409890983484,"hash":"5ce371d64aba4f0dc087642c3764fcb5902bc4349cdb3cf41e3d03918f99c163"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/base.py":{"size":2090,"mtime_ns":1780108930000000000,"hash":"fda71bbe87dcb29c6f0ffa9337e9f39c2c06d912df6cb75d521f0e87c7c73c6d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/bx_models.py":{"size":22271,"mtime_ns":1786953008558635704,"hash":"f5338821b8de425e1bab61f998feb6dd1009a9bee4894c8b024be4dd674c5927"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/crm_models.py":{"size":72710,"mtime_ns":1787130817794794854,"hash":"22c3da1ac23667fab64f4656bea101cd0d76c804a31ef37483f256af84a57923"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/db_models.py":{"size":8110,"mtime_ns":1782219570000000000,"hash":"249bb0971c263436095a6324457557b6ac5cfc3ca5ac9bc9499a9b4cd21d42bf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/models.py":{"size":37139,"mtime_ns":1786161240583074304,"hash":"b1515a4ef5f689b18d8a76433aaa7f10741ce7f7c89f5a825b33f6eab14adac6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/pl_models.py":{"size":79159,"mtime_ns":1786203406711664433,"hash":"98346be3b4670bef2f70481990fe6f6ad57e59c2854feef8ac91cdc8ef67c8f2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/__init__.py":{"size":1159,"mtime_ns":1780112973000000000,"hash":"4e8b0bda6680e2c8740c380b96eedb859ddc584a81bad568a18ba6beb001e480"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/attachment.py":{"size":328,"mtime_ns":1780108930000000000,"hash":"300b74c51c66cb0fbf8c9f4d84a4b7bf29dcc9b6a67d922f8e1d0df05f9fc5bf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/auth.py":{"size":1315,"mtime_ns":1780108930000000000,"hash":"018b82e42bbb055250549c54ba700ee01cf28cd753397d6c162f9e60185908e5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/__init__.py":{"size":81,"mtime_ns":1780750556000000000,"hash":"07c3422f745afbff1c8162b3782fbb4b8de65084e7e9bbcf45abb9d433d65f98"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/advance.py":{"size":4603,"mtime_ns":1782688296000000000,"hash":"74b6e8bf6906518f80f16f218f1af74d2c356a6f392a4e8a69466f4179ce0b92"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/attachment.py":{"size":525,"mtime_ns":1780750871000000000,"hash":"f287214c72345e41d9d122ca55b4d3e279635d99cbf10ed530de0ac32374f31c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/common.py":{"size":1547,"mtime_ns":1782003187000000000,"hash":"a75ca6a0d92f93408eee00cc5053206d28a545512e4cd0f186be9e00e3346ab1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/expense_item.py":{"size":1668,"mtime_ns":1782688293000000000,"hash":"ac07c7b05fe990e743dd5b4e96a85b59431479ca11b98cce7c340a93dbe99ce1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/reimburse.py":{"size":7714,"mtime_ns":1786953496310041338,"hash":"27892ee6a4d6a7ceda99609559224c7a0a9fde8913e0b339c01a561c8d390027"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/workflow.py":{"size":1677,"mtime_ns":1782688293000000000,"hash":"f683e5bb7a45d0bae3b3f262c201453155eaaaf2c8d7f14f567a14295a68d2e1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/common.py":{"size":555,"mtime_ns":1780108930000000000,"hash":"caa0c03398e54017b25cca2a16cf8d232a59739893a16e4c33b51a5316d8964f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/__init__.py":{"size":0,"mtime_ns":1780201410000000000,"hash":"a6d57250b43cbdecb56b7a9d55d29642b808be368733e14b7df2bd196f54d64d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/clue.py":{"size":9417,"mtime_ns":1780215022000000000,"hash":"2676afaecac4bb6da185674a9421dfbd40834ca21520adf66bb6b175fb728677"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py":{"size":4856,"mtime_ns":1780742840000000000,"hash":"60c714cc254d70f39b43205bbcb7fb4c563e807ddd070eefaaa952ae96048377"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/contract.py":{"size":11009,"mtime_ns":1787130826227890833,"hash":"c9e4b8e52daa747e30abf889547945655f211a8b649cb299036093914bcc1a59"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py":{"size":14744,"mtime_ns":1786094611074108908,"hash":"9c8829288e7508988352317a77a66c350ff44a06daf410c087dd695c0c05f5d4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/customer_follow.py":{"size":3716,"mtime_ns":1780201410000000000,"hash":"3979cecd62a4f2ee5dd925639572208e36b397620d91a9ce49a59adfcb2a9d55"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py":{"size":1340,"mtime_ns":1780202198000000000,"hash":"7a6b76e0e39ada0783dfbee92280e9f06299b6662b08abb13ab1b0d9c70fe370"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py":{"size":3104,"mtime_ns":1780406386000000000,"hash":"a59df3aed2c976904e3b5325fedd1621435b322645aa71349f3356e0cdc17424"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/opportunity.py":{"size":9391,"mtime_ns":1780242127000000000,"hash":"2e068961824a1d3ec0da0a94a3c494b63582b3251e5f4e030ce3e12897e85002"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/pool_rule.py":{"size":1848,"mtime_ns":1780202212000000000,"hash":"b0331e17e801d206fba2fa89df1a66d1758d850dc5547e076218e16c8211a3e8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/price_letter.py":{"size":3994,"mtime_ns":1784122554000000000,"hash":"6cd75fdbbd6a2dc65cf0b0b29e6206910fbd86f8bedf05bb56a8835130b81829"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/product.py":{"size":9954,"mtime_ns":1786094283314086579,"hash":"a4942bea509eac3ca533c903cc3a776cb3d1748ee7690366a93e526bfadcc324"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py":{"size":6227,"mtime_ns":1786171088067507315,"hash":"7b2ae18db1e5a57657f695899e15a65f52a20e92cfd40a967574f5b15dc36e72"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/statistics.py":{"size":412,"mtime_ns":1780201410000000000,"hash":"fb1957d0fe87f22c37ba5bdaa5f3bf2bb4a40685a21a05dce98326581bb4844b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/supplier_info.py":{"size":4149,"mtime_ns":1784996454000000000,"hash":"25bc81362d6365c8bd852892890f3ff0c74fd702016cb21104c3bdfa51e2f858"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/__init__.py":{"size":84,"mtime_ns":1780804619000000000,"hash":"5193d61f7204f825551f083e79722805fb2abfd953bb552e80950bb3ff9784a1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/dashboard.py":{"size":514,"mtime_ns":1780804990000000000,"hash":"f2c1b1014d0d769abf32dab3783de65fe7fe327c956ffbfe44adce94542f8892"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/inventory.py":{"size":4095,"mtime_ns":1785807104128333050,"hash":"37a2e0218b67e33fc7ddc479bcb68c8c45ca892a2e88fbdc543f87b05924ae9d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/plans.py":{"size":5023,"mtime_ns":1785807102509773576,"hash":"6f0172acb27799becd86980fa299744a5c8ba404be1b473cc030a05a6f3ec7f6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/public_inventory.py":{"size":1492,"mtime_ns":1783211660000000000,"hash":"ed4e21307ac463410d296a2f8cf53f8e0429187344537bcf1e1212a7affa06a6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/weighing.py":{"size":5494,"mtime_ns":1785807118487481337,"hash":"120c573ad29a51805e5b04d0c2ceeaea08d70200a40ddca7fe36d5fc7d6585f1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/leave.py":{"size":1449,"mtime_ns":1780108930000000000,"hash":"c54098a69bd4490290dd8d7809ed8764a3f38e8c38692eeef2b505293cdfaeb8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/menu.py":{"size":816,"mtime_ns":1780108930000000000,"hash":"17e35f2d7bf95cac00d81357f69fdcbe849e855daa05570c3302de8182b4df11"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/monitor/__init__.py":{"size":1,"mtime_ns":1780242127000000000,"hash":"bb5b318d3cb224c50a2e0286e145f89ea7278437437fd17d7c865d67ad148076"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/monitor/operlog.py":{"size":1069,"mtime_ns":1782699353000000000,"hash":"b9f0a382f8990f69391b26bb75b4538d141d6adadc4260fecaa8b33cb44c063d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/__init__.py":{"size":5246,"mtime_ns":1787198187913760581,"hash":"e75254bdad34bd2888deb785991e5952bdf086b6658d05aca4a1809384b4538f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py":{"size":18605,"mtime_ns":1787200527820891774,"hash":"70838c89251a5b585b61317a1e97d3d2e18e0d97bd62e66ecc2cc70dd81b5d3c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/datetime_parse.py":{"size":929,"mtime_ns":1782905360000000000,"hash":"7a4eac85768cbeb0ba76f7f478ddadeeacab2498cd9be4070a76e1cfad693cdf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/freight.py":{"size":11299,"mtime_ns":1785439224271183303,"hash":"ba898caafbe6c8f4c5729c2521917eeaf92fa3c649626232d326eb255f0c177f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/inventory.py":{"size":8319,"mtime_ns":1785202429973819450,"hash":"63ec5922aa1e9bdf8c3b7dfc5b0ccb555535cbf949e32a1055237ba86faaa146"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/io_order.py":{"size":7430,"mtime_ns":1787285636622746514,"hash":"70533e77d43cce92e65fa3311411f9f27cc8504e36e69da69d5a87483277d5ce"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/menu_badge.py":{"size":247,"mtime_ns":1783257567000000000,"hash":"88c31e5ef8cee73327a1a0f36ea7ae0e61fa8f1ae140ad95ed0c0b9c2b4d05f7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/plan.py":{"size":28056,"mtime_ns":1787278860740467559,"hash":"a4aa3366fd6c3a9a0365437591470b3059b0a994032de16023c7f0a653762f1c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/resource_snapshot.py":{"size":3823,"mtime_ns":1782793446000000000,"hash":"2d65c990d058d22010f8d4449652eb752c297a046b5d7b3ff6755c3e1cad0cf3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/transport.py":{"size":22787,"mtime_ns":1787282296796356773,"hash":"3edb8121f2f54a055b980bb50c8e95ac3acfa51804d8882662cff4853fcf1886"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/transport_address.py":{"size":2604,"mtime_ns":1782906539000000000,"hash":"6548b4b0c8c1d8096ce96ff1d5b523c67b12300f9a3eac66570b0256478a1120"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_maintenance.py":{"size":6563,"mtime_ns":1782695447000000000,"hash":"c34b79f5bcd004c0f6353922492883e4b08e5a6bc229f0265c9af850d235848b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_recharge.py":{"size":6299,"mtime_ns":1782694169000000000,"hash":"4d5ab880c0c3ca91b485e1ba53725005b9f89fe205780d58a738c861dbb7e6f8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_urea.py":{"size":5609,"mtime_ns":1782696196000000000,"hash":"71b7de2f90b3c7c732b59683e5cd4d858288121414a1ff2679c039299f5fb024"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/user.py":{"size":1911,"mtime_ns":1780108930000000000,"hash":"3d3c159018cab6ed1cd3de7034ffb1fe77a272b9099901a1882d07aa15fc90a0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/workflow.py":{"size":3949,"mtime_ns":1780108930000000000,"hash":"e5aed7afcf903c838a35cdaf2230a93d221c63f5c6baa1497e455afac8587a9a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/__init__.py":{"size":34,"mtime_ns":1780750594000000000,"hash":"583b12a6d2c9fd4411b652741e73324df9256138946ee873a0ed03169f8dae2a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/advance.py":{"size":24037,"mtime_ns":1783746967000000000,"hash":"4834348d099b32b70d14e1b56279dbb385f42519646351d8cb220da8c5fe27f1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/approval_cycle.py":{"size":1296,"mtime_ns":1780758200000000000,"hash":"308c087d94ac253bfc7e2d5455a06ae8ceac034adda41b5c61dd315dc167efaf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/attachment.py":{"size":4582,"mtime_ns":1782650868000000000,"hash":"3a6480cd051bd1af733a67e5babcd64f3f74cbe230d72364b599cde8b0c67a5f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/base.py":{"size":3984,"mtime_ns":1784993089000000000,"hash":"dd56d9197b4cddc60570bf5eb1851d4a426ab226858beb95bccb33a839471ea5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/expense_item.py":{"size":4639,"mtime_ns":1784993106000000000,"hash":"2640940d1851d60e7ba515d759a0aa06843b764742ae1ea2fabb95b6a16136f9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/reimburse.py":{"size":50267,"mtime_ns":1786953507819708163,"hash":"6a3d918b2784fbcca72efd51b5c3b04a76b8598a0b26ce9708611a7a93ba4032"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/storage.py":{"size":3610,"mtime_ns":1785592530823872489,"hash":"9c5f871f6c22e837bfee2fc52af6a06588f6f509441485054ec2a138bc91211e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/workflow.py":{"size":5617,"mtime_ns":1784993093000000000,"hash":"514ea42e366fff44f1becbde6b5bfa219a224517e47dcdec25c8cf803a3ec0b5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx_data_scope.py":{"size":2394,"mtime_ns":1782650938000000000,"hash":"1e8e1dbdcf4bc68c2e30b99015e930bb9522bd1f633e95604ec6a62bdb2b43f3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/crm_quote_pdf.py":{"size":10650,"mtime_ns":1786172982774929079,"hash":"388f78a183375e8673316cfb94df5a00002049d2d639e59e31282c910f884a99"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/__init__.py":{"size":0,"mtime_ns":1780805614000000000,"hash":"2cb780fb722e6dbf2ecea6f6fc19345fb453e1a3c40694ba0ff7465eb7cf7d33"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/auto_generate_plans.py":{"size":4699,"mtime_ns":1780935400000000000,"hash":"d0760cb8155d60e18040bcf6fe41e6964640a3dffd6f4b7bb68678c9f31ab29a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/inventory_id.py":{"size":2574,"mtime_ns":1780934632000000000,"hash":"c5269cbb273d987c296143b83f1287762ce67d7ddeccfb0a72bc70234bad9f12"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/mappers.py":{"size":8976,"mtime_ns":1785807132026824584,"hash":"0501255ba896feb2ac32c24eff8f774aaa4663db1666e31c720087049219ddd8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/plan_helpers.py":{"size":386,"mtime_ns":1780805092000000000,"hash":"5c6ec7612b204e1dcb65c5daf03fa7f8ffa7710cd1ace63be4f7ca00cbf318b8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/product_helpers.py":{"size":2365,"mtime_ns":1785920719535751988,"hash":"6297e4e3ca2f90ae493d90b0b848bc3293e13d99b5246457565841cea18d4391"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/weighing_logic.py":{"size":4110,"mtime_ns":1780804818000000000,"hash":"468ded88a0a4a397a96884580c88c59291c0b6effa897f08f1b3fea7857f9191"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db_data_scope.py":{"size":796,"mtime_ns":1782651142000000000,"hash":"ad4e206ae53e25247ebb004e0ef586077a6e7df0eac7b14973c26b186cffb2eb"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_carrier_service.py":{"size":1735,"mtime_ns":1784957286000000000,"hash":"7ab4f5c5a28b0af2c8ddfc91bbc425a9fc5246956afdfd29ae4ca0af32d73cb6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_cert_required_service.py":{"size":10455,"mtime_ns":1787200437818204201,"hash":"7069b3b5dd6f40ef62357735375b9f8ea26adeaf9c06ebc2a28bb9ddf62283e5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_cert_service.py":{"size":7694,"mtime_ns":1783849439000000000,"hash":"7bb0a6d4dfdb1ec11e72e971873791b8e188939e7c6b7328a0a2f4f8986c9d1c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_data_scope.py":{"size":801,"mtime_ns":1782650506000000000,"hash":"0f0275c56a43603e69a030dd1d284cfc7982a7636423cfff6d0e692eb4631cb1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py":{"size":15358,"mtime_ns":1785920723016038676,"hash":"b5a1121fdb3adc56e5733e54e9afd6618a18d3dd64acf59c7a78e65e16add189"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_freight_settlement_service.py":{"size":47808,"mtime_ns":1785967238102250242,"hash":"974882f2e0c31bd223d47f441985dcd9f69f6f1eb6b7312ad00107ae6c52ed9d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_inventory_link_read.py":{"size":782,"mtime_ns":1782225276000000000,"hash":"6471dfc9a1fbe66223f79490a5827b2422e5ca6932305ccde6aef4b641676a6b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py":{"size":32017,"mtime_ns":1785967896127661595,"hash":"401565a9d71835101da1cad779269c38ad8b45309e9d969fc90cc233ec17fa90"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_menu_badge_service.py":{"size":6768,"mtime_ns":1787199006547960626,"hash":"30ae50d8a7a6c5148c732955a25b51dc5f9665fa3d3e710532f7047af89dd6fa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_ocr_service.py":{"size":11166,"mtime_ns":1784036700000000000,"hash":"6f233150e253813a7c9da30e6e5d6046fdea01baa67c2589a332fe511ab795f9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_personnel_service.py":{"size":7484,"mtime_ns":1787140670593369229,"hash":"acdabe76ba0ba3ea348011e43b3955c6fcfb25e8e50729af8ccea0131d7fd766"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py":{"size":51310,"mtime_ns":1787195004716748073,"hash":"2056bce5f5e065729625fcd5a37d59a77087ebe309f8b4255ec981df1c1c7a49"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_site_link_read.py":{"size":2362,"mtime_ns":1782225460000000000,"hash":"3b9e1b93d3c4375b6b3adb4476ceb0df356654089d994aef4fea7e4f29266c06"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_transport_resource_snapshot_service.py":{"size":4861,"mtime_ns":1782793450000000000,"hash":"6f94dcb582fe725738a54469e461aa0124b9754b2141cb78d3859ff1a2f25ca9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_transport_site_service.py":{"size":3701,"mtime_ns":1782225248000000000,"hash":"07585f13aaad965c106e88ac26f5f8c58852c0c2bb0bdb91820185133d799219"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_vehicle_maintenance_service.py":{"size":23307,"mtime_ns":1783761151000000000,"hash":"0c7aa346d9879347d6a98c435fadc47873907ca0774147b69acf0d392e00e58b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_vehicle_recharge_service.py":{"size":22641,"mtime_ns":1783760938000000000,"hash":"a4a9377a8243e30dd7d6a8a175c68525009465fdebdeb01230849156dd8b59f4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_vehicle_urea_service.py":{"size":19556,"mtime_ns":1782696213000000000,"hash":"03d389e791e5fac9a5339d1259d342952fced97712c3657e8f791426de32743b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/web_auth_roles.py":{"size":5592,"mtime_ns":1783858473000000000,"hash":"04c2cd67a7ec8190aa7a9db717a722cd347a52279ac3ef5bd284777f0698a904"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/workflow_callback.py":{"size":3584,"mtime_ns":1780108930000000000,"hash":"a033c13c7bee7f4b636198c1efa47f2abba0d890657e52b0b7057568d4d83a52"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/workflow_engine.py":{"size":14042,"mtime_ns":1780113992000000000,"hash":"5c06a59c734f598d5c7ebe95d30f048ba3a97302b938bc9320d97e5a053c7aef"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":2486,"mtime_ns":1787140680379293292,"hash":"4285bf024ef91293fda64a484453f3ca095f3ce521d61159364a7075a22d8af6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py":{"size":9646,"mtime_ns":1780202350000000000,"hash":"4f0ab87e7a12534011b69f58079ca206d5443eee594849ab4aae728bb847de0d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/db_auto_plan.py":{"size":949,"mtime_ns":1780805095000000000,"hash":"9f7513cd2e74f9ddfe5cbee4ae58a40ee7a58aaaff051d590b19a6e1b08bb46a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_cert_expiry.py":{"size":711,"mtime_ns":1783208067000000000,"hash":"7c02dbf83fad89c7da757965b545bf77f37792edd0d01d3ed320349b0b60a50b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/__init__.py":{"size":0,"mtime_ns":1780242127000000000,"hash":"a66deceefc987198863f61b8aa1b5715483a69c4a15ef47cd5586c5d8e429b97"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py":{"size":5144,"mtime_ns":1786953427751879493,"hash":"4814f4efce4e883fc021712647f4b8ab9ebb8bd467fa17d4d1f37787b753f074"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/bx_date_range.py":{"size":2363,"mtime_ns":1783745556000000000,"hash":"e8b487a9bb4072356cae7b1b38496c441f9a1534d6807798448e6de97073d669"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py":{"size":9594,"mtime_ns":1780743830000000000,"hash":"b20594507aab09cebc3d540acad04547bf780cac9c885187138f5d64718ed513"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/excel_export.py":{"size":4411,"mtime_ns":1780242127000000000,"hash":"7fbde3fca845e4705487e7f801caee308bcc0c99a9da7d0c99681a96eaaf6076"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/ws/__init__.py":{"size":26,"mtime_ns":1780108930000000000,"hash":"d4357444e9b5b0a8593000fb6e4dc37469ebe008e675bf42ec0d55d463f88fc6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/apply_pl_data_scope.py":{"size":10945,"mtime_ns":1782650517000000000,"hash":"928fe2112c9fd8bab4da7f4fc67d6d247c78187ca3b1a4146cc2fd3d9e04697f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/check_pl_json_aliases.py":{"size":2918,"mtime_ns":1781880510000000000,"hash":"b04c5636779ecbcb3082eabdbf42db846cc31f7376129845820c6a4c1e829104"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/compare_dict_snapshots.py":{"size":11072,"mtime_ns":1783860128000000000,"hash":"cfc98cc72c5e387317cfa0a7670c47067fffe8f2e540d5cd580ee459e173e4ef"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/generate_dict_reimport_sql.py":{"size":10692,"mtime_ns":1780201410000000000,"hash":"a4faaf61f246dad04ec3933083ab4348e5d2987ae1ed34b1f6d8f19535642a05"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_bx_data.py":{"size":32783,"mtime_ns":1785455807105877935,"hash":"16751fcd542e209535216a0516d78b62eecb81732d7fe0f9ec051fdf811e93b6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_bx_menu_names.sql":{"size":454,"mtime_ns":1783254856000000000,"hash":"d40ab4c556ab285498f4689c21736832deddc754a9a2b7d806e870ccb39fc9ae"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_clue.py":{"size":18423,"mtime_ns":1785455807106788561,"hash":"72b84e497176bc63264c26d891c591c839f9dd9788988043c5752413c1b62a09"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_contract.py":{"size":36352,"mtime_ns":1785469153230627041,"hash":"b78319ae19a0089684e1ffe1993a1b62be2d687ab65a3e69da423247e0d4d4d0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_customer.py":{"size":25235,"mtime_ns":1785455807108557895,"hash":"f30d5a50a28a1130325a9d9db88586bcae9e2a39434f077ded25f847af2ed66f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_opportunity.py":{"size":23720,"mtime_ns":1785455807109188438,"hash":"f98964806f32c3020bdd7d644d930760d6ea3ad5162d5f1d6125494263dd5598"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_payment_invoice.py":{"size":13601,"mtime_ns":1785455807109946855,"hash":"c4af77164dac9ba4195c3d239c9679ea367b92f5f7500139f3b59547525af24e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_product.py":{"size":14973,"mtime_ns":1785457303643810528,"hash":"83b693cbc1a590f7a3cd6af2387e638f28474c230fc6f4c0a2813f343d35d887"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_product_category.py":{"size":16785,"mtime_ns":1785462269008382807,"hash":"35d9a064be6f0ac00b6b2162d77d710a2c4f108824eb78425de2341d576cf7fa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_quote.py":{"size":27580,"mtime_ns":1785455807110995231,"hash":"4ac389eb6cb7437d4f5e8203d9908efec9836046ce8628a5e4be1f8b8ddd52cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_sys_oss.py":{"size":23401,"mtime_ns":1785468795797340265,"hash":"f2d9da1743e3997bf7361d39ff66eab588d7dd55d2114dc9cf6796f4f697a9c3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_dibang_data.py":{"size":20215,"mtime_ns":1785455807112164732,"hash":"28a49a423a784e70bec424b702f3d58f69b6f847153c061414efdcdabb660d0e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_doc_reminder_menu_group.sql":{"size":1562,"mtime_ns":1783256051000000000,"hash":"82a0ce8c5293f5051967633c1c2e0a1dc60e1fc7c97919c9e0866246bbcbe3d1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_menu_groups.sql":{"size":6367,"mtime_ns":1783256049000000000,"hash":"5f6964d1ea2712d3d72c8f43f08c16597d85fe79f3f54c8be99962090d6c2b67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_delivery_slip_template.sql":{"size":217,"mtime_ns":1783231586000000000,"hash":"e05e3fe7255e6c8a88aceb1aa53d743a4888a34c9fbaa4449c1cb8a275744d68"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_product_legal_use_cert_url.sql":{"size":1180,"mtime_ns":1783253793000000000,"hash":"01105ec581050477087d9bf65528cfe77ce0026d0fb682cba8014c4cdb046db7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_slip_template.sql":{"size":191,"mtime_ns":1783219958000000000,"hash":"e2a17c3df7be5cc0436ef979a48de81eecbe99c03f43662f4b0954a09dfa1305"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no.sql":{"size":203,"mtime_ns":1783240340000000000,"hash":"de9b3c8e1617b9c345b2d4005e4a627f10ded089db89d35f0b389b333b840c08"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no_format.sql":{"size":571,"mtime_ns":1783241697000000000,"hash":"61fc58ebda64c5d6be6bfd374dda99c7134e38dc89031527f71916625c4e36db"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_template.sql":{"size":215,"mtime_ns":1783238744000000000,"hash":"24cf12e21f9f61f49c38e654c0ca655f56a21e5e2364e4c2ca4547dad583272e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_users.py":{"size":28602,"mtime_ns":1785455807113727900,"hash":"f5626fd3ca8bbc16275862080365c3ea2a27fd0f608e2243a284493762a8f735"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration/minio_url.py":{"size":4770,"mtime_ns":1785465354405875664,"hash":"54a1bf95512c0a8b5feeb518ea3af76983bb1b0a3ba645898b07debdb2cc52e9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260711_hide_vehicle_urea_menus.sql":{"size":269,"mtime_ns":1783760394000000000,"hash":"a5f66647cdb4f0f403689b47b804f8099d7d710753823ef3ddc5e7a5a9ca4ca8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_add_finance_dept.sql":{"size":1697,"mtime_ns":1783855927000000000,"hash":"4ce457089ead5c063ae8e1a6d6553416deb43c54a7edddb574ee2572390aba99"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_affiliation.sql":{"size":753,"mtime_ns":1783845019000000000,"hash":"6d450d264921f43c4e74ee4a2bcfc8335d16f77d9e0413267389741a92bf4eb5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_type.sql":{"size":1662,"mtime_ns":1783843576000000000,"hash":"24fcd156f97e2bdf2bd158beb5358fe7159874783a84716c6c18d2565cc8ac1a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_reset_sys_dept.sql":{"size":4517,"mtime_ns":1783855538000000000,"hash":"3795d6127a4dcf55d406be0fe673b8a83655723fe1f07b855e6fe45823d489fa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260713_pl_personnel_cert_split.sql":{"size":3436,"mtime_ns":1783946793000000000,"hash":"ce61899ec7e13f41de08dbc923dd1ff2a1a976603d13c8f09aa6fd5be9c914a2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260714_pl_ocr_usage_month.sql":{"size":1270,"mtime_ns":1784032423000000000,"hash":"d7018a4e5be9760846731440be98e53584d8e1461fc4ea54a0c8db61c666e7fe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter.sql":{"size":11104,"mtime_ns":1784122573000000000,"hash":"548dab479fcde4bf1628ca2093fd7840720473a774a5289b55bfd4f46b902153"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter_bill_price.sql":{"size":901,"mtime_ns":1784122547000000000,"hash":"11a4eb6f3b4d89c1a5141bd9a85e931517984b77ac213f5842dc590f928fe1cf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260719_pl_inbound_outbound_order.sql":{"size":10843,"mtime_ns":1784427911426172052,"hash":"baab6333d8e0865e72a9c474eb642bd5b166f9d70a6db5825d315574f66df069"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/patch_pr3_api.py":{"size":14409,"mtime_ns":1782650231000000000,"hash":"fb4cf4178a4b7c5530999f0c950ed38310dfe81b3168c10117849d6f512be01d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/patch_pr3_api_calls.py":{"size":3345,"mtime_ns":1782650279000000000,"hash":"57732d0beb80ee17b533c78ce0250967fa83c68354ea9d1972275ba1fbc39007"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/patch_pr3_quote_contract.py":{"size":12491,"mtime_ns":1782650163000000000,"hash":"eb6b944df35fda5edb6675b69b00f5a83a75fd78785251d1e81e1788ed439cfe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/refresh_business_role_menus.py":{"size":3812,"mtime_ns":1783858483000000000,"hash":"b2c76109936791e1f624e239b24832237fa0256b38b98578e39825ac215fb166"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/renumber_crm_product_no.py":{"size":9071,"mtime_ns":1785455807114125233,"hash":"320c63801100ea8e9fb62abfb44b3487139377e293310593a877ab2d06e9d2e3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/run_db_auto_generate_plans.py":{"size":1043,"mtime_ns":1780805102000000000,"hash":"3cd8f15b677f21b2873ff384fc0581da264a53ee4318da3c8262101156e3225b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/seed_sys_menu.sql":{"size":82807,"mtime_ns":1784948075068625581,"hash":"b712bc6d4b5a248a26706137f601e26d81bdb7ffdae016ff818a77155afe15a8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/setup_business_roles.py":{"size":14256,"mtime_ns":1783858477000000000,"hash":"ac12df2cf75826931c85f4deb3ae28614e31ea825d0beb3cf351a8d4f5cb1071"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/test_aliyun_driving_license_ocr.py":{"size":5130,"mtime_ns":1784032210000000000,"hash":"13d43c9144c3795b8870fbd900ed14f97ae22ee043e2c265a5151525666abebe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/verify_web_menu_codes.py":{"size":2535,"mtime_ns":1783858485000000000,"hash":"16c9c072b5b80fb309d56823963ebd0dd1f437a3f74d7f82711dd8a7c2de86d2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/start-prod.sh":{"size":7357,"mtime_ns":1782639355000000000,"hash":"ca89869446be74a2bf2367b3b28f448580220859a39a84ad9613ac5fe35a8433"},"/Users/wuzilong/work/00code/shanxia2.0/backend/start.sh":{"size":9548,"mtime_ns":1780114661000000000,"hash":"4d632863e8a0cd81194b491d83a0218a4157435ae812dec76a6f6197b4d48e57"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_data_scope.py":{"size":4660,"mtime_ns":1782649048000000000,"hash":"9545dc65fac7e13bf07ece2ec828ec5957bb115e23d0ac8c996f9c70362a4ecd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_db_inventory_id.py":{"size":586,"mtime_ns":1780934647000000000,"hash":"71a9617d5d0f2c23416686eded204b4c941b47afc3fd6e3facf0c75401e883d9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_delete_guard.py":{"size":1565,"mtime_ns":1782687611000000000,"hash":"5e2a45f63b7296e3a10dfbd4b4716e54370e1439248881d6591cba5c9f6581d6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_dibang_plan_quantity.py":{"size":4258,"mtime_ns":1783777759000000000,"hash":"6af8eb3c1f6c7ad34cd62f1e82e9c6b96737ffd48ba74dda7c5f888c55dd11cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_personnel_cert_required.py":{"size":3367,"mtime_ns":1785643508814042558,"hash":"4bc3552f4897e80dfc8bc28ea2566bd0ea6839e860d781653088066f57f414e6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/venv.bak.broken/bin/Activate.ps1":{"size":8593,"mtime_ns":1780108930000000000,"hash":"ed2ea10761f2798e8980084d754284d3fcb94f1284ae7085c35c16108fe24846"},"/Users/wuzilong/work/00code/shanxia2.0/backend/DEPLOY.md":{"size":2574,"mtime_ns":1782639356000000000,"hash":"6989c30ab5c99ebf488137e31e5561b4a00d36060716dfad3fc247b673538818"},"/Users/wuzilong/work/00code/shanxia2.0/backend/README.md":{"size":2752,"mtime_ns":1780114581000000000,"hash":"f5def8d25af0556a443c31a73e81f958883b60cfed8b31fac457f2832c2b6d58"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_io_order_enrichment.py":{"size":2319,"mtime_ns":1785967899536094864,"hash":"f46d9a34d0693693f48c0bea5e72d79baa7adecba9c413d5583e1f229e692043"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_io_order_site_feedback_status.py":{"size":3527,"mtime_ns":1785446258255101137,"hash":"fc53fd735e09b39e7cfe085ca6756f87396b6954f7057fde2bfca39524c34276"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_tripartite_cert_gates.py":{"size":2003,"mtime_ns":1784947499000000000,"hash":"312091d1017c2f22195a9317cd6f39c880cd5aa6b27acaf343181319f045ffee"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_carrier_eligible.py":{"size":689,"mtime_ns":1784947707000000000,"hash":"a3093ae31166d40d7836abb3575c0d4d50ff9e9bf23fee8e7a291afdec39fedd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/paste_recognize.py":{"size":1879,"mtime_ns":1787201019820027930,"hash":"762caa6d084015d368538e687633b064bbefd73b7c91b225249d9a949b361fca"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_paste_recognize_service.py":{"size":9977,"mtime_ns":1787201020688178054,"hash":"53f4d3c74ab4ebf0903b62c538e128c10763a474b3a78dce51fae6f7e13587ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260725_pl_tripartite_menus.sql":{"size":2113,"mtime_ns":1784948072087970834,"hash":"c4897f7cff3c22535726f105d1f2e543eb551f6543e8b256ced85ae2a38ee683"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/invoice.py":{"size":5868,"mtime_ns":1784991682000000000,"hash":"65eced0eea3c4f9567842be545d2eb042c24398d5ff5eeda2aff693fcff06ff2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/invoice.py":{"size":1896,"mtime_ns":1784982228000000000,"hash":"909460b2883e85110e15a56d5755748e1bcb3e26dffac89684440813788e8668"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/invoice.py":{"size":15808,"mtime_ns":1786272473404426378,"hash":"eec75b8a2f81e6fe8f5c6af25625d6d3b0d1cd6ec01151412e2707a4e338e623"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/invoice_ledger.py":{"size":10448,"mtime_ns":1786539462776370778,"hash":"7247589419d1b5c86087def9b33d0e20d8d04b75b4afe7b7481dd96c385d20d8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/crm_supplier_hazard.py":{"size":3425,"mtime_ns":1784998230000000000,"hash":"2365e02c6f2584dd6d18e1ad3c8d3075096777b244cc1430ef913254c61a9442"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_bx_invoice_ledger.py":{"size":1898,"mtime_ns":1786539462170910559,"hash":"ef8ee465df020aaff376deca3b251e13e017dc72856efc07c982b1469e4888a9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_supplier_hazard.py":{"size":855,"mtime_ns":1784996182000000000,"hash":"ce8bd619b1a6dc746541a57eccc095d19ccde3bdb88341995631e15fcfb14bca"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260727_pl_plan_create_date.sql":{"size":536,"mtime_ns":1785140686875543544,"hash":"0694b0b031a6461d8a8940f7403739a8d20fd018403a02a8f1e0e8bf2bc1490f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_create_date.py":{"size":299,"mtime_ns":1785140895170402200,"hash":"7a05f3fcc2d9a36f08b0801f6fbf6ee4fe58982d9212d7a10a70b8b4d41b6f85"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260727_crm_product_brand_alias.sql":{"size":4594,"mtime_ns":1785160650030737687,"hash":"f9f6ea6ca8e31cf5622a31f8303fe81174769b7d094645a88dccfcd6484b9cc4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_brand_archive.py":{"size":3334,"mtime_ns":1785453570763074999,"hash":"feca7ad16664603f04ee7fa38f03187ecfb70978cc41fcdb47d3fbfb54a11fbc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_inventory_service.py":{"size":7058,"mtime_ns":1785453321817830521,"hash":"a13cd5ea34dabe91b4663551824c3da9fd2a64ac3fcbc46b2b099644f308b457"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260727_split_brand_from_product_name.py":{"size":5120,"mtime_ns":1785202591782265408,"hash":"d9d9b949cc5f275764b7ea771616141084a0c7cd256dd3262bf532cf4ac0f20f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_brand_archive.py":{"size":2440,"mtime_ns":1785453323711185768,"hash":"2a704d8278c46f510fa020cd9aed4ea26fd978262d7fe728287bcfe5726798e9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260731_pl_plan_plan_date_nullable.sql":{"size":223,"mtime_ns":1785439209757662121,"hash":"50a633398cc1c8288c8b5fa221885272ca963c4b777b70102c96632f2d51047a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_feedback_brand_qty.py":{"size":9813,"mtime_ns":1785452749855419713,"hash":"c67d06fc7ac5cc9b3be0c2005f30a4914ca97c27cd5a7c80e7814382cb05c82d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260731_pl_feedback_brand_qty.sql":{"size":4927,"mtime_ns":1785445506581710120,"hash":"618b647158c133824ead60382d2b6e73713ea32a7b2224efedea431e071cc89a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_feedback_brand_qty.py":{"size":3424,"mtime_ns":1785452788497663858,"hash":"1fe2a5c0b1968f864ef22a436b0e13a697977ef09a71c6e8bfda46da25825f90"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_product_display.py":{"size":3590,"mtime_ns":1785451173102957680,"hash":"728e1d79035875ac350201c943241493f04006a2e1f71d7e3e41571eeac721e5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/backfill_crm_customer_license_urls.py":{"size":7789,"mtime_ns":1785467213374029636,"hash":"a0faaa83477187d8b4a9299d1b170f5ea2c5ca3b450fb4437bf1dc30ab1b5b1b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/backfill_crm_contract_attachment_urls.py":{"size":9795,"mtime_ns":1785469147228035015,"hash":"6331fa977cbb794c3ee9cb072692c63b05f23f071ab8df1d0b8368455af3b82c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260731_bx_reimburse_invoice_attachment_id.sql":{"size":784,"mtime_ns":1785473095766881076,"hash":"702c6845b0b936d4a5a06918fcebefd71b38ca4b2dcd7e51ee45af19c77407b6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_approver_setting.py":{"size":3632,"mtime_ns":1785560604338687232,"hash":"7442687a3dde4a0a354064c3fef7503d37c9ce3f1991873e64befd2d1812ba4a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_quote_approver_setting.py":{"size":1015,"mtime_ns":1785560055190832342,"hash":"2a7e91833de33ed92ac8e9157746f15fd7a9e7c5f25bf043dfb0dd7c77859715"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/quote_approver_setting.py":{"size":291,"mtime_ns":1785560601528774704,"hash":"e978cab24ee46f23b7432bb6f411e760f2d8d782a924efe811608c2200fcba0a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260801_crm_quote_approver_setting.sql":{"size":2117,"mtime_ns":1785560449173091996,"hash":"66c92fbf3031539484e241934c14fee379a70b1b179a8b8345c5ae70c8498f14"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approver_setting.py":{"size":2875,"mtime_ns":1785561463337293690,"hash":"7c3aeed13e66f67159220b323298b414a9d1b1f9ca6b679dca31532be86a132e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/contract_approver_setting.py":{"size":294,"mtime_ns":1785561469090499071,"hash":"fca8a7cb3a75c82e9c3395f2471e20dfcdc469a8fd299c9c6ce5e79576a6c3fb"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260801_crm_contract_approver_setting.sql":{"size":1903,"mtime_ns":1785561454940491268,"hash":"f81470b97da71283b9d3defc81fd177cc2fea1dbd487febaebf7a8f24a73c71f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260802_pl_vehicle_personnel_photo_urls.sql":{"size":468,"mtime_ns":1785637173564154921,"hash":"852680d19f6b71def29908a718ae92d9169a025e9d78808b9f8d000bdc61fb52"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_vehicle_personnel_photo_schema.py":{"size":1231,"mtime_ns":1785637623899998875,"hash":"e4c64e35446196f1de7ba0e719be054d019ec8b075f5ea8c128b8a60c59695aa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_no_align.py":{"size":3126,"mtime_ns":1785825791491415499,"hash":"ff831959d54053ab544d9c377133a120cd4caa8aac6650da16a36150444d78e6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/public_vehicles.py":{"size":2231,"mtime_ns":1785768179156681871,"hash":"7a98a605c181669b08d642c45a0dd6fa523939af5125b5ad0bae0de2ee95b2f0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_public_db_vehicle_plates.py":{"size":323,"mtime_ns":1785768224738481967,"hash":"616ff1488b2b17e419c4e4ec368aa2764afea116722010cad785218a4e12259a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_name_from_parties.py":{"size":6224,"mtime_ns":1785828057088217919,"hash":"9a59bc109ddc024a07b33b7392a05d483860e2214950a5e3552dee57e207be2f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_resolve_driver.py":{"size":1013,"mtime_ns":1785919856405819727,"hash":"d88b4043fc8e89abcf86c7939f9c0072b79a598a2c9d0429863bbaefad603fed"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_transport_arrange_optional_driver.py":{"size":1644,"mtime_ns":1785920340176946279,"hash":"04877379c17cc22060c20331e036b8fd38356f19472ff3f44a5bcbc24c599d03"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_db_resolve_crm_product.py":{"size":1264,"mtime_ns":1785920708079005468,"hash":"f882adf7b1fbc4eb6a597a32d7854c8e70fdb647e36575077fca62ebcd5d27fd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py":{"size":762,"mtime_ns":1785923790041814966,"hash":"7148ba8438800787cfdf57ae6f9a036c937365b7fb3488446a9ee8f0eec627cb"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_product_options_keyword.py":{"size":806,"mtime_ns":1786094317931053244,"hash":"9af3eec71149b686820da37b4b1648c303572d9915a1852f29d6d009c824223c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_freight_unsettled_q_filter.py":{"size":670,"mtime_ns":1785967257899846757,"hash":"70f5f3ba569ad9bda0cf82b2c1715098f7e4456a94ec3ac4c8166f68707ca64d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260806_pl_plan_pickup_delivery_contact.sql":{"size":355,"mtime_ns":1785967900218676221,"hash":"91ff55c654521b8604a30a8cd71c1219fcaae1e8e851684121a5c17937d447af"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_public_link_archived.py":{"size":3479,"mtime_ns":1785969243308729198,"hash":"f45e090c9f94693e70c4316e4201524d108696b394dad3f32d141119e467a36d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_cert_list_filters.py":{"size":1103,"mtime_ns":1785970837922953790,"hash":"702a2b5e78b7bc830c43349093dec22e441557293ff3ea42144a87080dab6329"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260806_pl_plan_product_cert_urls_multi.sql":{"size":506,"mtime_ns":1786026516384661236,"hash":"888d02bc77f0d9d037b55a45a54654dcefa5a4d8753e81af10c1b064df67a4ec"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/pinyin_abbr.py":{"size":1728,"mtime_ns":1786092671463202484,"hash":"6249344ef1bba8eb8ffe88b78a5415cded10cc964936c9a21d6664cd07dc2574"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/backfill_name_pinyin_abbr.py":{"size":3672,"mtime_ns":1786094939020069795,"hash":"95641ff2c1f983d666f9b542abd95e67678ce0f3a0c060b9b2894d124f72b48e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py":{"size":1997,"mtime_ns":1786094657392019008,"hash":"0b6a447b8b8288199ac9281eeb381219dc772015dae2d5dbe9bfdc7549f3bcd2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pinyin_abbr.py":{"size":1914,"mtime_ns":1786093018755774342,"hash":"9e1e22aacecbc371c65cf98b765f1801142a42ce86f00b595f731730de01462b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/menu_favorite.py":{"size":5893,"mtime_ns":1786164467195259167,"hash":"47abb770c311107aa9175afa9e763f725ae632aa142701dd0920b1045bc0201e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/menu_favorite.py":{"size":448,"mtime_ns":1786164463958357878,"hash":"1e59cabf9fb61d54069a3e2f6989a35caf7e3f7923c147b3c8e311f9e414e98f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_menu_favorite_crud.py":{"size":333,"mtime_ns":1786161663839656046,"hash":"90f5142c48c2ac1f45779795f1bf98d4586e8021a51661d67749a1a997ee6317"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260808_crm_contract_freight.sql":{"size":485,"mtime_ns":1786168838831711328,"hash":"03a5817604775db7b6fac63b4c2525b29209157c95d3b62d0832e10b3ade5dad"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260808_crm_barrel_deposit.sql":{"size":640,"mtime_ns":1786171064998893402,"hash":"635246d391b3c51cc942b0bd0626bec0d8a1e01b040982eaf4d8247cfcced69d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_internal_customer.py":{"size":359,"mtime_ns":1786203402295831206,"hash":"b0943b9c2c5798ca37a7070f830dfd25e3136c6cc44b68445d387838ed0a8d93"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260808_pl_plan_contract.sql":{"size":1307,"mtime_ns":1786203401315396321,"hash":"70fc937d300892df9e01020e7efce19320d671a3d68d8ef2a90ff511c31eaada"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260808_pl_plan_legacy_party_contracts.py":{"size":6021,"mtime_ns":1786252409838644271,"hash":"d1c4e2da790cccb70a334e9c31e35d7468d02ebcd3a7ee94be148ca793f2bdb2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_approval_reedit.py":{"size":7025,"mtime_ns":1786365642443908289,"hash":"b8b8b8fdc2eb6227d0bef5e8904a48952b75097add1f8016db21789157fa3d05"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/duty.py":{"size":4789,"mtime_ns":1787234033913753421,"hash":"7e4b860fb7c763e302a175cf1af1ccfb100475bd7c59ed7407c8e6578a72d206"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/public_duty.py":{"size":1302,"mtime_ns":1786782175107488581,"hash":"202fd6efb33db564f8bacad0a2b81f4332f4a458a63503cf0d7d0c4e4b9c0ce7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/duty_models.py":{"size":4898,"mtime_ns":1787233986158169284,"hash":"bd9909cc90a442a11c7869d1110f9df5fa841c88e4a8754ad5e6b6c312a87305"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/duty.py":{"size":1697,"mtime_ns":1787233986157770035,"hash":"ae6a435f760277d2e0e77e6f462afc858c0d8ab65c0b7a598d167278d1916bfb"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/duty_schedule.py":{"size":30001,"mtime_ns":1787234210689840547,"hash":"716b0e3dce40f3818b6d715b6b2607d02907db1390b82607759dbf3f39008b67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260814_duty_schedule.sql":{"size":5119,"mtime_ns":1786780828212847883,"hash":"6dd48ca0af157368eaf593b4fab9572717fe181b268df01910d33ef429fe5a30"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_duty_schedule.py":{"size":21508,"mtime_ns":1787234218575121998,"hash":"5229f6f7f74c417b47866077b4dcc6a111669318da8c423e9e1dbddf6331c3dc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260815_duty_menu_portal_fix.sql":{"size":2448,"mtime_ns":1786862443519086520,"hash":"e8b344901dbe1a098895f53eb58b6b774d4d9dc98c4314af19e3d723c630d46a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/crm_settlement_clause.py":{"size":1100,"mtime_ns":1786936843880889885,"hash":"39bdd102736139f915fbde5bf0492b1ab5bea171e50886fbebdc91d11ecc26f0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260816_crm_settlement_method_options.sql":{"size":1283,"mtime_ns":1786863543577427878,"hash":"1a77cf2cbbd8c7bd36ace3c5746333533dfc67d9538b5e503d20fce0adae3839"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_settlement_clause.py":{"size":1171,"mtime_ns":1786936844055122834,"hash":"1d5399fb65ab99a9192d53cf6669591a805fb7acac0b783cec2de73b8f263c41"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260817_bx_reimburse_detail_occur_date.sql":{"size":248,"mtime_ns":1786952998755687610,"hash":"47f947e6b9c44f9cd43eab4933391a0a066c8afe47c7f150dea100d0fa527556"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_bx_optional_date.py":{"size":676,"mtime_ns":1786953396821732245,"hash":"ad6002f2e2381ce3492f0655a9e9d25c12e79eab39b25cad11eac1ce6681d32c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260817_duty_staff_role.sql":{"size":669,"mtime_ns":1786961977381233883,"hash":"18ef78c4e3f3098f98391595d410d9d3208b27e911a51b2dd069a087c21552b6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/reimburse_import.py":{"size":22009,"mtime_ns":1787059477540105703,"hash":"3d8335fb43d7521ab956b91b4f0db97865d1eac9567e6b16fc6f64514554dd7e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/excel_list_validation.py":{"size":1727,"mtime_ns":1787058157688083229,"hash":"c5ee81774768064f85a0a1c10fe26560c5cd8688dc9a350db20183e8e6317c08"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_bx_reimburse_import.py":{"size":6968,"mtime_ns":1787059491763657804,"hash":"c1dcf74bdb897989de6275dc50c8f2c4d215d0c255667ad0aa13327491917511"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/id_card.py":{"size":1013,"mtime_ns":1787140660375276708,"hash":"2a22466e4135cbb3a407c4024083962e356c0173d6bcc98ef37c1826ac2b0e01"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_personnel_age.py":{"size":788,"mtime_ns":1787140671776513916,"hash":"b143ed12c8ead08503cc1301305c805dc0bd3a15e6657486b497996e546884ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_id_card_age.py":{"size":722,"mtime_ns":1787140680915434955,"hash":"82a6853f305295d6b577bc170e57b9ea0eb878a6a049e905754f361e040a7a5f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py":{"size":9673,"mtime_ns":1787202689374864099,"hash":"a1f1c96584af9c8533b4330c8732d318f6644dd37b63cf01766815524c789748"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_contract_gap.py":{"size":2024,"mtime_ns":1787198187913738457,"hash":"7f93087d723da02d189f822810735774d7cb82ad518231edd10acb7586012bbf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260820_pl_plan_contract_complete_menu.sql":{"size":3099,"mtime_ns":1787235628967077508,"hash":"b179365b93ad7b9447f281524ce477bb800f3281ae017f73f8e4d23e9141e8a4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_trailer_cert_rules.py":{"size":1667,"mtime_ns":1787200408112863658,"hash":"b11b4a7dc26bc9988e9fbb53caab9725eeb4ffdd807a183086f8a724184625dd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260820_duty_shift_dict_time.sql":{"size":5448,"mtime_ns":1787230059421313571,"hash":"58d824821f7152e7becdf602d65007db1245508560f66be35df785c8547c8598"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260820_duty_time_range_dict.sql":{"size":1731,"mtime_ns":1787234296460334684,"hash":"9f1aabaf898689cb98dd91deb8d449824c6c0d2d642d2c330ed973232766b2a2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260821_pl_plan_force_follow_status_menu.sql":{"size":1031,"mtime_ns":1787278886924596982,"hash":"b6688bfef6437cf162d56b7ad935a8196d1b248f26b1ed0d6032539ef40ea2df"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_public_transport_history.py":{"size":1282,"mtime_ns":1787282256679657054,"hash":"59c01e8e73cbbd7b67f049a859201d1158e69e81e47fd3675293d661891d71c8"}} \ No newline at end of file +{"/Users/zlwu/work/00code/shanxia2.0/backend/start-prod.sh":{"size":7357,"mtime_ns":1782639355476060453,"hash":"ca89869446be74a2bf2367b3b28f448580220859a39a84ad9613ac5fe35a8433"},"/Users/zlwu/work/00code/shanxia2.0/backend/start.sh":{"size":9548,"mtime_ns":1780114661446983244,"hash":"4d632863e8a0cd81194b491d83a0218a4157435ae812dec76a6f6197b4d48e57"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/__init__.py":{"size":21,"mtime_ns":1780113982281973984,"hash":"60a04ff08fd97084e83ea809fd13feda6d2848be20ebf309e31fc1dad7523230"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/main.py":{"size":6280,"mtime_ns":1782790852770448643,"hash":"8f9da799977bee7134d87a26ff8434ac5ef8eabb0b7368dd537eee49ad7fd00b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":2207,"mtime_ns":1783208067881286091,"hash":"313e6da0e91d743ce891dd283458c79b50b24c4d909dc96ca7b3fd9d2bfa5013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":7457,"mtime_ns":1782790841500516545,"hash":"34bac56e1c2cb6215f4b5fa2dc32d77d4b4abca51428819eebf4afd269cc51cf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto.py":{"size":1870,"mtime_ns":1780108930724444498,"hash":"c04b748aea86890a5971f749523c7b17dbad1ddd6f9f7f07a5679d159c984e33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/login_crypto.py":{"size":3858,"mtime_ns":1780108930725155710,"hash":"b82d51afabf2293a9cb1fb2e5f994c383948e7f47ea95fe674686b4f3f3342b1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/config.py":{"size":6958,"mtime_ns":1784032424448146538,"hash":"c2fb44aedb880733de28afa7f92d2c1c681eb600f821bbeba2bcda3933e5bc37"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_pay.py":{"size":23585,"mtime_ns":1780108930725768130,"hash":"3d52265ce65d21e7103f94afa1e8547aee0823b5ea6d65c50317436ac81fb4fc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_request_log_middleware.py":{"size":11971,"mtime_ns":1782701669198208175,"hash":"0b84c32828939e6102bb3647691fa8f04b1f68e0e0e9f28127374cc44e19a11c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1510,"mtime_ns":1782790847265601586,"hash":"8bc9c8ae62e2be2c6920036582ba448dfcd1711c41cebb62274ff6bc6ee14b0b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/security.py":{"size":728,"mtime_ns":1780108930725470004,"hash":"df0f01115064f7b8de1c81dbe9a6db39360c236610b68c33b3234a51d7f0025b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/request_payload.py":{"size":2842,"mtime_ns":1780108930725350836,"hash":"e9937151530ab1417ef297aef59111977725cf90be2a8fa76c00a0618789aba0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/__init__.py":{"size":61,"mtime_ns":1780108930724312414,"hash":"3dd1842ee59b0c804176b03b4b8a323bd4a252b7feb1bbc32db64f3a8928570e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/response.py":{"size":1824,"mtime_ns":1780108930725412462,"hash":"f1739352d65ea8287d76e282a59553aa8d63c97e35764c64ac378aa5bd9c347e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/menu_guard.py":{"size":1611,"mtime_ns":1780108930725223002,"hash":"3e26077288c3620a4780038b891a326206b45bffe00aca545bdae30172487235"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_collation.py":{"size":548,"mtime_ns":1780108930725025043,"hash":"0c680e25a18244ca839a7de6ed1f4313b33bc8da118d89c463aee1b6af00c6f9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/context.py":{"size":421,"mtime_ns":1780108930724824458,"hash":"83a10aee67162374993c10a30bf8bb8bd9c4b35cf48f42c832415ccebd91660f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/utils.py":{"size":1498,"mtime_ns":1780108930725607296,"hash":"09323693661c1d4560458b86a954128ccff82bbaf6522da0b44f24da99ddf9ea"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/storage.py":{"size":14141,"mtime_ns":1782855136810943216,"hash":"3ae2c413c10898a8adb3d6773870bafbfbc18c739c10e0e8b4f765b4b5ca6c08"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/order_status_compat.py":{"size":2828,"mtime_ns":1780108930725284669,"hash":"5349e5a0745ee6734c4a995337779307adefc46f453906171988a77de2081540"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/exceptions.py":{"size":4946,"mtime_ns":1780108930725084335,"hash":"79c997d964bca1a4f12f2b92fb1f181fdb9e2b3cf72eae39f4cc164d23794fd7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/data_scope.py":{"size":8043,"mtime_ns":1782648925694296304,"hash":"626dff86937e5cacec634ecbc61cd53d3763d760223a1d4ec7cd11f64e59a220"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/admin_request_json.py":{"size":2669,"mtime_ns":1780108930724378914,"hash":"4f68b3cf84291e7bddad6ecf4bb4d29ca5e1ec246a9f7f9c4cf5909d0ec1174a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto_middleware.py":{"size":10876,"mtime_ns":1782790001926627098,"hash":"b39f128b6612589ea6ac5babd30752e9585b3af07b82bb1ad53c9e3c0d90816f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930725684255,"hash":"5086070deb14d99d1a69e419b2299ec4ea2fe128de80fe321b0c3c531fea7a88"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/models.py":{"size":36012,"mtime_ns":1782699345666495916,"hash":"01f974f182660ec4f215bcacc31eddadd7899d60d95aa19a61046579a994512a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/__init__.py":{"size":2186,"mtime_ns":1784035957226402359,"hash":"5af681963b36af57eaca7fdfc7f707255008ffba18df1a8c2d5903f58fcbf159"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py":{"size":2090,"mtime_ns":1780108930807298966,"hash":"fda71bbe87dcb29c6f0ffa9337e9f39c2c06d912df6cb75d521f0e87c7c73c6d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/auth.py":{"size":1315,"mtime_ns":1780108930808197763,"hash":"018b82e42bbb055250549c54ba700ee01cf28cd753397d6c162f9e60185908e5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/user.py":{"size":1911,"mtime_ns":1780108930810184774,"hash":"3d3c159018cab6ed1cd3de7034ffb1fe77a272b9099901a1882d07aa15fc90a0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/__init__.py":{"size":1159,"mtime_ns":1780112973062398026,"hash":"4e8b0bda6680e2c8740c380b96eedb859ddc584a81bad568a18ba6beb001e480"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/menu.py":{"size":816,"mtime_ns":1780108930808681891,"hash":"17e35f2d7bf95cac00d81357f69fdcbe849e855daa05570c3302de8182b4df11"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/attachment.py":{"size":328,"mtime_ns":1780108930808144846,"hash":"300b74c51c66cb0fbf8c9f4d84a4b7bf29dcc9b6a67d922f8e1d0df05f9fc5bf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/common.py":{"size":555,"mtime_ns":1780108930808426681,"hash":"caa0c03398e54017b25cca2a16cf8d232a59739893a16e4c33b51a5316d8964f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/workflow.py":{"size":3949,"mtime_ns":1780108930810245983,"hash":"e5aed7afcf903c838a35cdaf2230a93d221c63f5c6baa1497e455afac8587a9a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/leave.py":{"size":1449,"mtime_ns":1780108930808614098,"hash":"c54098a69bd4490290dd8d7809ed8764a3f38e8c38692eeef2b505293cdfaeb8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/sample_code.py":{"size":12322,"mtime_ns":1780114002126415047,"hash":"5b74838b3920f9182d092f8a1b721697f1a62e8b90728b9f54101dbb96baa40e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/post.py":{"size":5164,"mtime_ns":1782688288640487823,"hash":"370a7c2b5de64c6b72f98bcf7fbbc166ba2a7f5673c6e1426b10bcc88220bb27"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/user.py":{"size":14214,"mtime_ns":1783851628178366109,"hash":"aeac623e3020fee4cdd01e463ced23e4e03539a17c5b57dcbd9d88aac5a4fb4f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dict_type.py":{"size":5537,"mtime_ns":1782688289303121533,"hash":"f4edc5824466d0096b3b70aeea7b4460a9fa54ca0929421759b625b60c56c505"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/tenant.py":{"size":5659,"mtime_ns":1782688281816798167,"hash":"0192db8ac9c3de42fe8ee58324c77111e152bf4c35fd15c0b16467fe243712f0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/biz_no_generator.py":{"size":2534,"mtime_ns":1780108930726090799,"hash":"e6bd375987e47f6ee80294686db64377938a286767bb28324f3eda2ad39ad546"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/__init__.py":{"size":169,"mtime_ns":1780108930725878047,"hash":"340e3c08174d61829012879e684f6166803b88c819c58b54a16a11d210dea85e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/role.py":{"size":9417,"mtime_ns":1782688282481859519,"hash":"008550fe8efce5310afd3d41d944cee4b68d71763a587583f8832855480477f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/menu.py":{"size":7600,"mtime_ns":1782688282878700273,"hash":"36951a77088782d80500bfa6266b46a564a670e10b70af7a28cdee8c50741098"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/site.py":{"size":6525,"mtime_ns":1782688288935534527,"hash":"a7bf593eff76d08b338f48f9a035fa1493f4ca88867bf9fdf4e9af06b6165759"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/api_request_log.py":{"size":4562,"mtime_ns":1782699354647000111,"hash":"f233bde579c4f6c7f2fd6030878c5946fb5dd5e247efaf4fe80d3f48622c19a8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dict_data.py":{"size":5418,"mtime_ns":1782688289691482227,"hash":"5bd3fd93c60956dab0268e9f4e6cf315d0a9c9656d649f4abb40858ba1d32911"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/ethnic.py":{"size":1012,"mtime_ns":1780108930727448890,"hash":"7de1eb94b9fbb897a7b362ffdb5df5ab1020aa7247c7c37a2a2a2aa5cdbac8ad"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/workflow.py":{"size":25052,"mtime_ns":1782688290021142467,"hash":"6ca7e3b79e91356a050592b768d7a6749e1bfdb2841a208c7235899603368aec"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dept.py":{"size":6604,"mtime_ns":1782688283203296227,"hash":"ebb38fcd527fdac4dcbf0632ac926e4cbe95dddb5fab79c3142b010e7a48ea7e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/base.py":{"size":5360,"mtime_ns":1780108930726010257,"hash":"49fdea023825ea249923b1cb02d353dcede1850158d3555a2082887925e69b9b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/leave.py":{"size":4765,"mtime_ns":1782687678100096646,"hash":"847095009bddac2d77dcbb485bcc57cbe168ff874989c197f49f2a28675d2525"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py":{"size":12682,"mtime_ns":1783858998986861832,"hash":"b98ac3f3bc95c2b42c481ac9ae9137528e55845d425e5d2184827dc424304e42"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/__init__.py":{"size":665,"mtime_ns":1780804649232229595,"hash":"f720195209c1783d8b2526220a086c2ae2769d76a12bd7df74136f5432c7b75f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/menu.py":{"size":30932,"mtime_ns":1782790854866245387,"hash":"4e9de047e67ff365d17ac28d30e1baa72cfa3c651caa1b9776e225fc07da0e58"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py":{"size":50055,"mtime_ns":1782855138852859245,"hash":"a5e74057222e3359f6077b2fd05b2db4d058ec2702243cc449bff8d448d44a05"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/workflow.py":{"size":21202,"mtime_ns":1782790854865038715,"hash":"3950dd8d9855f5ed33a0e15883f7e442c4e26bc51672209b1e68ce0d0c9ce399"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/leave.py":{"size":6916,"mtime_ns":1782790854865571301,"hash":"6e03239433bbaecc54f72fa2aba2578573ae6c7fc881f287ef57dafed1a0f1b5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/workflow_callback.py":{"size":3584,"mtime_ns":1780108930810395025,"hash":"a033c13c7bee7f4b636198c1efa47f2abba0d890657e52b0b7057568d4d83a52"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/workflow_engine.py":{"size":14042,"mtime_ns":1780113992914903818,"hash":"5c06a59c734f598d5c7ebe95d30f048ba3a97302b938bc9320d97e5a053c7aef"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/web_auth_roles.py":{"size":5592,"mtime_ns":1783858473640363111,"hash":"04c2cd67a7ec8190aa7a9db717a722cd347a52279ac3ef5bd284777f0698a904"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/ws/__init__.py":{"size":26,"mtime_ns":1780108930810617026,"hash":"d4357444e9b5b0a8593000fb6e4dc37469ebe008e675bf42ec0d55d463f88fc6"},"/Users/zlwu/work/00code/shanxia2.0/backend/README.md":{"size":2752,"mtime_ns":1780114581291841672,"hash":"f5def8d25af0556a443c31a73e81f958883b60cfed8b31fac457f2832c2b6d58"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py":{"size":66592,"mtime_ns":1784122553836870448,"hash":"1a0a09e5f5d9eb2d5e18e2f7d851287442ee370a3abfbf0b487ee4b4a18d43b3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/__init__.py":{"size":0,"mtime_ns":1780201410213315055,"hash":"a6d57250b43cbdecb56b7a9d55d29642b808be368733e14b7df2bd196f54d64d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py":{"size":7820,"mtime_ns":1783820526204158517,"hash":"b8d626eca1b0fc6b0216a66afb1cf234155310d3077d940d5158111f873a414b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/__init__.py":{"size":0,"mtime_ns":1780201410210254759,"hash":"9b8fcaaabdc85883c9ef392b596b60db0bd3b2f1623fc8012e55003f234a9875"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py":{"size":25974,"mtime_ns":1783820522540308906,"hash":"6d1fb7bc06a4f16c729b1b226377ffa38b9b47bf1cc75310dcefbb8f6e480574"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py":{"size":151289,"mtime_ns":1784119033682636742,"hash":"ceaa64369ef66891310f391836c580beefd5a69854b3a5a0539a419744a311b0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py":{"size":9646,"mtime_ns":1780202350147822837,"hash":"4f0ab87e7a12534011b69f58079ca206d5443eee594849ab4aae728bb847de0d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/tenant_context.py":{"size":693,"mtime_ns":1780201410210198550,"hash":"0a810658d894d35b9e981faa1448e1d02d617ecbe563bd711f6ce5a8f9db1861"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/pool_rule.py":{"size":1848,"mtime_ns":1780202212734233591,"hash":"b0331e17e801d206fba2fa89df1a66d1758d850dc5547e076218e16c8211a3e8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py":{"size":1340,"mtime_ns":1780202198698231150,"hash":"7a6b76e0e39ada0783dfbee92280e9f06299b6662b08abb13ab1b0d9c70fe370"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_follow.py":{"size":3716,"mtime_ns":1780201410213934514,"hash":"3979cecd62a4f2ee5dd925639572208e36b397620d91a9ce49a59adfcb2a9d55"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py":{"size":13811,"mtime_ns":1783823672041317102,"hash":"b91167282158aeb11046dccc4bf2f29a13307a0413b3d7b3c860b17d37f8ad4a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py":{"size":4856,"mtime_ns":1780742840975948859,"hash":"60c714cc254d70f39b43205bbcb7fb4c563e807ddd070eefaaa952ae96048377"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py":{"size":8816,"mtime_ns":1782687680547203228,"hash":"779f7f46e7ef8bfba27390d56fa071dfd3a8446d9d3b3361003b1c239f7169aa"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py":{"size":8121,"mtime_ns":1782687665525772610,"hash":"ec67fc7667847017a8d8b5a276f5c75328bda7fa360746d80c7890de3f6d4b76"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py":{"size":23825,"mtime_ns":1782687664490640155,"hash":"5d8934ae6318de87b0761686fe491a7ec2be02792a85d84308c383af3193fa8a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py":{"size":10482,"mtime_ns":1782687664918872966,"hash":"f4e3a684dd7a6c7c927e10e8e1e0c108c151b963777b85c5b74d7e7871f3a438"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/generate_dict_reimport_sql.py":{"size":10692,"mtime_ns":1780201410245078685,"hash":"a4faaf61f246dad04ec3933083ab4348e5d2987ae1ed34b1f6d8f19535642a05"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/statistics.py":{"size":412,"mtime_ns":1780201410215906642,"hash":"fb1957d0fe87f22c37ba5bdaa5f3bf2bb4a40685a21a05dce98326581bb4844b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_pool.py":{"size":3725,"mtime_ns":1780202237342131933,"hash":"0f26ac2bcb585241f25302787184db4db422934e5d896ca25bbe7efaf61d92c4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py":{"size":5642,"mtime_ns":1782649310467813967,"hash":"f954dc5479f42a52fdb3f05ad9076fdbe43e569bae85299fca6c8f37c7323cde"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py":{"size":3104,"mtime_ns":1780406386885207867,"hash":"a59df3aed2c976904e3b5325fedd1621435b322645aa71349f3356e0cdc17424"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/oss.py":{"size":1584,"mtime_ns":1780201410212966513,"hash":"9349799b02a3531d8e1b46f9f70d3b6630afd7306663c779bd11f25448a16013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py":{"size":7446,"mtime_ns":1782687666050313280,"hash":"e0f2069c43cd272e5f061d30b47a42140ac37aa26379985fc781f8a3851aa44d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/opportunity.py":{"size":9391,"mtime_ns":1780242127112297110,"hash":"2e068961824a1d3ec0da0a94a3c494b63582b3251e5f4e030ce3e12897e85002"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract.py":{"size":10565,"mtime_ns":1784195323916483606,"hash":"45d9dfeb58bda22227fcd242c738086431616466bb8ee9f1466927d75d4bec48"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity.py":{"size":42231,"mtime_ns":1782687666592409903,"hash":"75f54438002e070076fe37ec2211c5fd67bf4aebd2607ac94db15e30d6f634d8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py":{"size":92433,"mtime_ns":1783763318740360571,"hash":"b2362db2f2df750afc1c2263f5e6ac1ccd5daa8b93ad5650d56028f452597837"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/monitor/__init__.py":{"size":1,"mtime_ns":1780242127108406092,"hash":"bb5b318d3cb224c50a2e0286e145f89ea7278437437fd17d7c865d67ad148076"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/monitor/operlog.py":{"size":1069,"mtime_ns":1782699353340106185,"hash":"b9f0a382f8990f69391b26bb75b4538d141d6adadc4260fecaa8b33cb44c063d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/monitor/__init__.py":{"size":1,"mtime_ns":1780242127112307360,"hash":"0592c62ce1172d93aca98cbd9aaa54b9c2668022abf3581249516472db312293"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/monitor/oper_log.py":{"size":6673,"mtime_ns":1782699352542520022,"hash":"0586702734f693ee099af38d407c71cc0a840153f93174699c5a5201e0a9acbe"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/monitor.py":{"size":2789,"mtime_ns":1782790854865860510,"hash":"5c13164e49d7ecb6836cf8e65a705fccd518399b85d3be2318c9581a98bacd51"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/clue.py":{"size":9417,"mtime_ns":1780215022189075651,"hash":"2676afaecac4bb6da185674a9421dfbd40834ca21520adf66bb6b175fb728677"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue_follow.py":{"size":8493,"mtime_ns":1782687674053739962,"hash":"54881f876d1842ee4a344d049ea4b5bac18b243535338077cb3eb3ec8b60e9c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue.py":{"size":25820,"mtime_ns":1783155705954031080,"hash":"3526af7e7e79d505911690355890ccdb3a1c30d302534ffdc8626a454cc2499b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue_statistics.py":{"size":11229,"mtime_ns":1782649305846991404,"hash":"fbc3b4f3356256787839cc5b2a6f8dff41dcf9eb27c791e427e816e3ba14e094"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py":{"size":10069,"mtime_ns":1783821986040417425,"hash":"06c9f3deab3472b20429c12a618ae2d4d6efd3afa2353ac44cd52651a596af4c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_product.py":{"size":10346,"mtime_ns":1782687669972916544,"hash":"40b497a41ce4003e128dc305abedc54e01dbaad8a8f7bc1ecec1662a3953a1ed"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py":{"size":9594,"mtime_ns":1780743830255260394,"hash":"b20594507aab09cebc3d540acad04547bf780cac9c885187138f5d64718ed513"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/__init__.py":{"size":0,"mtime_ns":1780242127043319167,"hash":"a66deceefc987198863f61b8aa1b5715483a69c4a15ef47cd5586c5d8e429b97"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/excel_export.py":{"size":4411,"mtime_ns":1780242127113233948,"hash":"7fbde3fca845e4705487e7f801caee308bcc0c99a9da7d0c99681a96eaaf6076"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/supplier_info.py":{"size":3679,"mtime_ns":1780242127112269527,"hash":"8b797e9dee6ac7ff806a8ea23bef5fedce648502ea23287e1b417e9f96d22c2e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/supplier_info.py":{"size":6916,"mtime_ns":1782687684650105460,"hash":"0b66714e36609688f7ce79ecda0679d20df115d2d64a0dff1cc0fc76df7dca6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_product.py":{"size":13126,"mtime_ns":1782650413581368849,"hash":"cd2fc23852ead3c4db19e34bc33c1560fc5f5d4cd7cf51b61def8bf37c44c853"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py":{"size":5961,"mtime_ns":1780745856749183842,"hash":"29c52786df396aededd0850e3c8a3a36f3fb6a952af03adbe1768dae212b6804"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py":{"size":48137,"mtime_ns":1782687675213433843,"hash":"a2ff5c5b74a2becd0949aab6aea8cf63440cce2c0bb22e1a1661463e0b2e963d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_product.py":{"size":10537,"mtime_ns":1782687676011228777,"hash":"57d9d5b4fc2bc8b68c0388a4b8a9c1322539ed7e538764fc23521916429e07c5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_share_log.py":{"size":4277,"mtime_ns":1782650254630170341,"hash":"5bfbf7ce2918f9ecdbbca6fdce17d200cd52cdc71b2dfb44ac126a36ca0ed734"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py":{"size":8816,"mtime_ns":1782650314936479798,"hash":"736353b8c2c5073d260e007a166234bd7d57958bcc738c56a1d39cfb22381180"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/crm_quote_pdf.py":{"size":9877,"mtime_ns":1780242127112382277,"hash":"fec04892fccccc3601fbeb012c92c77110496910be44102de40b4610148fa58a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py":{"size":25633,"mtime_ns":1783825326810765171,"hash":"c51b70766aae85dbc537bf5b48a2c350c73ea8e93bcad2a9660d8d45c6d0979d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py":{"size":13958,"mtime_ns":1780763324103831772,"hash":"3d7fbbb90728568a2577e52d8986ccbec8f599d04a0ef9e330939d1fe729bc98"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_contract_routes.py":{"size":29547,"mtime_ns":1783825526614169736,"hash":"95969972c0773528b91d9728d303feae5ca7187d89a49495d5129dcedffc19dc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract_template.py":{"size":2897,"mtime_ns":1780229101351431207,"hash":"935adfc7659e31201cd83ba8387bf6abcb39e7cdc63fa4692d699ed874cf113b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract_change.py":{"size":2496,"mtime_ns":1780229100306468735,"hash":"05af42f088f6cc400c1e3445d4a2c96670edf482328b361aa4f231230d958729"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_template.py":{"size":11858,"mtime_ns":1780229131746659196,"hash":"b9bdbe6a33c933aefcb25cc57e94b2fd2dc75f8e5822434f3912aa0153dfca00"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_change.py":{"size":15985,"mtime_ns":1780229123819597506,"hash":"771b110d3d136c45106dd61171c724c559b5b4bf572ea7b8c2b648f0bfe629c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_contract_sub_routes.py":{"size":25165,"mtime_ns":1782650354912882614,"hash":"b2733fd74cb7e6cbe6518fc5a5700e387601afc087be09f395f3c61372099847"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py":{"size":1122,"mtime_ns":1782219602888987090,"hash":"fb9fea8983524e3891357016b6546d982c4a82cb782fc01425f70472d4338b6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/bx_auth.py":{"size":1473,"mtime_ns":1782650780925056463,"hash":"678d9ff99b5c89575ef47e5c9e61d495f364917fd6cfb2b322c4d5035d3ba359"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/bx_date_range.py":{"size":2363,"mtime_ns":1783745556349035158,"hash":"e8b487a9bb4072356cae7b1b38496c441f9a1534d6807798448e6de97073d669"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py":{"size":4679,"mtime_ns":1782003396630684570,"hash":"bc3f798cfbc359e0327d72e3c0513fe9cbaee196d0d85bcf6567cf5df4211d97"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/bx_models.py":{"size":16644,"mtime_ns":1782003187247224106,"hash":"37c7372f38d76f1020d31ce8ca9e7f0cb3bc3c204a50deb092b494ce8c983fbf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/__init__.py":{"size":81,"mtime_ns":1780750556881734563,"hash":"07c3422f745afbff1c8162b3782fbb4b8de65084e7e9bbcf45abb9d433d65f98"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/common.py":{"size":1547,"mtime_ns":1782003187605255900,"hash":"a75ca6a0d92f93408eee00cc5053206d28a545512e4cd0f186be9e00e3346ab1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/__init__.py":{"size":777,"mtime_ns":1780751360180065853,"hash":"3525eb716c238682a07a116818d318b8a494fb24b9cefca5114d30bc50d095a5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/expense_item.py":{"size":1668,"mtime_ns":1782688293668634639,"hash":"ac07c7b05fe990e743dd5b4e96a85b59431479ca11b98cce7c340a93dbe99ce1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/workflow.py":{"size":1677,"mtime_ns":1782688293973889288,"hash":"f683e5bb7a45d0bae3b3f262c201453155eaaaf2c8d7f14f567a14295a68d2e1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/expense_item.py":{"size":3362,"mtime_ns":1782650913604714906,"hash":"c6a142011870516822cf11cff16a86c56908f00680eb7c6219c8441c9b63632a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/workflow.py":{"size":4984,"mtime_ns":1782650913326708063,"hash":"84285aab7499ce9280156c5814b2dc4fff42841803dd673cc6bfdc6eed498283"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/expense_item.py":{"size":4366,"mtime_ns":1782650887981843546,"hash":"15321fe1df77a555af579474434e3b401bd042555d19ea81a066ef754915612b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/__init__.py":{"size":34,"mtime_ns":1780750594045301798,"hash":"583b12a6d2c9fd4411b652741e73324df9256138946ee873a0ed03169f8dae2a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/workflow.py":{"size":5446,"mtime_ns":1782650919964956073,"hash":"1d72733147e0ed997094d7f92d1c1f5e1e108093a50e8e523b3b016c3dd676e4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/base.py":{"size":3931,"mtime_ns":1782687617846731919,"hash":"dba80b8f4e26bc59efd2b2aad6bd430c0315133a98bfbbe1b93113b60baba8b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/attachment.py":{"size":525,"mtime_ns":1780750871480000584,"hash":"f287214c72345e41d9d122ca55b4d3e279635d99cbf10ed530de0ac32374f31c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/advance.py":{"size":4603,"mtime_ns":1782688296833335474,"hash":"74b6e8bf6906518f80f16f218f1af74d2c356a6f392a4e8a69466f4179ce0b92"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/attachment.py":{"size":5758,"mtime_ns":1782790898570675189,"hash":"e88b9181e7c1a839074656ce2260cd6f693821402a24f08dd1c0ef3c160f8fa8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/advance.py":{"size":13370,"mtime_ns":1783745567004734594,"hash":"3097a75d86d09951d7de7df10a32f5aedcf6ce11279bdf6dfe0005ec9d8a7be1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/attachment.py":{"size":4582,"mtime_ns":1782650868959755751,"hash":"3a6480cd051bd1af733a67e5babcd64f3f74cbe230d72364b599cde8b0c67a5f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/advance.py":{"size":24037,"mtime_ns":1783746967707088251,"hash":"4834348d099b32b70d14e1b56279dbb385f42519646351d8cb220da8c5fe27f1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/storage.py":{"size":3656,"mtime_ns":1780750869826924187,"hash":"ac98980bd5b6cbab6a9394b6debc678b050cf4df969eccbc5f2d419b615937cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/reimburse.py":{"size":5638,"mtime_ns":1782688293517624966,"hash":"aa47d8e87982a4077ff067dff2955db9eb67171d6368bc636c1eea17ea7682f1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py":{"size":15431,"mtime_ns":1783747621462206303,"hash":"dae4bfc4be69ca2f3ee8fd2e9e3bd6053a2904c8f7a0c83e536f2dd71874f918"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/reimburse.py":{"size":34743,"mtime_ns":1783747614591546341,"hash":"ba8f3ff0304a6668bde3c2e6c3e15427153389f7320b943fb261d1d947b41d1e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/payment.py":{"size":15715,"mtime_ns":1783745581266319098,"hash":"0d0b8823013a63f91baee0ea19b56f203e70fb1e450f873cfeb634a6cd017f54"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/approval_cycle.py":{"size":1296,"mtime_ns":1780758200904804714,"hash":"308c087d94ac253bfc7e2d5455a06ae8ceac034adda41b5c61dd315dc167efaf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/db_models.py":{"size":8110,"mtime_ns":1782219570945208920,"hash":"249bb0971c263436095a6324457557b6ac5cfc3ca5ac9bc9499a9b4cd21d42bf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/__init__.py":{"size":544,"mtime_ns":1782011200096708592,"hash":"822060230e155b8704feb447b908c226d4c53e62b3e6df65c89dc3c7a0e6e07f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/__init__.py":{"size":0,"mtime_ns":1780805614160787709,"hash":"2cb780fb722e6dbf2ecea6f6fc19345fb453e1a3c40694ba0ff7465eb7cf7d33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/base.py":{"size":2754,"mtime_ns":1780802262496001324,"hash":"d2fd88aa376aa5914125381cf61a4ae0f343657d6bd7db1f9fe1254e7aba5b2f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/vehicle.py":{"size":591,"mtime_ns":1780802980783200520,"hash":"d87e4262b344e02a7be21534e382e7b75f5543f599d673ddc046134ad0e8ba4e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/__init__.py":{"size":84,"mtime_ns":1780804619867600032,"hash":"5193d61f7204f825551f083e79722805fb2abfd953bb552e80950bb3ff9784a1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/vehicle.py":{"size":3780,"mtime_ns":1780802985736476363,"hash":"aeb49bdd49cb5091c37275b856396e75bcd24557e3a1b58ef668910b1b0aff64"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/vehicle.py":{"size":4776,"mtime_ns":1780802999039302982,"hash":"cf32c66499ca86285561b573d222837ecc76c3fa51b0091b802485fbde8e2bf2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/plan.py":{"size":1788,"mtime_ns":1780803836065964235,"hash":"30452b2f7fa19f5677475ce08b3e355dae2440d80d2e9049f8417de01d822863"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plan.py":{"size":4167,"mtime_ns":1780803836065953735,"hash":"acac159dedfacb36f02982b700b2a7c7a8fbb4644eb89c3b0c13871941917864"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/plan.py":{"size":9619,"mtime_ns":1780803836065902943,"hash":"e311f2b8b5e7785db764216fbecfd2830a11569ccb827a00c8bd3a2ba3804383"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/inventory.py":{"size":3948,"mtime_ns":1782219604456801044,"hash":"19ea80e59a1309518ad6183a6b0b8751401f4724d7b5101d47defc2417ec36c8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/inventory.py":{"size":16423,"mtime_ns":1783156035144390497,"hash":"901602a8fe362aec9b89ac6f2ee578f1eeb105fcf12a1a6c3ff4ef98f4ad1ef3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/inventory.py":{"size":10663,"mtime_ns":1780803878293678536,"hash":"e38abdd78010b0e96dcb65ed826de03a752b40e3355546ed06a4b07640cf7013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/weighing.py":{"size":5347,"mtime_ns":1780935341753643087,"hash":"f734c66269b713a840d7ce6c1c6150bd2dc00b114b09963362202d119c82301e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/weighing.py":{"size":14940,"mtime_ns":1782687688848020877,"hash":"71d143eb05d0d3f785f5962892bde64dee3c2937139c975b52af62628f308d46"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/weighing.py":{"size":24042,"mtime_ns":1780804029884092079,"hash":"bc9d5cb59bf90597db0e0a1c9afcef5c2b429c3945c92be34bfdc1e77d26ba28"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_auth.py":{"size":2500,"mtime_ns":1782790853674329877,"hash":"4988b71d4e54b326c333872b34743914d67b15fb753c1b0231e9b00b366458a4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/plans.py":{"size":4876,"mtime_ns":1780935329287069452,"hash":"474cb68905249cd5a6237443a412d49cb28af2e0cec61c9bf5c34ec54db1240a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/master_data.py":{"size":619,"mtime_ns":1780925759582999052,"hash":"6f6b2c2e1478efce74b8c6e6fb058d914b8b79adfadf2fea2d91cb55d3f9cdce"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/vehicles.py":{"size":4748,"mtime_ns":1780925781827569662,"hash":"8f8b32dfbf4046cfa0b6645d211732596f7027d46244d9c50132425220065483"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py":{"size":17098,"mtime_ns":1783156035873015369,"hash":"bd2c8344e2ab765ceb2a2c91f5cf2facea319ae66c9097f5468a7f5d753b67dd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/mappers.py":{"size":6955,"mtime_ns":1782219619253708711,"hash":"b9e97f66a0a248d06c2f960c3f5ac4fb3369cc976c16709227dee0cc1513d221"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/weighing_logic.py":{"size":4110,"mtime_ns":1780804818442134500,"hash":"468ded88a0a4a397a96884580c88c59291c0b6effa897f08f1b3fea7857f9191"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/dashboard.py":{"size":514,"mtime_ns":1780804990870580151,"hash":"f2c1b1014d0d769abf32dab3783de65fe7fe327c956ffbfe44adce94542f8892"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/dashboard.py":{"size":6576,"mtime_ns":1782651340330906738,"hash":"753703fbbe8ddc02d8fbdae78df4abd1448f5ce5878e2f0390111360fdc300b3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/db_auto_plan.py":{"size":949,"mtime_ns":1780805095845033710,"hash":"9f7513cd2e74f9ddfe5cbee4ae58a40ee7a58aaaff051d590b19a6e1b08bb46a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/plan_helpers.py":{"size":386,"mtime_ns":1780805092108105489,"hash":"5c6ec7612b204e1dcb65c5daf03fa7f8ffa7710cd1ace63be4f7ca00cbf318b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/auto_generate_plans.py":{"size":4699,"mtime_ns":1780935400833764213,"hash":"d0760cb8155d60e18040bcf6fe41e6964640a3dffd6f4b7bb68678c9f31ab29a"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/run_db_auto_generate_plans.py":{"size":1043,"mtime_ns":1780805102157096922,"hash":"3cd8f15b677f21b2873ff384fc0581da264a53ee4318da3c8262101156e3225b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_dibang_data.py":{"size":20215,"mtime_ns":1782011225157870526,"hash":"28a49a423a784e70bec424b702f3d58f69b6f847153c061414efdcdabb660d0e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/inventory_id.py":{"size":2574,"mtime_ns":1780934632326984469,"hash":"c5269cbb273d987c296143b83f1287762ce67d7ddeccfb0a72bc70234bad9f12"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/product_helpers.py":{"size":2106,"mtime_ns":1780935268573313971,"hash":"cea6b0697eb64081a79d18ab95f0f0477714505a7aef82a41672197b15fc8b14"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_db_inventory_id.py":{"size":586,"mtime_ns":1780934647395760353,"hash":"71a9617d5d0f2c23416686eded204b4c941b47afc3fd6e3facf0c75401e883d9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/pl_models.py":{"size":61386,"mtime_ns":1784032430468998611,"hash":"e23b4653b806a1917eba187d8a3584dff598ad74bc21c8295c179abf0bcfe17e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/plan.py":{"size":22053,"mtime_ns":1783754594278544472,"hash":"f3a69a96b7916cb34e23e673b3155d83f7d9698b2582cfae96dedc392da8e6b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/transport.py":{"size":17945,"mtime_ns":1783211732481443217,"hash":"477ebd0c4c084cf8bccd10865e4703b6b34829d30b791c32232d96c1bac2947f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/__init__.py":{"size":5012,"mtime_ns":1783242582112287271,"hash":"1dced39f250919efc4aa798daee1efef3adcca054c7483843536c455919ff106"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/freight.py":{"size":11275,"mtime_ns":1783213205154827373,"hash":"557f9e9f06ab6f18eb33f54a579fb8ab0f6992d9b25bb530a2ec49d5b2365708"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/inventory.py":{"size":7742,"mtime_ns":1783242580346813026,"hash":"9b57e84bea4844ce93220773544064ed6979c5823b07831bc5fe734b6dc860d3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/plan.py":{"size":48150,"mtime_ns":1783945795484267217,"hash":"a9a876816af12e43b3fa6b9dc748b74b7107f0cae590e68a2a789945617c620e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/transport.py":{"size":33087,"mtime_ns":1783155250374329483,"hash":"6f7703d37ce761406d42f3be4e53ee85be0d3e43e5b880401087dde47ec6608f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/__init__.py":{"size":1243,"mtime_ns":1784035957226411568,"hash":"7d66d74042036571b769e5364616560597a3c3347cb9dea6cfbe04c40483b5e2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/freight.py":{"size":10543,"mtime_ns":1783760751060550793,"hash":"2d64ca83553dbfc928887171941761114c5db012b9c4a01d34e2b522902bac38"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/base_data.py":{"size":33513,"mtime_ns":1783849851800999450,"hash":"133db64dcfad9ae687b90084eb8f1b5f713ebabce852bba26b600cab52e51c50"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/inventory.py":{"size":13188,"mtime_ns":1783242583174353699,"hash":"da03959cdab792ef503edae6ee27e45f9b5a8db1c63cdbcd97bafa85acc9be71"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/check_pl_json_aliases.py":{"size":2918,"mtime_ns":1781880510604174541,"hash":"b04c5636779ecbcb3082eabdbf42db846cc31f7376129845820c6a4c1e829104"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py":{"size":19762,"mtime_ns":1783849843323086946,"hash":"21d29a63b2dbd9178f2239d109c4e71e668c2caf85788dcecc34e7533f0df4e6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_personnel_service.py":{"size":6707,"mtime_ns":1783845044115228598,"hash":"34f3d1d723890e294aac765a66d7e86ca87f4288f42cec674bb9151de091fe22"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_cert_service.py":{"size":7694,"mtime_ns":1783849439910099822,"hash":"7bb0a6d4dfdb1ec11e72e971873791b8e188939e7c6b7328a0a2f4f8986c9d1c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py":{"size":39798,"mtime_ns":1783768766029953703,"hash":"0e0620d2878e4b28c560daf8095d30e8e8a281653d40baf01ef94e899ce114e8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py":{"size":9697,"mtime_ns":1783209147246415813,"hash":"aac3cfd1a30df824d1a4867c5b358e3155e19a051dbaffbae89c995b55767a8c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py":{"size":15310,"mtime_ns":1783777749440894312,"hash":"c506eb84c104ce63b98cde5b16644f16ddcf4e3aa335089bedcb4c267d21fc0d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/public_inventory.py":{"size":1492,"mtime_ns":1783211660985345577,"hash":"ed4e21307ac463410d296a2f8cf53f8e0429187344537bcf1e1212a7affa06a6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/public_inventory.py":{"size":6968,"mtime_ns":1782790898570930774,"hash":"79aa205d2e5e89ed45dd7b95068b93e3f6db82ee9258b0331b21d6c8ab551582"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_inventory_link_read.py":{"size":782,"mtime_ns":1782225276143253698,"hash":"6471dfc9a1fbe66223f79490a5827b2422e5ca6932305ccde6aef4b641676a6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/public_site.py":{"size":8470,"mtime_ns":1783211738132414332,"hash":"08745e00bfa7bd756fbeef7ae7a1d3bf957d6403da51cf7825def02a38502d01"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_site_link_read.py":{"size":2362,"mtime_ns":1782225460524562610,"hash":"3b9e1b93d3c4375b6b3adb4476ceb0df356654089d994aef4fea7e4f29266c06"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_transport_site_service.py":{"size":3701,"mtime_ns":1782225248175867714,"hash":"07585f13aaad965c106e88ac26f5f8c58852c0c2bb0bdb91820185133d799219"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_freight_settlement_service.py":{"size":47560,"mtime_ns":1783213204589333188,"hash":"53a61d4da0cd2e2d0bac74abcca13de3f3d506b603453811d8f1cd53fa50b358"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_data_scope.py":{"size":4660,"mtime_ns":1782649048011371782,"hash":"9545dc65fac7e13bf07ece2ec828ec5957bb115e23d0ac8c996f9c70362a4ecd"},"/Users/zlwu/work/00code/shanxia2.0/backend/DEPLOY.md":{"size":2574,"mtime_ns":1782639356701497576,"hash":"6989c30ab5c99ebf488137e31e5561b4a00d36060716dfad3fc247b673538818"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/data_scope_helpers.py":{"size":3358,"mtime_ns":1782650085670691361,"hash":"b0aab03bc7b3afb2faf39410e9881b65e6a2eeecba592d1655b5b9359fb4dbdd"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_quote_contract.py":{"size":12491,"mtime_ns":1782650163950860693,"hash":"eb6b944df35fda5edb6675b69b00f5a83a75fd78785251d1e81e1788ed439cfe"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_api.py":{"size":14409,"mtime_ns":1782650231443625388,"hash":"fb4cf4178a4b7c5530999f0c950ed38310dfe81b3168c10117849d6f512be01d"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_api_calls.py":{"size":3345,"mtime_ns":1782650279067732462,"hash":"57732d0beb80ee17b533c78ce0250967fa83c68354ea9d1972275ba1fbc39007"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_data_scope.py":{"size":801,"mtime_ns":1782650506729785291,"hash":"0f0275c56a43603e69a030dd1d284cfc7982a7636423cfff6d0e692eb4631cb1"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/apply_pl_data_scope.py":{"size":10945,"mtime_ns":1782650517176615737,"hash":"928fe2112c9fd8bab4da7f4fc67d6d247c78187ca3b1a4146cc2fd3d9e04697f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx_data_scope.py":{"size":2394,"mtime_ns":1782650938092205819,"hash":"1e8e1dbdcf4bc68c2e30b99015e930bb9522bd1f633e95604ec6a62bdb2b43f3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db_data_scope.py":{"size":796,"mtime_ns":1782651142571517234,"hash":"ad4e206ae53e25247ebb004e0ef586077a6e7df0eac7b14973c26b186cffb2eb"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/delete_guard.py":{"size":3572,"mtime_ns":1782687610196676295,"hash":"223d91c51a1677b6a4b7802d5571af14d5cda8bc45e4e757b1f2150990a69bce"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_delete_guard.py":{"size":1565,"mtime_ns":1782687611517772849,"hash":"5e2a45f63b7296e3a10dfbd4b4716e54370e1439248881d6591cba5c9f6581d6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_carrier_service.py":{"size":3479,"mtime_ns":1783848338604396640,"hash":"7d12991ffd2e3d7b768aaa587d7f9ae1ed4d641f65ec3f053ed103fc74a5a005"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_recharge.py":{"size":6299,"mtime_ns":1782694169098881801,"hash":"4d5ab880c0c3ca91b485e1ba53725005b9f89fe205780d58a738c861dbb7e6f8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_recharge.py":{"size":8824,"mtime_ns":1782693867411719704,"hash":"f084b6fb3e80de0455ee9cfcc857ae5814b79497786367380f3a375b16c4bf85"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_recharge_service.py":{"size":22641,"mtime_ns":1783760938743438422,"hash":"a4a9377a8243e30dd7d6a8a175c68525009465fdebdeb01230849156dd8b59f4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_maintenance.py":{"size":6563,"mtime_ns":1782695447503836332,"hash":"c34b79f5bcd004c0f6353922492883e4b08e5a6bc229f0265c9af850d235848b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_maintenance.py":{"size":7793,"mtime_ns":1782695447583143336,"hash":"79033735d527926ac082200de0b89a122c53db3cbdf5fb33e3cc69f74dd017f5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_maintenance_service.py":{"size":23307,"mtime_ns":1783761151873696556,"hash":"0c7aa346d9879347d6a98c435fadc47873907ca0774147b69acf0d392e00e58b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_urea.py":{"size":5609,"mtime_ns":1782696196169930337,"hash":"71b7de2f90b3c7c732b59683e5cd4d858288121414a1ff2679c039299f5fb024"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_urea.py":{"size":6696,"mtime_ns":1782696220189638136,"hash":"750ecae5cdcc857031e618b87ffa9b28607bd47e72ecf6dc7ebbe51003682df3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_urea_service.py":{"size":19556,"mtime_ns":1782696213546483763,"hash":"03d389e791e5fac9a5339d1259d342952fced97712c3657e8f791426de32743b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_decorator.py":{"size":5312,"mtime_ns":1782701254052728785,"hash":"e476146985da29ad8cb77064d10314470546a8a52f6026a75fdbadd3fee34288"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_infer.py":{"size":1767,"mtime_ns":1782699326717654441,"hash":"4346307abeb03020a7069f560556b9954cf50203efb6ac65b0a4b9644b6a9b2d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_context.py":{"size":868,"mtime_ns":1782699327268762002,"hash":"064c356f3f0fbabc454311445f02d375b965c2c055ddc51386d4dad50ac3337a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/redis_client.py":{"size":1691,"mtime_ns":1782790834895168051,"hash":"e5d84d7433ce745da7a37fb46dff5d5eb6ae027ef0efbf406da0c9c7fb6089ad"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/resource_snapshot.py":{"size":3823,"mtime_ns":1782793446819247296,"hash":"2d65c990d058d22010f8d4449652eb752c297a046b5d7b3ff6755c3e1cad0cf3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_transport_resource_snapshot_service.py":{"size":4861,"mtime_ns":1782793450356380638,"hash":"6f94dcb582fe725738a54469e461aa0124b9754b2141cb78d3859ff1a2f25ca9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/datetime_parse.py":{"size":929,"mtime_ns":1782905360746020898,"hash":"7a4eac85768cbeb0ba76f7f478ddadeeacab2498cd9be4070a76e1cfad693cdf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/transport_address.py":{"size":2604,"mtime_ns":1782906539731495489,"hash":"6548b4b0c8c1d8096ce96ff1d5b523c67b12300f9a3eac66570b0256478a1120"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py":{"size":6875,"mtime_ns":1782907484528042124,"hash":"7880a37b53dc2e88534ca5750097792ee7e893c94d87bf1eecd8b6055fbba181"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/pl_cert_expiry.py":{"size":711,"mtime_ns":1783208067000967398,"hash":"7c02dbf83fad89c7da757965b545bf77f37792edd0d01d3ed320349b0b60a50b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_delivery_slip_template.sql":{"size":217,"mtime_ns":1783231586212866839,"hash":"e05e3fe7255e6c8a88aceb1aa53d743a4888a34c9fbaa4449c1cb8a275744d68"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_slip_template.sql":{"size":191,"mtime_ns":1783219958449266456,"hash":"e2a17c3df7be5cc0436ef979a48de81eecbe99c03f43662f4b0954a09dfa1305"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_template.sql":{"size":215,"mtime_ns":1783238744737524455,"hash":"24cf12e21f9f61f49c38e654c0ca655f56a21e5e2364e4c2ca4547dad583272e"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no.sql":{"size":203,"mtime_ns":1783240340132373787,"hash":"de9b3c8e1617b9c345b2d4005e4a627f10ded089db89d35f0b389b333b840c08"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no_format.sql":{"size":571,"mtime_ns":1783241697391655899,"hash":"61fc58ebda64c5d6be6bfd374dda99c7134e38dc89031527f71916625c4e36db"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_product_legal_use_cert_url.sql":{"size":1180,"mtime_ns":1783253793703960795,"hash":"01105ec581050477087d9bf65528cfe77ce0026d0fb682cba8014c4cdb046db7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/menu_badge.py":{"size":247,"mtime_ns":1783257567212910729,"hash":"88c31e5ef8cee73327a1a0f36ea7ae0e61fa8f1ae140ad95ed0c0b9c2b4d05f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/menu_badges.py":{"size":1203,"mtime_ns":1783257582921626135,"hash":"05dfdc446281abd9c3b273ebae2f9cbc4efe681fdc0ab288a77903e9e2bf83c7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_menu_badge_service.py":{"size":6108,"mtime_ns":1783258109621359209,"hash":"aec342e2370f584c5ed0024bb08a8346c70e1827c09ab456b4b06e9dfc817d8c"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_bx_menu_names.sql":{"size":454,"mtime_ns":1783254856670799736,"hash":"d40ab4c556ab285498f4689c21736832deddc754a9a2b7d806e870ccb39fc9ae"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/seed_sys_menu.sql":{"size":82266,"mtime_ns":1784119136237565207,"hash":"e0c15f9bd4525b6e447a7e8da3aa6bf93c14c47a1b99dc5cb4bee9dfd1a60e8b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_menu_groups.sql":{"size":6367,"mtime_ns":1783256049450807031,"hash":"5f6964d1ea2712d3d72c8f43f08c16597d85fe79f3f54c8be99962090d6c2b67"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_doc_reminder_menu_group.sql":{"size":1562,"mtime_ns":1783256051207137180,"hash":"82a0ce8c5293f5051967633c1c2e0a1dc60e1fc7c97919c9e0866246bbcbe3d1"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260711_hide_vehicle_urea_menus.sql":{"size":269,"mtime_ns":1783760394518896877,"hash":"a5f66647cdb4f0f403689b47b804f8099d7d710753823ef3ddc5e7a5a9ca4ca8"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_pl_dibang_plan_quantity.py":{"size":4258,"mtime_ns":1783777759829460303,"hash":"6af8eb3c1f6c7ad34cd62f1e82e9c6b96737ffd48ba74dda7c5f888c55dd11cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_cert_required_service.py":{"size":10503,"mtime_ns":1783946967244318920,"hash":"07991890446a106b2d520e5e3c65e27af90c13d00945516ef1ce9bdf2e389879"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_type.sql":{"size":1662,"mtime_ns":1783843576747470605,"hash":"24fcd156f97e2bdf2bd158beb5358fe7159874783a84716c6c18d2565cc8ac1a"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_affiliation.sql":{"size":753,"mtime_ns":1783845019912997576,"hash":"6d450d264921f43c4e74ee4a2bcfc8335d16f77d9e0413267389741a92bf4eb5"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_add_finance_dept.sql":{"size":1697,"mtime_ns":1783855927743333340,"hash":"4ce457089ead5c063ae8e1a6d6553416deb43c54a7edddb574ee2572390aba99"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/setup_business_roles.py":{"size":14256,"mtime_ns":1783858477739135462,"hash":"ac12df2cf75826931c85f4deb3ae28614e31ea825d0beb3cf351a8d4f5cb1071"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_reset_sys_dept.sql":{"size":4517,"mtime_ns":1783855538627076795,"hash":"3795d6127a4dcf55d406be0fe673b8a83655723fe1f07b855e6fe45823d489fa"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_users.py":{"size":28602,"mtime_ns":1783855936414773748,"hash":"f5626fd3ca8bbc16275862080365c3ea2a27fd0f608e2243a284493762a8f735"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/verify_web_menu_codes.py":{"size":2535,"mtime_ns":1783858485781974173,"hash":"16c9c072b5b80fb309d56823963ebd0dd1f437a3f74d7f82711dd8a7c2de86d2"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/refresh_business_role_menus.py":{"size":3812,"mtime_ns":1783858483854587001,"hash":"b2c76109936791e1f624e239b24832237fa0256b38b98578e39825ac215fb166"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/renumber_crm_product_no.py":{"size":9071,"mtime_ns":1783861492796558653,"hash":"320c63801100ea8e9fb62abfb44b3487139377e293310593a877ab2d06e9d2e3"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_product.py":{"size":13287,"mtime_ns":1783860925852062495,"hash":"3e5dd462f2ad6218d2547b66db741132d0179037e6dd3ac24ddaa02a5b970d4b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_product_category.py":{"size":15583,"mtime_ns":1783860690842141129,"hash":"9cbdfdf3335a366aebd0a605431b3952ea9aab26bd564d075d501479ae0b20f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/compare_dict_snapshots.py":{"size":11072,"mtime_ns":1783860128258640426,"hash":"cfc98cc72c5e387317cfa0a7670c47067fffe8f2e540d5cd580ee459e173e4ef"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_sys_oss.py":{"size":22858,"mtime_ns":1783885816251409459,"hash":"20f59e7e19a0c4415bdf17cef32a31db63220346688b3dbe06bc2c52a42d475c"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration/minio_url.py":{"size":4770,"mtime_ns":1783884947929403985,"hash":"54a1bf95512c0a8b5feeb518ea3af76983bb1b0a3ba645898b07debdb2cc52e9"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_customer.py":{"size":25235,"mtime_ns":1783886258025843303,"hash":"f30d5a50a28a1130325a9d9db88586bcae9e2a39434f077ded25f847af2ed66f"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_opportunity.py":{"size":23720,"mtime_ns":1783887271166904779,"hash":"f98964806f32c3020bdd7d644d930760d6ea3ad5162d5f1d6125494263dd5598"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_payment_invoice.py":{"size":13601,"mtime_ns":1783888353771580120,"hash":"c4af77164dac9ba4195c3d239c9679ea367b92f5f7500139f3b59547525af24e"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_clue.py":{"size":18423,"mtime_ns":1783887050391179085,"hash":"72b84e497176bc63264c26d891c591c839f9dd9788988043c5752413c1b62a09"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_bx_data.py":{"size":32783,"mtime_ns":1783888844450695833,"hash":"16751fcd542e209535216a0516d78b62eecb81732d7fe0f9ec051fdf811e93b6"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_contract.py":{"size":36188,"mtime_ns":1783888258230435217,"hash":"a6269c8eeff19f4ae8ff7d22a3544ebc4a1858aaecd59583e6afd140a7fa766e"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_quote.py":{"size":27580,"mtime_ns":1783887475224438064,"hash":"4ac389eb6cb7437d4f5e8203d9908efec9836046ce8628a5e4be1f8b8ddd52cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_pl_personnel_cert_required.py":{"size":2829,"mtime_ns":1783946968430310316,"hash":"e89b3aa798794dc77085af5c4b880cdddcd2c0590c3cc3414f8a5389fd5f6d93"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260713_pl_personnel_cert_split.sql":{"size":3436,"mtime_ns":1783946793684378982,"hash":"ce61899ec7e13f41de08dbc923dd1ff2a1a976603d13c8f09aa6fd5be9c914a2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/ocr.py":{"size":1889,"mtime_ns":1784035957225824939,"hash":"1de70651a8c1c9e0e208bdccb45d0b9c7e7a0f8f9a663941bdbd5ae278234b1a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_ocr_service.py":{"size":11166,"mtime_ns":1784036700055450000,"hash":"6f233150e253813a7c9da30e6e5d6046fdea01baa67c2589a332fe511ab795f9"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/test_aliyun_driving_license_ocr.py":{"size":5130,"mtime_ns":1784032210609057675,"hash":"13d43c9144c3795b8870fbd900ed14f97ae22ee043e2c265a5151525666abebe"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260714_pl_ocr_usage_month.sql":{"size":1270,"mtime_ns":1784032423540552834,"hash":"d7018a4e5be9760846731440be98e53584d8e1461fc4ea54a0c8db61c666e7fe"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/price_letter.py":{"size":3994,"mtime_ns":1784122554297827011,"hash":"6cd75fdbbd6a2dc65cf0b0b29e6206910fbd86f8bedf05bb56a8835130b81829"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/price_letter.py":{"size":13292,"mtime_ns":1784122560635390924,"hash":"1edbd17d41fcc4205faf15de5ce47aecc5459a39d06a920689379a65cdb9c3d9"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter.sql":{"size":11104,"mtime_ns":1784122573332360310,"hash":"548dab479fcde4bf1628ca2093fd7840720473a774a5289b55bfd4f46b902153"},"/Users/zlwu/work/00code/shanxia2.0/backend/venv.bak.broken/bin/Activate.ps1":{"size":8593,"mtime_ns":1780108930820914793,"hash":"ed2ea10761f2798e8980084d754284d3fcb94f1284ae7085c35c16108fe24846"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter_bill_price.sql":{"size":901,"mtime_ns":1784122547991214820,"hash":"11a4eb6f3b4d89c1a5141bd9a85e931517984b77ac213f5842dc590f928fe1cf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/__init__.py":{"size":21,"mtime_ns":1780113982000000000,"hash":"60a04ff08fd97084e83ea809fd13feda6d2848be20ebf309e31fc1dad7523230"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/__init__.py":{"size":665,"mtime_ns":1780804649000000000,"hash":"f720195209c1783d8b2526220a086c2ae2769d76a12bd7df74136f5432c7b75f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py":{"size":55935,"mtime_ns":1787296436102133126,"hash":"d66bcaf4f87640305aabee4fc8ea2821c3b9f52f529489b96bdaf3a9e2e94f01"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/__init__.py":{"size":827,"mtime_ns":1784980394000000000,"hash":"8bd7939017216a2b3c9ea7ed910167f7baf5c02cf724c10b392f6f286f6368a5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/advance.py":{"size":13404,"mtime_ns":1784992736000000000,"hash":"e09d555bad6b1a0ab289d045dda5a4231a54316e34616f60b03f724f9152e73c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/attachment.py":{"size":5758,"mtime_ns":1782790898000000000,"hash":"e88b9181e7c1a839074656ce2260cd6f693821402a24f08dd1c0ef3c160f8fa8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/expense_item.py":{"size":3362,"mtime_ns":1782650913000000000,"hash":"c6a142011870516822cf11cff16a86c56908f00680eb7c6219c8441c9b63632a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/payment.py":{"size":15715,"mtime_ns":1783745581000000000,"hash":"0d0b8823013a63f91baee0ea19b56f203e70fb1e450f873cfeb634a6cd017f54"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py":{"size":20279,"mtime_ns":1787292827767631451,"hash":"7fc8a4c63ac4e125c45afa62a64ca1fcfc6c3fd8651ecfe91fb5d38dfc46c766"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/workflow.py":{"size":4984,"mtime_ns":1782650913000000000,"hash":"84285aab7499ce9280156c5814b2dc4fff42841803dd673cc6bfdc6eed498283"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py":{"size":152497,"mtime_ns":1787293703698558237,"hash":"55bea79d1250920d22e144e06ffef6716294c5de26479c26dbfb25061926a8b7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_contract_routes.py":{"size":31798,"mtime_ns":1786239377894416082,"hash":"9140626feec0f19a8138f0004d290f9d7531682fdbe03c1aa08dfc183020c07b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_contract_sub_routes.py":{"size":25165,"mtime_ns":1782650354000000000,"hash":"b2733fd74cb7e6cbe6518fc5a5700e387601afc087be09f395f3c61372099847"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py":{"size":27410,"mtime_ns":1786150042655485732,"hash":"31c6530c7713f95a1888ee2b5369a32a8de86040b83c68efc74c5a3faf75b7ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/__init__.py":{"size":544,"mtime_ns":1782011200000000000,"hash":"822060230e155b8704feb447b908c226d4c53e62b3e6df65c89dc3c7a0e6e07f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/dashboard.py":{"size":6576,"mtime_ns":1782651340000000000,"hash":"753703fbbe8ddc02d8fbdae78df4abd1448f5ce5878e2f0390111360fdc300b3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/inventory.py":{"size":16637,"mtime_ns":1785807172285029476,"hash":"e64e316ab276224ca0574ec9bc8730b67e8658459f6f0bfb4915ccad0958a177"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/plans.py":{"size":18251,"mtime_ns":1786955259140296590,"hash":"d8afadc3101075459f50f24b2a8dcf8210b31e93ca4486d6e60cbd48a891e1e6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/public_inventory.py":{"size":6968,"mtime_ns":1782790898000000000,"hash":"79aa205d2e5e89ed45dd7b95068b93e3f6db82ee9258b0331b21d6c8ab551582"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/weighing.py":{"size":15133,"mtime_ns":1785807184507708871,"hash":"69a9b973a3c30f447358a6d7fbb7aa52dbac7301c1f726e233063c51b0403a5d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/leave.py":{"size":6916,"mtime_ns":1782790854000000000,"hash":"6e03239433bbaecc54f72fa2aba2578573ae6c7fc881f287ef57dafed1a0f1b5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/menu.py":{"size":30932,"mtime_ns":1782790854000000000,"hash":"4e9de047e67ff365d17ac28d30e1baa72cfa3c651caa1b9776e225fc07da0e58"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/monitor.py":{"size":2789,"mtime_ns":1782790854000000000,"hash":"5c13164e49d7ecb6836cf8e65a705fccd518399b85d3be2318c9581a98bacd51"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/__init__.py":{"size":1401,"mtime_ns":1784428053000000000,"hash":"dea849a84ab13ec8daf7782c055f04682fb763bbfd2f184e37ace15312421905"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py":{"size":33195,"mtime_ns":1786887371449952277,"hash":"945a79914744ae3a97c0c8c042a0d87480dd5e12f403fa3a8d760f48e77fe3d0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py":{"size":10543,"mtime_ns":1783760751000000000,"hash":"2d64ca83553dbfc928887171941761114c5db012b9c4a01d34e2b522902bac38"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/inventory.py":{"size":13443,"mtime_ns":1785202430756770222,"hash":"b14a59968214a71d272cc6fbfc2555a9ea39eb8174697a75bec673bdfda1b074"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/io_order.py":{"size":12552,"mtime_ns":1785484571840900864,"hash":"c1508e2c882a86f5dc3982e2262762704a0c6ec3f15cbbca688e51ccefa6a4c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/menu_badges.py":{"size":1203,"mtime_ns":1783257582000000000,"hash":"05dfdc446281abd9c3b273ebae2f9cbc4efe681fdc0ab288a77903e9e2bf83c7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/ocr.py":{"size":1889,"mtime_ns":1784035957000000000,"hash":"1de70651a8c1c9e0e208bdccb45d0b9c7e7a0f8f9a663941bdbd5ae278234b1a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py":{"size":65332,"mtime_ns":1787278873796147607,"hash":"c654d11577248d927d79af4c155dcdba639e26b90fc5f979d5bc25c388bae614"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py":{"size":12642,"mtime_ns":1787286154365241374,"hash":"572ceb080c14c4ceca2eb391c798726efd0e7b7932b734db2da08e84f2fe14e9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_site.py":{"size":10018,"mtime_ns":1785969013811688695,"hash":"e117273ae089bd4668dbe169bc3bd995d8e72adda2bcb74324df974588759f6a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py":{"size":19561,"mtime_ns":1787282688190594264,"hash":"ff37eb12f52bbeb8f2d5ce77d2db5be1fb44562559bda8c423b44ff813b91a17"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py":{"size":35423,"mtime_ns":1785967888456938238,"hash":"38786a7594853423e2258dab66ae1d034ab107e572808ec14fa5061b761c6849"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py":{"size":6803,"mtime_ns":1787277380108539843,"hash":"efb60eaadc58275ce5a14ba9bcbe8ac56e0c06441b920cef61832a32888e7ea1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/vehicle_maintenance.py":{"size":7793,"mtime_ns":1782695447000000000,"hash":"79033735d527926ac082200de0b89a122c53db3cbdf5fb33e3cc69f74dd017f5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/vehicle_recharge.py":{"size":8824,"mtime_ns":1782693867000000000,"hash":"f084b6fb3e80de0455ee9cfcc857ae5814b79497786367380f3a375b16c4bf85"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/vehicle_urea.py":{"size":6696,"mtime_ns":1782696220000000000,"hash":"750ecae5cdcc857031e618b87ffa9b28607bd47e72ecf6dc7ebbe51003682df3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/public.py":{"size":12667,"mtime_ns":1786197474707909148,"hash":"c8ec7432a0ea688d90e80af3bb4c1fc6bc69c462fc46e8fe4e629ee879565753"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/workflow.py":{"size":21202,"mtime_ns":1782790854000000000,"hash":"3950dd8d9855f5ed33a0e15883f7e442c4e26bc51672209b1e68ce0d0c9ce399"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/__init__.py":{"size":61,"mtime_ns":1780108930000000000,"hash":"3dd1842ee59b0c804176b03b4b8a323bd4a252b7feb1bbc32db64f3a8928570e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/admin_request_json.py":{"size":2669,"mtime_ns":1780108930000000000,"hash":"4f68b3cf84291e7bddad6ecf4bb4d29ca5e1ec246a9f7f9c4cf5909d0ec1174a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/api_crypto.py":{"size":1870,"mtime_ns":1780108930000000000,"hash":"c04b748aea86890a5971f749523c7b17dbad1ddd6f9f7f07a5679d159c984e33"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/api_crypto_middleware.py":{"size":10876,"mtime_ns":1782790001000000000,"hash":"b39f128b6612589ea6ac5babd30752e9585b3af07b82bb1ad53c9e3c0d90816f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/api_request_log_middleware.py":{"size":11971,"mtime_ns":1782701669000000000,"hash":"0b84c32828939e6102bb3647691fa8f04b1f68e0e0e9f28127374cc44e19a11c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/attachment_biz.py":{"size":1122,"mtime_ns":1782219602000000000,"hash":"fb9fea8983524e3891357016b6546d982c4a82cb782fc01425f70472d4338b6b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":7457,"mtime_ns":1782790841000000000,"hash":"34bac56e1c2cb6215f4b5fa2dc32d77d4b4abca51428819eebf4afd269cc51cf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/bx_auth.py":{"size":1473,"mtime_ns":1782650780000000000,"hash":"678d9ff99b5c89575ef47e5c9e61d495f364917fd6cfb2b322c4d5035d3ba359"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/config.py":{"size":7336,"mtime_ns":1786698748826032377,"hash":"f1c64d502228fac0c423b6e693ea4da31ddcee2bb1ad66f22bbb7509281ede0b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/context.py":{"size":421,"mtime_ns":1780108930000000000,"hash":"83a10aee67162374993c10a30bf8bb8bd9c4b35cf48f42c832415ccebd91660f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/data_scope.py":{"size":8432,"mtime_ns":1784993108000000000,"hash":"16fd3ff8a3dde7397d55829d83c8541f6cbfb11145bfa8f2ae4e28fcaf4e2f60"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1510,"mtime_ns":1782790847000000000,"hash":"8bc9c8ae62e2be2c6920036582ba448dfcd1711c41cebb62274ff6bc6ee14b0b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/db_auth.py":{"size":2500,"mtime_ns":1782790853000000000,"hash":"4988b71d4e54b326c333872b34743914d67b15fb753c1b0231e9b00b366458a4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/db_collation.py":{"size":548,"mtime_ns":1780108930000000000,"hash":"0c680e25a18244ca839a7de6ed1f4313b33bc8da118d89c463aee1b6af00c6f9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/delete_guard.py":{"size":3572,"mtime_ns":1782687610000000000,"hash":"223d91c51a1677b6a4b7802d5571af14d5cda8bc45e4e757b1f2150990a69bce"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/exceptions.py":{"size":4946,"mtime_ns":1780108930000000000,"hash":"79c997d964bca1a4f12f2b92fb1f181fdb9e2b3cf72eae39f4cc164d23794fd7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/login_crypto.py":{"size":3858,"mtime_ns":1780108930000000000,"hash":"b82d51afabf2293a9cb1fb2e5f994c383948e7f47ea95fe674686b4f3f3342b1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/menu_guard.py":{"size":1611,"mtime_ns":1780108930000000000,"hash":"3e26077288c3620a4780038b891a326206b45bffe00aca545bdae30172487235"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/oper_log_context.py":{"size":868,"mtime_ns":1782699327000000000,"hash":"064c356f3f0fbabc454311445f02d375b965c2c055ddc51386d4dad50ac3337a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/oper_log_decorator.py":{"size":5312,"mtime_ns":1782701254000000000,"hash":"e476146985da29ad8cb77064d10314470546a8a52f6026a75fdbadd3fee34288"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/oper_log_infer.py":{"size":1767,"mtime_ns":1782699326000000000,"hash":"4346307abeb03020a7069f560556b9954cf50203efb6ac65b0a4b9644b6a9b2d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/order_status_compat.py":{"size":2828,"mtime_ns":1780108930000000000,"hash":"5349e5a0745ee6734c4a995337779307adefc46f453906171988a77de2081540"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/redis_client.py":{"size":1691,"mtime_ns":1782790834000000000,"hash":"e5d84d7433ce745da7a37fb46dff5d5eb6ae027ef0efbf406da0c9c7fb6089ad"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/request_payload.py":{"size":2842,"mtime_ns":1780108930000000000,"hash":"e9937151530ab1417ef297aef59111977725cf90be2a8fa76c00a0618789aba0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/response.py":{"size":1824,"mtime_ns":1780108930000000000,"hash":"f1739352d65ea8287d76e282a59553aa8d63c97e35764c64ac378aa5bd9c347e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/security.py":{"size":728,"mtime_ns":1780108930000000000,"hash":"df0f01115064f7b8de1c81dbe9a6db39360c236610b68c33b3234a51d7f0025b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/storage.py":{"size":16487,"mtime_ns":1786075281717710498,"hash":"2392d8ccfea66b088160fb59163c663e6c7d5aab9ebdab4a515c785fdc31c520"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/tenant_context.py":{"size":693,"mtime_ns":1780201410000000000,"hash":"0a810658d894d35b9e981faa1448e1d02d617ecbe563bd711f6ce5a8f9db1861"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/utils.py":{"size":1498,"mtime_ns":1780108930000000000,"hash":"09323693661c1d4560458b86a954128ccff82bbaf6522da0b44f24da99ddf9ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930000000000,"hash":"5086070deb14d99d1a69e419b2299ec4ea2fe128de80fe321b0c3c531fea7a88"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/wechat_pay.py":{"size":23585,"mtime_ns":1780108930000000000,"hash":"3d52265ce65d21e7103f94afa1e8547aee0823b5ea6d65c50317436ac81fb4fc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/__init__.py":{"size":169,"mtime_ns":1780108930000000000,"hash":"340e3c08174d61829012879e684f6166803b88c819c58b54a16a11d210dea85e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/api_request_log.py":{"size":4562,"mtime_ns":1782699354000000000,"hash":"f233bde579c4f6c7f2fd6030878c5946fb5dd5e247efaf4fe80d3f48622c19a8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/base.py":{"size":5360,"mtime_ns":1780108930000000000,"hash":"49fdea023825ea249923b1cb02d353dcede1850158d3555a2082887925e69b9b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/biz_no_generator.py":{"size":2534,"mtime_ns":1780108930000000000,"hash":"e6bd375987e47f6ee80294686db64377938a286767bb28324f3eda2ad39ad546"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/__init__.py":{"size":0,"mtime_ns":1780201410000000000,"hash":"9b8fcaaabdc85883c9ef392b596b60db0bd3b2f1623fc8012e55003f234a9875"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue.py":{"size":25820,"mtime_ns":1783155705000000000,"hash":"3526af7e7e79d505911690355890ccdb3a1c30d302534ffdc8626a454cc2499b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue_follow.py":{"size":8493,"mtime_ns":1782687674000000000,"hash":"54881f876d1842ee4a344d049ea4b5bac18b243535338077cb3eb3ec8b60e9c1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue_statistics.py":{"size":11229,"mtime_ns":1782649305000000000,"hash":"fbc3b4f3356256787839cc5b2a6f8dff41dcf9eb27c791e427e816e3ba14e094"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contact.py":{"size":10482,"mtime_ns":1782687664000000000,"hash":"f4e3a684dd7a6c7c927e10e8e1e0c108c151b963777b85c5b74d7e7871f3a438"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py":{"size":104081,"mtime_ns":1787132857357401187,"hash":"56e31876461af01cfca87646bfdda4a11e9d552158ff83912447ed6b9fa27d56"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py":{"size":15176,"mtime_ns":1786365604770395775,"hash":"8384859847239b6379ed2694bcf4b96b06c5e0ac666a4d368ed3da8c083cf540"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_product.py":{"size":15057,"mtime_ns":1787130846141770880,"hash":"fbdb0a8ecbf5ab776ed42863ecbd66429442117a05f02c4afb835588e90b13a9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer.py":{"size":27151,"mtime_ns":1786094657376202500,"hash":"143ae3ea59ca45377aef5a66141f074d257c6097c55a3d609316829b9c09f163"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py":{"size":8121,"mtime_ns":1782687665000000000,"hash":"ec67fc7667847017a8d8b5a276f5c75328bda7fa360746d80c7890de3f6d4b76"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer_pool.py":{"size":3725,"mtime_ns":1780202237000000000,"hash":"0f26ac2bcb585241f25302787184db4db422934e5d896ca25bbe7efaf61d92c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/data_scope_helpers.py":{"size":3358,"mtime_ns":1782650085000000000,"hash":"b0aab03bc7b3afb2faf39410e9881b65e6a2eeecba592d1655b5b9359fb4dbdd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py":{"size":7446,"mtime_ns":1782687666000000000,"hash":"e0f2069c43cd272e5f061d30b47a42140ac37aa26379985fc781f8a3851aa44d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity.py":{"size":42231,"mtime_ns":1782687666000000000,"hash":"75f54438002e070076fe37ec2211c5fd67bf4aebd2607ac94db15e30d6f634d8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py":{"size":10069,"mtime_ns":1783821986000000000,"hash":"06c9f3deab3472b20429c12a618ae2d4d6efd3afa2353ac44cd52651a596af4c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_product.py":{"size":10346,"mtime_ns":1782687669000000000,"hash":"40b497a41ce4003e128dc305abedc54e01dbaad8a8f7bc1ecec1662a3953a1ed"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py":{"size":8816,"mtime_ns":1782687680000000000,"hash":"779f7f46e7ef8bfba27390d56fa071dfd3a8446d9d3b3361003b1c239f7169aa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/price_letter.py":{"size":13292,"mtime_ns":1784122560000000000,"hash":"1edbd17d41fcc4205faf15de5ce47aecc5459a39d06a920689379a65cdb9c3d9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py":{"size":38589,"mtime_ns":1787293668683281998,"hash":"9fc5dc088e0e4380e57080b726831aeafb31fc3415345d712a07a215137899c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote.py":{"size":51800,"mtime_ns":1786365631647346096,"hash":"0c7f4464407d643f24e55244e1024a966fac9483b0a4b30f580ad4bdee558901"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py":{"size":10020,"mtime_ns":1786365604675762048,"hash":"1ad6152ab48fb4171b11066eb0f7b5cef0b7b204c0a47432d4b1c77a47213bcd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_product.py":{"size":14114,"mtime_ns":1786184473623076262,"hash":"d38197b231dbafe35fb0e6c3dd38ab15bd88e58ab6d4904a2a00c73ef653c578"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_share_log.py":{"size":4277,"mtime_ns":1782650254000000000,"hash":"5bfbf7ce2918f9ecdbbca6fdce17d200cd52cdc71b2dfb44ac126a36ca0ed734"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py":{"size":5642,"mtime_ns":1782649310000000000,"hash":"f954dc5479f42a52fdb3f05ad9076fdbe43e569bae85299fca6c8f37c7323cde"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/supplier_info.py":{"size":7182,"mtime_ns":1784996460000000000,"hash":"2c244898e16084f533aa42a0a3b45106a99515ebf627d37557b22549fd1f0035"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dept.py":{"size":6593,"mtime_ns":1784993073000000000,"hash":"a636f1c45bd0dd0b2e6c337061f3d1ce4119b130d444d6b31bf7f1be4782fa67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dict_data.py":{"size":5379,"mtime_ns":1784993069000000000,"hash":"750a883eb752a96e26f22267171a941345201afa9d2ff243c4c4569d02a735ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dict_type.py":{"size":5456,"mtime_ns":1784993071000000000,"hash":"d7f64d813e31ed3751b6399245ba502f953644569c75dce0a98598d38b0efde2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/ethnic.py":{"size":961,"mtime_ns":1784993074000000000,"hash":"ba2c043bc078010880031293f6e2f0f01e9b820d191ff6989bf65983903f063c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/leave.py":{"size":4765,"mtime_ns":1782687678000000000,"hash":"847095009bddac2d77dcbb485bcc57cbe168ff874989c197f49f2a28675d2525"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/menu.py":{"size":7600,"mtime_ns":1782688282000000000,"hash":"36951a77088782d80500bfa6266b46a564a670e10b70af7a28cdee8c50741098"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/monitor/__init__.py":{"size":1,"mtime_ns":1780242127000000000,"hash":"0592c62ce1172d93aca98cbd9aaa54b9c2668022abf3581249516472db312293"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/monitor/oper_log.py":{"size":6673,"mtime_ns":1782699352000000000,"hash":"0586702734f693ee099af38d407c71cc0a840153f93174699c5a5201e0a9acbe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/oss.py":{"size":2688,"mtime_ns":1785469127578334497,"hash":"88d704b7041a2ae458860c7a93357cff50bc5a8164939151326c22266f300487"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/post.py":{"size":5081,"mtime_ns":1784993075000000000,"hash":"12619e8ae3e341e757e8696459241924d761161a629b2804d0e1c3611b4d6a67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/role.py":{"size":9417,"mtime_ns":1782688282000000000,"hash":"008550fe8efce5310afd3d41d944cee4b68d71763a587583f8832855480477f7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/sample_code.py":{"size":12322,"mtime_ns":1780114002000000000,"hash":"5b74838b3920f9182d092f8a1b721697f1a62e8b90728b9f54101dbb96baa40e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/site.py":{"size":6442,"mtime_ns":1784993075000000000,"hash":"a5f9e5ab9008186c0001c480bd702e6217946eedc17b2e35eb25ad06edcfccca"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/tenant.py":{"size":5659,"mtime_ns":1782688281000000000,"hash":"0192db8ac9c3de42fe8ee58324c77111e152bf4c35fd15c0b16467fe243712f0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py":{"size":14214,"mtime_ns":1783851628000000000,"hash":"aeac623e3020fee4cdd01e463ced23e4e03539a17c5b57dcbd9d88aac5a4fb4f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/workflow.py":{"size":25052,"mtime_ns":1782688290000000000,"hash":"6ca7e3b79e91356a050592b768d7a6749e1bfdb2841a208c7235899603368aec"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/main.py":{"size":7025,"mtime_ns":1786698748399431982,"hash":"2cb034baf57da51c1d07fc7d0ef3687620e16988ea1eaa8ce52f63583b7119d5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/__init__.py":{"size":2550,"mtime_ns":1786203409890983484,"hash":"5ce371d64aba4f0dc087642c3764fcb5902bc4349cdb3cf41e3d03918f99c163"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/base.py":{"size":2090,"mtime_ns":1780108930000000000,"hash":"fda71bbe87dcb29c6f0ffa9337e9f39c2c06d912df6cb75d521f0e87c7c73c6d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/bx_models.py":{"size":22271,"mtime_ns":1786953008558635704,"hash":"f5338821b8de425e1bab61f998feb6dd1009a9bee4894c8b024be4dd674c5927"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/crm_models.py":{"size":72710,"mtime_ns":1787130817794794854,"hash":"22c3da1ac23667fab64f4656bea101cd0d76c804a31ef37483f256af84a57923"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/db_models.py":{"size":8110,"mtime_ns":1782219570000000000,"hash":"249bb0971c263436095a6324457557b6ac5cfc3ca5ac9bc9499a9b4cd21d42bf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/models.py":{"size":37139,"mtime_ns":1786161240583074304,"hash":"b1515a4ef5f689b18d8a76433aaa7f10741ce7f7c89f5a825b33f6eab14adac6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/pl_models.py":{"size":79159,"mtime_ns":1786203406711664433,"hash":"98346be3b4670bef2f70481990fe6f6ad57e59c2854feef8ac91cdc8ef67c8f2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/__init__.py":{"size":1159,"mtime_ns":1780112973000000000,"hash":"4e8b0bda6680e2c8740c380b96eedb859ddc584a81bad568a18ba6beb001e480"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/attachment.py":{"size":328,"mtime_ns":1780108930000000000,"hash":"300b74c51c66cb0fbf8c9f4d84a4b7bf29dcc9b6a67d922f8e1d0df05f9fc5bf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/auth.py":{"size":1315,"mtime_ns":1780108930000000000,"hash":"018b82e42bbb055250549c54ba700ee01cf28cd753397d6c162f9e60185908e5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/__init__.py":{"size":81,"mtime_ns":1780750556000000000,"hash":"07c3422f745afbff1c8162b3782fbb4b8de65084e7e9bbcf45abb9d433d65f98"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/advance.py":{"size":4603,"mtime_ns":1782688296000000000,"hash":"74b6e8bf6906518f80f16f218f1af74d2c356a6f392a4e8a69466f4179ce0b92"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/attachment.py":{"size":525,"mtime_ns":1780750871000000000,"hash":"f287214c72345e41d9d122ca55b4d3e279635d99cbf10ed530de0ac32374f31c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/common.py":{"size":1547,"mtime_ns":1782003187000000000,"hash":"a75ca6a0d92f93408eee00cc5053206d28a545512e4cd0f186be9e00e3346ab1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/expense_item.py":{"size":1668,"mtime_ns":1782688293000000000,"hash":"ac07c7b05fe990e743dd5b4e96a85b59431479ca11b98cce7c340a93dbe99ce1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/reimburse.py":{"size":7714,"mtime_ns":1786953496310041338,"hash":"27892ee6a4d6a7ceda99609559224c7a0a9fde8913e0b339c01a561c8d390027"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/workflow.py":{"size":1677,"mtime_ns":1782688293000000000,"hash":"f683e5bb7a45d0bae3b3f262c201453155eaaaf2c8d7f14f567a14295a68d2e1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/common.py":{"size":555,"mtime_ns":1780108930000000000,"hash":"caa0c03398e54017b25cca2a16cf8d232a59739893a16e4c33b51a5316d8964f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/__init__.py":{"size":0,"mtime_ns":1780201410000000000,"hash":"a6d57250b43cbdecb56b7a9d55d29642b808be368733e14b7df2bd196f54d64d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/clue.py":{"size":9417,"mtime_ns":1780215022000000000,"hash":"2676afaecac4bb6da185674a9421dfbd40834ca21520adf66bb6b175fb728677"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py":{"size":4856,"mtime_ns":1780742840000000000,"hash":"60c714cc254d70f39b43205bbcb7fb4c563e807ddd070eefaaa952ae96048377"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/contract.py":{"size":11009,"mtime_ns":1787130826227890833,"hash":"c9e4b8e52daa747e30abf889547945655f211a8b649cb299036093914bcc1a59"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py":{"size":14744,"mtime_ns":1786094611074108908,"hash":"9c8829288e7508988352317a77a66c350ff44a06daf410c087dd695c0c05f5d4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/customer_follow.py":{"size":3716,"mtime_ns":1780201410000000000,"hash":"3979cecd62a4f2ee5dd925639572208e36b397620d91a9ce49a59adfcb2a9d55"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py":{"size":1340,"mtime_ns":1780202198000000000,"hash":"7a6b76e0e39ada0783dfbee92280e9f06299b6662b08abb13ab1b0d9c70fe370"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py":{"size":3104,"mtime_ns":1780406386000000000,"hash":"a59df3aed2c976904e3b5325fedd1621435b322645aa71349f3356e0cdc17424"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/opportunity.py":{"size":9391,"mtime_ns":1780242127000000000,"hash":"2e068961824a1d3ec0da0a94a3c494b63582b3251e5f4e030ce3e12897e85002"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/pool_rule.py":{"size":1848,"mtime_ns":1780202212000000000,"hash":"b0331e17e801d206fba2fa89df1a66d1758d850dc5547e076218e16c8211a3e8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/price_letter.py":{"size":3994,"mtime_ns":1784122554000000000,"hash":"6cd75fdbbd6a2dc65cf0b0b29e6206910fbd86f8bedf05bb56a8835130b81829"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/product.py":{"size":10376,"mtime_ns":1787293668683160249,"hash":"64081c7370130dc17b2aed29d24af25477a27525949697b5eaaf7a4e8e96573a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py":{"size":6227,"mtime_ns":1786171088067507315,"hash":"7b2ae18db1e5a57657f695899e15a65f52a20e92cfd40a967574f5b15dc36e72"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/statistics.py":{"size":412,"mtime_ns":1780201410000000000,"hash":"fb1957d0fe87f22c37ba5bdaa5f3bf2bb4a40685a21a05dce98326581bb4844b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/supplier_info.py":{"size":4149,"mtime_ns":1784996454000000000,"hash":"25bc81362d6365c8bd852892890f3ff0c74fd702016cb21104c3bdfa51e2f858"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/__init__.py":{"size":84,"mtime_ns":1780804619000000000,"hash":"5193d61f7204f825551f083e79722805fb2abfd953bb552e80950bb3ff9784a1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/dashboard.py":{"size":514,"mtime_ns":1780804990000000000,"hash":"f2c1b1014d0d769abf32dab3783de65fe7fe327c956ffbfe44adce94542f8892"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/inventory.py":{"size":4095,"mtime_ns":1785807104128333050,"hash":"37a2e0218b67e33fc7ddc479bcb68c8c45ca892a2e88fbdc543f87b05924ae9d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/plans.py":{"size":5023,"mtime_ns":1785807102509773576,"hash":"6f0172acb27799becd86980fa299744a5c8ba404be1b473cc030a05a6f3ec7f6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/public_inventory.py":{"size":1492,"mtime_ns":1783211660000000000,"hash":"ed4e21307ac463410d296a2f8cf53f8e0429187344537bcf1e1212a7affa06a6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/weighing.py":{"size":5494,"mtime_ns":1785807118487481337,"hash":"120c573ad29a51805e5b04d0c2ceeaea08d70200a40ddca7fe36d5fc7d6585f1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/leave.py":{"size":1449,"mtime_ns":1780108930000000000,"hash":"c54098a69bd4490290dd8d7809ed8764a3f38e8c38692eeef2b505293cdfaeb8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/menu.py":{"size":816,"mtime_ns":1780108930000000000,"hash":"17e35f2d7bf95cac00d81357f69fdcbe849e855daa05570c3302de8182b4df11"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/monitor/__init__.py":{"size":1,"mtime_ns":1780242127000000000,"hash":"bb5b318d3cb224c50a2e0286e145f89ea7278437437fd17d7c865d67ad148076"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/monitor/operlog.py":{"size":1069,"mtime_ns":1782699353000000000,"hash":"b9f0a382f8990f69391b26bb75b4538d141d6adadc4260fecaa8b33cb44c063d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/__init__.py":{"size":5246,"mtime_ns":1787198187913760581,"hash":"e75254bdad34bd2888deb785991e5952bdf086b6658d05aca4a1809384b4538f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py":{"size":18605,"mtime_ns":1787200527820891774,"hash":"70838c89251a5b585b61317a1e97d3d2e18e0d97bd62e66ecc2cc70dd81b5d3c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/datetime_parse.py":{"size":929,"mtime_ns":1782905360000000000,"hash":"7a4eac85768cbeb0ba76f7f478ddadeeacab2498cd9be4070a76e1cfad693cdf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/freight.py":{"size":11299,"mtime_ns":1785439224271183303,"hash":"ba898caafbe6c8f4c5729c2521917eeaf92fa3c649626232d326eb255f0c177f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/inventory.py":{"size":8319,"mtime_ns":1785202429973819450,"hash":"63ec5922aa1e9bdf8c3b7dfc5b0ccb555535cbf949e32a1055237ba86faaa146"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/io_order.py":{"size":7524,"mtime_ns":1787286144077458134,"hash":"a9121522bcd9b53bf1874d74a48ce84f29c9c30fe927a2b77d6dbb40c82e19fa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/menu_badge.py":{"size":247,"mtime_ns":1783257567000000000,"hash":"88c31e5ef8cee73327a1a0f36ea7ae0e61fa8f1ae140ad95ed0c0b9c2b4d05f7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/plan.py":{"size":28056,"mtime_ns":1787278860740467559,"hash":"a4aa3366fd6c3a9a0365437591470b3059b0a994032de16023c7f0a653762f1c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/resource_snapshot.py":{"size":3823,"mtime_ns":1782793446000000000,"hash":"2d65c990d058d22010f8d4449652eb752c297a046b5d7b3ff6755c3e1cad0cf3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/transport.py":{"size":22787,"mtime_ns":1787282296796356773,"hash":"3edb8121f2f54a055b980bb50c8e95ac3acfa51804d8882662cff4853fcf1886"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/transport_address.py":{"size":2604,"mtime_ns":1782906539000000000,"hash":"6548b4b0c8c1d8096ce96ff1d5b523c67b12300f9a3eac66570b0256478a1120"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_maintenance.py":{"size":6563,"mtime_ns":1782695447000000000,"hash":"c34b79f5bcd004c0f6353922492883e4b08e5a6bc229f0265c9af850d235848b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_recharge.py":{"size":6299,"mtime_ns":1782694169000000000,"hash":"4d5ab880c0c3ca91b485e1ba53725005b9f89fe205780d58a738c861dbb7e6f8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_urea.py":{"size":5609,"mtime_ns":1782696196000000000,"hash":"71b7de2f90b3c7c732b59683e5cd4d858288121414a1ff2679c039299f5fb024"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/user.py":{"size":1911,"mtime_ns":1780108930000000000,"hash":"3d3c159018cab6ed1cd3de7034ffb1fe77a272b9099901a1882d07aa15fc90a0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/workflow.py":{"size":3949,"mtime_ns":1780108930000000000,"hash":"e5aed7afcf903c838a35cdaf2230a93d221c63f5c6baa1497e455afac8587a9a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/__init__.py":{"size":34,"mtime_ns":1780750594000000000,"hash":"583b12a6d2c9fd4411b652741e73324df9256138946ee873a0ed03169f8dae2a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/advance.py":{"size":24037,"mtime_ns":1783746967000000000,"hash":"4834348d099b32b70d14e1b56279dbb385f42519646351d8cb220da8c5fe27f1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/approval_cycle.py":{"size":1296,"mtime_ns":1780758200000000000,"hash":"308c087d94ac253bfc7e2d5455a06ae8ceac034adda41b5c61dd315dc167efaf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/attachment.py":{"size":4582,"mtime_ns":1782650868000000000,"hash":"3a6480cd051bd1af733a67e5babcd64f3f74cbe230d72364b599cde8b0c67a5f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/base.py":{"size":3984,"mtime_ns":1784993089000000000,"hash":"dd56d9197b4cddc60570bf5eb1851d4a426ab226858beb95bccb33a839471ea5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/expense_item.py":{"size":4639,"mtime_ns":1784993106000000000,"hash":"2640940d1851d60e7ba515d759a0aa06843b764742ae1ea2fabb95b6a16136f9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/reimburse.py":{"size":50267,"mtime_ns":1786953507819708163,"hash":"6a3d918b2784fbcca72efd51b5c3b04a76b8598a0b26ce9708611a7a93ba4032"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/storage.py":{"size":3610,"mtime_ns":1785592530823872489,"hash":"9c5f871f6c22e837bfee2fc52af6a06588f6f509441485054ec2a138bc91211e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/workflow.py":{"size":5617,"mtime_ns":1784993093000000000,"hash":"514ea42e366fff44f1becbde6b5bfa219a224517e47dcdec25c8cf803a3ec0b5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx_data_scope.py":{"size":2394,"mtime_ns":1782650938000000000,"hash":"1e8e1dbdcf4bc68c2e30b99015e930bb9522bd1f633e95604ec6a62bdb2b43f3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/crm_quote_pdf.py":{"size":10650,"mtime_ns":1786172982774929079,"hash":"388f78a183375e8673316cfb94df5a00002049d2d639e59e31282c910f884a99"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/__init__.py":{"size":0,"mtime_ns":1780805614000000000,"hash":"2cb780fb722e6dbf2ecea6f6fc19345fb453e1a3c40694ba0ff7465eb7cf7d33"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/auto_generate_plans.py":{"size":4699,"mtime_ns":1780935400000000000,"hash":"d0760cb8155d60e18040bcf6fe41e6964640a3dffd6f4b7bb68678c9f31ab29a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/inventory_id.py":{"size":2574,"mtime_ns":1780934632000000000,"hash":"c5269cbb273d987c296143b83f1287762ce67d7ddeccfb0a72bc70234bad9f12"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/mappers.py":{"size":8976,"mtime_ns":1785807132026824584,"hash":"0501255ba896feb2ac32c24eff8f774aaa4663db1666e31c720087049219ddd8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/plan_helpers.py":{"size":386,"mtime_ns":1780805092000000000,"hash":"5c6ec7612b204e1dcb65c5daf03fa7f8ffa7710cd1ace63be4f7ca00cbf318b8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/product_helpers.py":{"size":2365,"mtime_ns":1785920719535751988,"hash":"6297e4e3ca2f90ae493d90b0b848bc3293e13d99b5246457565841cea18d4391"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/weighing_logic.py":{"size":4110,"mtime_ns":1780804818000000000,"hash":"468ded88a0a4a397a96884580c88c59291c0b6effa897f08f1b3fea7857f9191"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db_data_scope.py":{"size":796,"mtime_ns":1782651142000000000,"hash":"ad4e206ae53e25247ebb004e0ef586077a6e7df0eac7b14973c26b186cffb2eb"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_carrier_service.py":{"size":1735,"mtime_ns":1784957286000000000,"hash":"7ab4f5c5a28b0af2c8ddfc91bbc425a9fc5246956afdfd29ae4ca0af32d73cb6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_cert_required_service.py":{"size":10455,"mtime_ns":1787200437818204201,"hash":"7069b3b5dd6f40ef62357735375b9f8ea26adeaf9c06ebc2a28bb9ddf62283e5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_cert_service.py":{"size":7694,"mtime_ns":1783849439000000000,"hash":"7bb0a6d4dfdb1ec11e72e971873791b8e188939e7c6b7328a0a2f4f8986c9d1c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_data_scope.py":{"size":801,"mtime_ns":1782650506000000000,"hash":"0f0275c56a43603e69a030dd1d284cfc7982a7636423cfff6d0e692eb4631cb1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py":{"size":15358,"mtime_ns":1785920723016038676,"hash":"b5a1121fdb3adc56e5733e54e9afd6618a18d3dd64acf59c7a78e65e16add189"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_freight_settlement_service.py":{"size":47808,"mtime_ns":1785967238102250242,"hash":"974882f2e0c31bd223d47f441985dcd9f69f6f1eb6b7312ad00107ae6c52ed9d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_inventory_link_read.py":{"size":782,"mtime_ns":1782225276000000000,"hash":"6471dfc9a1fbe66223f79490a5827b2422e5ca6932305ccde6aef4b641676a6b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py":{"size":32017,"mtime_ns":1785967896127661595,"hash":"401565a9d71835101da1cad779269c38ad8b45309e9d969fc90cc233ec17fa90"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_menu_badge_service.py":{"size":6768,"mtime_ns":1787199006547960626,"hash":"30ae50d8a7a6c5148c732955a25b51dc5f9665fa3d3e710532f7047af89dd6fa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_ocr_service.py":{"size":11166,"mtime_ns":1784036700000000000,"hash":"6f233150e253813a7c9da30e6e5d6046fdea01baa67c2589a332fe511ab795f9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_personnel_service.py":{"size":7484,"mtime_ns":1787140670593369229,"hash":"acdabe76ba0ba3ea348011e43b3955c6fcfb25e8e50729af8ccea0131d7fd766"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py":{"size":51310,"mtime_ns":1787195004716748073,"hash":"2056bce5f5e065729625fcd5a37d59a77087ebe309f8b4255ec981df1c1c7a49"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_site_link_read.py":{"size":2362,"mtime_ns":1782225460000000000,"hash":"3b9e1b93d3c4375b6b3adb4476ceb0df356654089d994aef4fea7e4f29266c06"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_transport_resource_snapshot_service.py":{"size":4861,"mtime_ns":1782793450000000000,"hash":"6f94dcb582fe725738a54469e461aa0124b9754b2141cb78d3859ff1a2f25ca9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_transport_site_service.py":{"size":3701,"mtime_ns":1782225248000000000,"hash":"07585f13aaad965c106e88ac26f5f8c58852c0c2bb0bdb91820185133d799219"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_vehicle_maintenance_service.py":{"size":23307,"mtime_ns":1783761151000000000,"hash":"0c7aa346d9879347d6a98c435fadc47873907ca0774147b69acf0d392e00e58b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_vehicle_recharge_service.py":{"size":22641,"mtime_ns":1783760938000000000,"hash":"a4a9377a8243e30dd7d6a8a175c68525009465fdebdeb01230849156dd8b59f4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_vehicle_urea_service.py":{"size":19556,"mtime_ns":1782696213000000000,"hash":"03d389e791e5fac9a5339d1259d342952fced97712c3657e8f791426de32743b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/web_auth_roles.py":{"size":5592,"mtime_ns":1783858473000000000,"hash":"04c2cd67a7ec8190aa7a9db717a722cd347a52279ac3ef5bd284777f0698a904"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/workflow_callback.py":{"size":3584,"mtime_ns":1780108930000000000,"hash":"a033c13c7bee7f4b636198c1efa47f2abba0d890657e52b0b7057568d4d83a52"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/workflow_engine.py":{"size":14042,"mtime_ns":1780113992000000000,"hash":"5c06a59c734f598d5c7ebe95d30f048ba3a97302b938bc9320d97e5a053c7aef"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":2486,"mtime_ns":1787140680379293292,"hash":"4285bf024ef91293fda64a484453f3ca095f3ce521d61159364a7075a22d8af6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py":{"size":9646,"mtime_ns":1780202350000000000,"hash":"4f0ab87e7a12534011b69f58079ca206d5443eee594849ab4aae728bb847de0d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/db_auto_plan.py":{"size":949,"mtime_ns":1780805095000000000,"hash":"9f7513cd2e74f9ddfe5cbee4ae58a40ee7a58aaaff051d590b19a6e1b08bb46a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_cert_expiry.py":{"size":711,"mtime_ns":1783208067000000000,"hash":"7c02dbf83fad89c7da757965b545bf77f37792edd0d01d3ed320349b0b60a50b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/__init__.py":{"size":0,"mtime_ns":1780242127000000000,"hash":"a66deceefc987198863f61b8aa1b5715483a69c4a15ef47cd5586c5d8e429b97"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py":{"size":5144,"mtime_ns":1786953427751879493,"hash":"4814f4efce4e883fc021712647f4b8ab9ebb8bd467fa17d4d1f37787b753f074"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/bx_date_range.py":{"size":2363,"mtime_ns":1783745556000000000,"hash":"e8b487a9bb4072356cae7b1b38496c441f9a1534d6807798448e6de97073d669"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py":{"size":9594,"mtime_ns":1780743830000000000,"hash":"b20594507aab09cebc3d540acad04547bf780cac9c885187138f5d64718ed513"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/excel_export.py":{"size":4411,"mtime_ns":1780242127000000000,"hash":"7fbde3fca845e4705487e7f801caee308bcc0c99a9da7d0c99681a96eaaf6076"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/ws/__init__.py":{"size":26,"mtime_ns":1780108930000000000,"hash":"d4357444e9b5b0a8593000fb6e4dc37469ebe008e675bf42ec0d55d463f88fc6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/apply_pl_data_scope.py":{"size":10945,"mtime_ns":1782650517000000000,"hash":"928fe2112c9fd8bab4da7f4fc67d6d247c78187ca3b1a4146cc2fd3d9e04697f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/check_pl_json_aliases.py":{"size":2918,"mtime_ns":1781880510000000000,"hash":"b04c5636779ecbcb3082eabdbf42db846cc31f7376129845820c6a4c1e829104"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/compare_dict_snapshots.py":{"size":11072,"mtime_ns":1783860128000000000,"hash":"cfc98cc72c5e387317cfa0a7670c47067fffe8f2e540d5cd580ee459e173e4ef"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/generate_dict_reimport_sql.py":{"size":10692,"mtime_ns":1780201410000000000,"hash":"a4faaf61f246dad04ec3933083ab4348e5d2987ae1ed34b1f6d8f19535642a05"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_bx_data.py":{"size":32783,"mtime_ns":1785455807105877935,"hash":"16751fcd542e209535216a0516d78b62eecb81732d7fe0f9ec051fdf811e93b6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_bx_menu_names.sql":{"size":454,"mtime_ns":1783254856000000000,"hash":"d40ab4c556ab285498f4689c21736832deddc754a9a2b7d806e870ccb39fc9ae"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_clue.py":{"size":18423,"mtime_ns":1785455807106788561,"hash":"72b84e497176bc63264c26d891c591c839f9dd9788988043c5752413c1b62a09"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_contract.py":{"size":36352,"mtime_ns":1785469153230627041,"hash":"b78319ae19a0089684e1ffe1993a1b62be2d687ab65a3e69da423247e0d4d4d0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_customer.py":{"size":25235,"mtime_ns":1785455807108557895,"hash":"f30d5a50a28a1130325a9d9db88586bcae9e2a39434f077ded25f847af2ed66f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_opportunity.py":{"size":23720,"mtime_ns":1785455807109188438,"hash":"f98964806f32c3020bdd7d644d930760d6ea3ad5162d5f1d6125494263dd5598"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_payment_invoice.py":{"size":13601,"mtime_ns":1785455807109946855,"hash":"c4af77164dac9ba4195c3d239c9679ea367b92f5f7500139f3b59547525af24e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_product.py":{"size":14973,"mtime_ns":1785457303643810528,"hash":"83b693cbc1a590f7a3cd6af2387e638f28474c230fc6f4c0a2813f343d35d887"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_product_category.py":{"size":16785,"mtime_ns":1785462269008382807,"hash":"35d9a064be6f0ac00b6b2162d77d710a2c4f108824eb78425de2341d576cf7fa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_quote.py":{"size":27580,"mtime_ns":1785455807110995231,"hash":"4ac389eb6cb7437d4f5e8203d9908efec9836046ce8628a5e4be1f8b8ddd52cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_sys_oss.py":{"size":23401,"mtime_ns":1785468795797340265,"hash":"f2d9da1743e3997bf7361d39ff66eab588d7dd55d2114dc9cf6796f4f697a9c3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_dibang_data.py":{"size":20215,"mtime_ns":1785455807112164732,"hash":"28a49a423a784e70bec424b702f3d58f69b6f847153c061414efdcdabb660d0e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_doc_reminder_menu_group.sql":{"size":1562,"mtime_ns":1783256051000000000,"hash":"82a0ce8c5293f5051967633c1c2e0a1dc60e1fc7c97919c9e0866246bbcbe3d1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_menu_groups.sql":{"size":6367,"mtime_ns":1783256049000000000,"hash":"5f6964d1ea2712d3d72c8f43f08c16597d85fe79f3f54c8be99962090d6c2b67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_delivery_slip_template.sql":{"size":217,"mtime_ns":1783231586000000000,"hash":"e05e3fe7255e6c8a88aceb1aa53d743a4888a34c9fbaa4449c1cb8a275744d68"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_product_legal_use_cert_url.sql":{"size":1180,"mtime_ns":1783253793000000000,"hash":"01105ec581050477087d9bf65528cfe77ce0026d0fb682cba8014c4cdb046db7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_slip_template.sql":{"size":191,"mtime_ns":1783219958000000000,"hash":"e2a17c3df7be5cc0436ef979a48de81eecbe99c03f43662f4b0954a09dfa1305"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no.sql":{"size":203,"mtime_ns":1783240340000000000,"hash":"de9b3c8e1617b9c345b2d4005e4a627f10ded089db89d35f0b389b333b840c08"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no_format.sql":{"size":571,"mtime_ns":1783241697000000000,"hash":"61fc58ebda64c5d6be6bfd374dda99c7134e38dc89031527f71916625c4e36db"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_template.sql":{"size":215,"mtime_ns":1783238744000000000,"hash":"24cf12e21f9f61f49c38e654c0ca655f56a21e5e2364e4c2ca4547dad583272e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_users.py":{"size":28602,"mtime_ns":1785455807113727900,"hash":"f5626fd3ca8bbc16275862080365c3ea2a27fd0f608e2243a284493762a8f735"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration/minio_url.py":{"size":4770,"mtime_ns":1785465354405875664,"hash":"54a1bf95512c0a8b5feeb518ea3af76983bb1b0a3ba645898b07debdb2cc52e9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260711_hide_vehicle_urea_menus.sql":{"size":269,"mtime_ns":1783760394000000000,"hash":"a5f66647cdb4f0f403689b47b804f8099d7d710753823ef3ddc5e7a5a9ca4ca8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_add_finance_dept.sql":{"size":1697,"mtime_ns":1783855927000000000,"hash":"4ce457089ead5c063ae8e1a6d6553416deb43c54a7edddb574ee2572390aba99"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_affiliation.sql":{"size":753,"mtime_ns":1783845019000000000,"hash":"6d450d264921f43c4e74ee4a2bcfc8335d16f77d9e0413267389741a92bf4eb5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_type.sql":{"size":1662,"mtime_ns":1783843576000000000,"hash":"24fcd156f97e2bdf2bd158beb5358fe7159874783a84716c6c18d2565cc8ac1a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_reset_sys_dept.sql":{"size":4517,"mtime_ns":1783855538000000000,"hash":"3795d6127a4dcf55d406be0fe673b8a83655723fe1f07b855e6fe45823d489fa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260713_pl_personnel_cert_split.sql":{"size":3436,"mtime_ns":1783946793000000000,"hash":"ce61899ec7e13f41de08dbc923dd1ff2a1a976603d13c8f09aa6fd5be9c914a2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260714_pl_ocr_usage_month.sql":{"size":1270,"mtime_ns":1784032423000000000,"hash":"d7018a4e5be9760846731440be98e53584d8e1461fc4ea54a0c8db61c666e7fe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter.sql":{"size":11104,"mtime_ns":1784122573000000000,"hash":"548dab479fcde4bf1628ca2093fd7840720473a774a5289b55bfd4f46b902153"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter_bill_price.sql":{"size":901,"mtime_ns":1784122547000000000,"hash":"11a4eb6f3b4d89c1a5141bd9a85e931517984b77ac213f5842dc590f928fe1cf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260719_pl_inbound_outbound_order.sql":{"size":10843,"mtime_ns":1784427911426172052,"hash":"baab6333d8e0865e72a9c474eb642bd5b166f9d70a6db5825d315574f66df069"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/patch_pr3_api.py":{"size":14409,"mtime_ns":1782650231000000000,"hash":"fb4cf4178a4b7c5530999f0c950ed38310dfe81b3168c10117849d6f512be01d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/patch_pr3_api_calls.py":{"size":3345,"mtime_ns":1782650279000000000,"hash":"57732d0beb80ee17b533c78ce0250967fa83c68354ea9d1972275ba1fbc39007"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/patch_pr3_quote_contract.py":{"size":12491,"mtime_ns":1782650163000000000,"hash":"eb6b944df35fda5edb6675b69b00f5a83a75fd78785251d1e81e1788ed439cfe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/refresh_business_role_menus.py":{"size":3812,"mtime_ns":1783858483000000000,"hash":"b2c76109936791e1f624e239b24832237fa0256b38b98578e39825ac215fb166"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/renumber_crm_product_no.py":{"size":9071,"mtime_ns":1785455807114125233,"hash":"320c63801100ea8e9fb62abfb44b3487139377e293310593a877ab2d06e9d2e3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/run_db_auto_generate_plans.py":{"size":1043,"mtime_ns":1780805102000000000,"hash":"3cd8f15b677f21b2873ff384fc0581da264a53ee4318da3c8262101156e3225b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/seed_sys_menu.sql":{"size":82807,"mtime_ns":1784948075068625581,"hash":"b712bc6d4b5a248a26706137f601e26d81bdb7ffdae016ff818a77155afe15a8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/setup_business_roles.py":{"size":14256,"mtime_ns":1783858477000000000,"hash":"ac12df2cf75826931c85f4deb3ae28614e31ea825d0beb3cf351a8d4f5cb1071"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/test_aliyun_driving_license_ocr.py":{"size":5130,"mtime_ns":1784032210000000000,"hash":"13d43c9144c3795b8870fbd900ed14f97ae22ee043e2c265a5151525666abebe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/verify_web_menu_codes.py":{"size":2535,"mtime_ns":1783858485000000000,"hash":"16c9c072b5b80fb309d56823963ebd0dd1f437a3f74d7f82711dd8a7c2de86d2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/start-prod.sh":{"size":7357,"mtime_ns":1782639355000000000,"hash":"ca89869446be74a2bf2367b3b28f448580220859a39a84ad9613ac5fe35a8433"},"/Users/wuzilong/work/00code/shanxia2.0/backend/start.sh":{"size":9548,"mtime_ns":1780114661000000000,"hash":"4d632863e8a0cd81194b491d83a0218a4157435ae812dec76a6f6197b4d48e57"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_data_scope.py":{"size":4660,"mtime_ns":1782649048000000000,"hash":"9545dc65fac7e13bf07ece2ec828ec5957bb115e23d0ac8c996f9c70362a4ecd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_db_inventory_id.py":{"size":586,"mtime_ns":1780934647000000000,"hash":"71a9617d5d0f2c23416686eded204b4c941b47afc3fd6e3facf0c75401e883d9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_delete_guard.py":{"size":1565,"mtime_ns":1782687611000000000,"hash":"5e2a45f63b7296e3a10dfbd4b4716e54370e1439248881d6591cba5c9f6581d6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_dibang_plan_quantity.py":{"size":4258,"mtime_ns":1783777759000000000,"hash":"6af8eb3c1f6c7ad34cd62f1e82e9c6b96737ffd48ba74dda7c5f888c55dd11cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_personnel_cert_required.py":{"size":3367,"mtime_ns":1785643508814042558,"hash":"4bc3552f4897e80dfc8bc28ea2566bd0ea6839e860d781653088066f57f414e6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/venv.bak.broken/bin/Activate.ps1":{"size":8593,"mtime_ns":1780108930000000000,"hash":"ed2ea10761f2798e8980084d754284d3fcb94f1284ae7085c35c16108fe24846"},"/Users/wuzilong/work/00code/shanxia2.0/backend/DEPLOY.md":{"size":2574,"mtime_ns":1782639356000000000,"hash":"6989c30ab5c99ebf488137e31e5561b4a00d36060716dfad3fc247b673538818"},"/Users/wuzilong/work/00code/shanxia2.0/backend/README.md":{"size":2752,"mtime_ns":1780114581000000000,"hash":"f5def8d25af0556a443c31a73e81f958883b60cfed8b31fac457f2832c2b6d58"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_io_order_enrichment.py":{"size":2319,"mtime_ns":1785967899536094864,"hash":"f46d9a34d0693693f48c0bea5e72d79baa7adecba9c413d5583e1f229e692043"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_io_order_site_feedback_status.py":{"size":3527,"mtime_ns":1785446258255101137,"hash":"fc53fd735e09b39e7cfe085ca6756f87396b6954f7057fde2bfca39524c34276"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_tripartite_cert_gates.py":{"size":2003,"mtime_ns":1784947499000000000,"hash":"312091d1017c2f22195a9317cd6f39c880cd5aa6b27acaf343181319f045ffee"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_carrier_eligible.py":{"size":689,"mtime_ns":1784947707000000000,"hash":"a3093ae31166d40d7836abb3575c0d4d50ff9e9bf23fee8e7a291afdec39fedd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/paste_recognize.py":{"size":1879,"mtime_ns":1787201019820027930,"hash":"762caa6d084015d368538e687633b064bbefd73b7c91b225249d9a949b361fca"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_paste_recognize_service.py":{"size":9977,"mtime_ns":1787201020688178054,"hash":"53f4d3c74ab4ebf0903b62c538e128c10763a474b3a78dce51fae6f7e13587ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260725_pl_tripartite_menus.sql":{"size":2113,"mtime_ns":1784948072087970834,"hash":"c4897f7cff3c22535726f105d1f2e543eb551f6543e8b256ced85ae2a38ee683"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/invoice.py":{"size":5868,"mtime_ns":1784991682000000000,"hash":"65eced0eea3c4f9567842be545d2eb042c24398d5ff5eeda2aff693fcff06ff2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/invoice.py":{"size":1896,"mtime_ns":1784982228000000000,"hash":"909460b2883e85110e15a56d5755748e1bcb3e26dffac89684440813788e8668"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/invoice.py":{"size":15808,"mtime_ns":1786272473404426378,"hash":"eec75b8a2f81e6fe8f5c6af25625d6d3b0d1cd6ec01151412e2707a4e338e623"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/invoice_ledger.py":{"size":10448,"mtime_ns":1786539462776370778,"hash":"7247589419d1b5c86087def9b33d0e20d8d04b75b4afe7b7481dd96c385d20d8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/crm_supplier_hazard.py":{"size":3425,"mtime_ns":1784998230000000000,"hash":"2365e02c6f2584dd6d18e1ad3c8d3075096777b244cc1430ef913254c61a9442"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_bx_invoice_ledger.py":{"size":1898,"mtime_ns":1786539462170910559,"hash":"ef8ee465df020aaff376deca3b251e13e017dc72856efc07c982b1469e4888a9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_supplier_hazard.py":{"size":855,"mtime_ns":1784996182000000000,"hash":"ce8bd619b1a6dc746541a57eccc095d19ccde3bdb88341995631e15fcfb14bca"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260727_pl_plan_create_date.sql":{"size":536,"mtime_ns":1785140686875543544,"hash":"0694b0b031a6461d8a8940f7403739a8d20fd018403a02a8f1e0e8bf2bc1490f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_create_date.py":{"size":299,"mtime_ns":1785140895170402200,"hash":"7a05f3fcc2d9a36f08b0801f6fbf6ee4fe58982d9212d7a10a70b8b4d41b6f85"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260727_crm_product_brand_alias.sql":{"size":4594,"mtime_ns":1785160650030737687,"hash":"f9f6ea6ca8e31cf5622a31f8303fe81174769b7d094645a88dccfcd6484b9cc4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_brand_archive.py":{"size":3334,"mtime_ns":1785453570763074999,"hash":"feca7ad16664603f04ee7fa38f03187ecfb70978cc41fcdb47d3fbfb54a11fbc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_inventory_service.py":{"size":7058,"mtime_ns":1785453321817830521,"hash":"a13cd5ea34dabe91b4663551824c3da9fd2a64ac3fcbc46b2b099644f308b457"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260727_split_brand_from_product_name.py":{"size":5120,"mtime_ns":1785202591782265408,"hash":"d9d9b949cc5f275764b7ea771616141084a0c7cd256dd3262bf532cf4ac0f20f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_brand_archive.py":{"size":2440,"mtime_ns":1785453323711185768,"hash":"2a704d8278c46f510fa020cd9aed4ea26fd978262d7fe728287bcfe5726798e9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260731_pl_plan_plan_date_nullable.sql":{"size":223,"mtime_ns":1785439209757662121,"hash":"50a633398cc1c8288c8b5fa221885272ca963c4b777b70102c96632f2d51047a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_feedback_brand_qty.py":{"size":9813,"mtime_ns":1785452749855419713,"hash":"c67d06fc7ac5cc9b3be0c2005f30a4914ca97c27cd5a7c80e7814382cb05c82d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260731_pl_feedback_brand_qty.sql":{"size":4927,"mtime_ns":1785445506581710120,"hash":"618b647158c133824ead60382d2b6e73713ea32a7b2224efedea431e071cc89a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_feedback_brand_qty.py":{"size":3424,"mtime_ns":1785452788497663858,"hash":"1fe2a5c0b1968f864ef22a436b0e13a697977ef09a71c6e8bfda46da25825f90"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_product_display.py":{"size":3590,"mtime_ns":1785451173102957680,"hash":"728e1d79035875ac350201c943241493f04006a2e1f71d7e3e41571eeac721e5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/backfill_crm_customer_license_urls.py":{"size":7789,"mtime_ns":1785467213374029636,"hash":"a0faaa83477187d8b4a9299d1b170f5ea2c5ca3b450fb4437bf1dc30ab1b5b1b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/backfill_crm_contract_attachment_urls.py":{"size":9795,"mtime_ns":1785469147228035015,"hash":"6331fa977cbb794c3ee9cb072692c63b05f23f071ab8df1d0b8368455af3b82c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260731_bx_reimburse_invoice_attachment_id.sql":{"size":784,"mtime_ns":1785473095766881076,"hash":"702c6845b0b936d4a5a06918fcebefd71b38ca4b2dcd7e51ee45af19c77407b6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_approver_setting.py":{"size":3632,"mtime_ns":1785560604338687232,"hash":"7442687a3dde4a0a354064c3fef7503d37c9ce3f1991873e64befd2d1812ba4a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_quote_approver_setting.py":{"size":1015,"mtime_ns":1785560055190832342,"hash":"2a7e91833de33ed92ac8e9157746f15fd7a9e7c5f25bf043dfb0dd7c77859715"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/quote_approver_setting.py":{"size":291,"mtime_ns":1785560601528774704,"hash":"e978cab24ee46f23b7432bb6f411e760f2d8d782a924efe811608c2200fcba0a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260801_crm_quote_approver_setting.sql":{"size":2117,"mtime_ns":1785560449173091996,"hash":"66c92fbf3031539484e241934c14fee379a70b1b179a8b8345c5ae70c8498f14"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approver_setting.py":{"size":2875,"mtime_ns":1785561463337293690,"hash":"7c3aeed13e66f67159220b323298b414a9d1b1f9ca6b679dca31532be86a132e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/contract_approver_setting.py":{"size":294,"mtime_ns":1785561469090499071,"hash":"fca8a7cb3a75c82e9c3395f2471e20dfcdc469a8fd299c9c6ce5e79576a6c3fb"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260801_crm_contract_approver_setting.sql":{"size":1903,"mtime_ns":1785561454940491268,"hash":"f81470b97da71283b9d3defc81fd177cc2fea1dbd487febaebf7a8f24a73c71f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260802_pl_vehicle_personnel_photo_urls.sql":{"size":468,"mtime_ns":1785637173564154921,"hash":"852680d19f6b71def29908a718ae92d9169a025e9d78808b9f8d000bdc61fb52"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_vehicle_personnel_photo_schema.py":{"size":1231,"mtime_ns":1785637623899998875,"hash":"e4c64e35446196f1de7ba0e719be054d019ec8b075f5ea8c128b8a60c59695aa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_no_align.py":{"size":3126,"mtime_ns":1785825791491415499,"hash":"ff831959d54053ab544d9c377133a120cd4caa8aac6650da16a36150444d78e6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/public_vehicles.py":{"size":2231,"mtime_ns":1785768179156681871,"hash":"7a98a605c181669b08d642c45a0dd6fa523939af5125b5ad0bae0de2ee95b2f0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_public_db_vehicle_plates.py":{"size":323,"mtime_ns":1785768224738481967,"hash":"616ff1488b2b17e419c4e4ec368aa2764afea116722010cad785218a4e12259a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_name_from_parties.py":{"size":6224,"mtime_ns":1785828057088217919,"hash":"9a59bc109ddc024a07b33b7392a05d483860e2214950a5e3552dee57e207be2f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_resolve_driver.py":{"size":1013,"mtime_ns":1785919856405819727,"hash":"d88b4043fc8e89abcf86c7939f9c0072b79a598a2c9d0429863bbaefad603fed"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_transport_arrange_optional_driver.py":{"size":1644,"mtime_ns":1785920340176946279,"hash":"04877379c17cc22060c20331e036b8fd38356f19472ff3f44a5bcbc24c599d03"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_db_resolve_crm_product.py":{"size":1264,"mtime_ns":1785920708079005468,"hash":"f882adf7b1fbc4eb6a597a32d7854c8e70fdb647e36575077fca62ebcd5d27fd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py":{"size":762,"mtime_ns":1785923790041814966,"hash":"7148ba8438800787cfdf57ae6f9a036c937365b7fb3488446a9ee8f0eec627cb"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_product_options_keyword.py":{"size":806,"mtime_ns":1786094317931053244,"hash":"9af3eec71149b686820da37b4b1648c303572d9915a1852f29d6d009c824223c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_freight_unsettled_q_filter.py":{"size":670,"mtime_ns":1785967257899846757,"hash":"70f5f3ba569ad9bda0cf82b2c1715098f7e4456a94ec3ac4c8166f68707ca64d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260806_pl_plan_pickup_delivery_contact.sql":{"size":355,"mtime_ns":1785967900218676221,"hash":"91ff55c654521b8604a30a8cd71c1219fcaae1e8e851684121a5c17937d447af"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_public_link_archived.py":{"size":3479,"mtime_ns":1785969243308729198,"hash":"f45e090c9f94693e70c4316e4201524d108696b394dad3f32d141119e467a36d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_cert_list_filters.py":{"size":1103,"mtime_ns":1785970837922953790,"hash":"702a2b5e78b7bc830c43349093dec22e441557293ff3ea42144a87080dab6329"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260806_pl_plan_product_cert_urls_multi.sql":{"size":506,"mtime_ns":1786026516384661236,"hash":"888d02bc77f0d9d037b55a45a54654dcefa5a4d8753e81af10c1b064df67a4ec"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/pinyin_abbr.py":{"size":1728,"mtime_ns":1786092671463202484,"hash":"6249344ef1bba8eb8ffe88b78a5415cded10cc964936c9a21d6664cd07dc2574"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/backfill_name_pinyin_abbr.py":{"size":3672,"mtime_ns":1786094939020069795,"hash":"95641ff2c1f983d666f9b542abd95e67678ce0f3a0c060b9b2894d124f72b48e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_name_pinyin_search.py":{"size":2904,"mtime_ns":1787293720086491230,"hash":"cb330451af4b5b3609999bb31f950c086cd6e443cef9c73da5e4a6414fa2e8cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pinyin_abbr.py":{"size":1914,"mtime_ns":1786093018755774342,"hash":"9e1e22aacecbc371c65cf98b765f1801142a42ce86f00b595f731730de01462b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/menu_favorite.py":{"size":5893,"mtime_ns":1786164467195259167,"hash":"47abb770c311107aa9175afa9e763f725ae632aa142701dd0920b1045bc0201e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/menu_favorite.py":{"size":448,"mtime_ns":1786164463958357878,"hash":"1e59cabf9fb61d54069a3e2f6989a35caf7e3f7923c147b3c8e311f9e414e98f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_menu_favorite_crud.py":{"size":333,"mtime_ns":1786161663839656046,"hash":"90f5142c48c2ac1f45779795f1bf98d4586e8021a51661d67749a1a997ee6317"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260808_crm_contract_freight.sql":{"size":485,"mtime_ns":1786168838831711328,"hash":"03a5817604775db7b6fac63b4c2525b29209157c95d3b62d0832e10b3ade5dad"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260808_crm_barrel_deposit.sql":{"size":640,"mtime_ns":1786171064998893402,"hash":"635246d391b3c51cc942b0bd0626bec0d8a1e01b040982eaf4d8247cfcced69d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_internal_customer.py":{"size":359,"mtime_ns":1786203402295831206,"hash":"b0943b9c2c5798ca37a7070f830dfd25e3136c6cc44b68445d387838ed0a8d93"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260808_pl_plan_contract.sql":{"size":1307,"mtime_ns":1786203401315396321,"hash":"70fc937d300892df9e01020e7efce19320d671a3d68d8ef2a90ff511c31eaada"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260808_pl_plan_legacy_party_contracts.py":{"size":6021,"mtime_ns":1786252409838644271,"hash":"d1c4e2da790cccb70a334e9c31e35d7468d02ebcd3a7ee94be148ca793f2bdb2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_approval_reedit.py":{"size":7025,"mtime_ns":1786365642443908289,"hash":"b8b8b8fdc2eb6227d0bef5e8904a48952b75097add1f8016db21789157fa3d05"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/duty.py":{"size":4789,"mtime_ns":1787234033913753421,"hash":"7e4b860fb7c763e302a175cf1af1ccfb100475bd7c59ed7407c8e6578a72d206"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/public_duty.py":{"size":1302,"mtime_ns":1786782175107488581,"hash":"202fd6efb33db564f8bacad0a2b81f4332f4a458a63503cf0d7d0c4e4b9c0ce7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/duty_models.py":{"size":4898,"mtime_ns":1787233986158169284,"hash":"bd9909cc90a442a11c7869d1110f9df5fa841c88e4a8754ad5e6b6c312a87305"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/duty.py":{"size":1697,"mtime_ns":1787233986157770035,"hash":"ae6a435f760277d2e0e77e6f462afc858c0d8ab65c0b7a598d167278d1916bfb"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/duty_schedule.py":{"size":30001,"mtime_ns":1787234210689840547,"hash":"716b0e3dce40f3818b6d715b6b2607d02907db1390b82607759dbf3f39008b67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260814_duty_schedule.sql":{"size":5119,"mtime_ns":1786780828212847883,"hash":"6dd48ca0af157368eaf593b4fab9572717fe181b268df01910d33ef429fe5a30"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_duty_schedule.py":{"size":21508,"mtime_ns":1787234218575121998,"hash":"5229f6f7f74c417b47866077b4dcc6a111669318da8c423e9e1dbddf6331c3dc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260815_duty_menu_portal_fix.sql":{"size":2448,"mtime_ns":1786862443519086520,"hash":"e8b344901dbe1a098895f53eb58b6b774d4d9dc98c4314af19e3d723c630d46a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/crm_settlement_clause.py":{"size":1100,"mtime_ns":1786936843880889885,"hash":"39bdd102736139f915fbde5bf0492b1ab5bea171e50886fbebdc91d11ecc26f0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260816_crm_settlement_method_options.sql":{"size":1283,"mtime_ns":1786863543577427878,"hash":"1a77cf2cbbd8c7bd36ace3c5746333533dfc67d9538b5e503d20fce0adae3839"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_settlement_clause.py":{"size":1171,"mtime_ns":1786936844055122834,"hash":"1d5399fb65ab99a9192d53cf6669591a805fb7acac0b783cec2de73b8f263c41"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260817_bx_reimburse_detail_occur_date.sql":{"size":248,"mtime_ns":1786952998755687610,"hash":"47f947e6b9c44f9cd43eab4933391a0a066c8afe47c7f150dea100d0fa527556"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_bx_optional_date.py":{"size":676,"mtime_ns":1786953396821732245,"hash":"ad6002f2e2381ce3492f0655a9e9d25c12e79eab39b25cad11eac1ce6681d32c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260817_duty_staff_role.sql":{"size":669,"mtime_ns":1786961977381233883,"hash":"18ef78c4e3f3098f98391595d410d9d3208b27e911a51b2dd069a087c21552b6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/reimburse_import.py":{"size":22009,"mtime_ns":1787059477540105703,"hash":"3d8335fb43d7521ab956b91b4f0db97865d1eac9567e6b16fc6f64514554dd7e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/excel_list_validation.py":{"size":1727,"mtime_ns":1787058157688083229,"hash":"c5ee81774768064f85a0a1c10fe26560c5cd8688dc9a350db20183e8e6317c08"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_bx_reimburse_import.py":{"size":6968,"mtime_ns":1787059491763657804,"hash":"c1dcf74bdb897989de6275dc50c8f2c4d215d0c255667ad0aa13327491917511"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/id_card.py":{"size":1013,"mtime_ns":1787140660375276708,"hash":"2a22466e4135cbb3a407c4024083962e356c0173d6bcc98ef37c1826ac2b0e01"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_personnel_age.py":{"size":788,"mtime_ns":1787140671776513916,"hash":"b143ed12c8ead08503cc1301305c805dc0bd3a15e6657486b497996e546884ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_id_card_age.py":{"size":722,"mtime_ns":1787140680915434955,"hash":"82a6853f305295d6b577bc170e57b9ea0eb878a6a049e905754f361e040a7a5f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py":{"size":9673,"mtime_ns":1787202689374864099,"hash":"a1f1c96584af9c8533b4330c8732d318f6644dd37b63cf01766815524c789748"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_contract_gap.py":{"size":2024,"mtime_ns":1787198187913738457,"hash":"7f93087d723da02d189f822810735774d7cb82ad518231edd10acb7586012bbf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260820_pl_plan_contract_complete_menu.sql":{"size":3099,"mtime_ns":1787235628967077508,"hash":"b179365b93ad7b9447f281524ce477bb800f3281ae017f73f8e4d23e9141e8a4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_trailer_cert_rules.py":{"size":1667,"mtime_ns":1787200408112863658,"hash":"b11b4a7dc26bc9988e9fbb53caab9725eeb4ffdd807a183086f8a724184625dd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260820_duty_shift_dict_time.sql":{"size":5448,"mtime_ns":1787230059421313571,"hash":"58d824821f7152e7becdf602d65007db1245508560f66be35df785c8547c8598"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260820_duty_time_range_dict.sql":{"size":1731,"mtime_ns":1787234296460334684,"hash":"9f1aabaf898689cb98dd91deb8d449824c6c0d2d642d2c330ed973232766b2a2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260821_pl_plan_force_follow_status_menu.sql":{"size":1031,"mtime_ns":1787278886924596982,"hash":"b6688bfef6437cf162d56b7ad935a8196d1b248f26b1ed0d6032539ef40ea2df"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_public_transport_history.py":{"size":1282,"mtime_ns":1787282256679657054,"hash":"59c01e8e73cbbd7b67f049a859201d1158e69e81e47fd3675293d661891d71c8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_bx_reimburse_my_page_size.py":{"size":404,"mtime_ns":1787292906647210872,"hash":"28a0667e7c2508d19c356f84f7c8e0d880e8ef42200c1034f071d85062d58795"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py":{"size":3318,"mtime_ns":1787296137624254059,"hash":"37bc823b215c4dcafafb7c663945d56b44ec14549836ec20c3d29b5f4f5be3b9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_dict_ensure.py":{"size":4958,"mtime_ns":1787296131347678040,"hash":"574a7c321a8bb2997637744194d5ff1b40fd6144ce718ce8e6f036fea1293c69"}} \ No newline at end of file diff --git a/backend/graphify-out/graph.html b/backend/graphify-out/graph.html index 9c23faec9..281038475 100644 --- a/backend/graphify-out/graph.html +++ b/backend/graphify-out/graph.html @@ -63,12 +63,12 @@
-