Files
tfm_ainventory/graphify-out/cache/644fdf0c40eaaf1b6389b9e600b02b975961b3fac6b175774079d3fc934caea5.json

1 line
49 KiB
JSON

{"nodes": [{"id": "backend_routers_items_py", "label": "items.py", "file_type": "code", "source_file": "backend/routers/items.py", "source_location": "L1"}, {"id": "items_search_items", "label": "search_items()", "file_type": "code", "source_file": "backend/routers/items.py", "source_location": "L26"}, {"id": "items_read_item_stats", "label": "read_item_stats()", "file_type": "code", "source_file": "backend/routers/items.py", "source_location": "L114"}, {"id": "items_read_items", "label": "read_items()", "file_type": "code", "source_file": "backend/routers/items.py", "source_location": "L133"}, {"id": "items_read_item", "label": "read_item()", "file_type": "code", "source_file": "backend/routers/items.py", "source_location": "L144"}, {"id": "items_extract_label", "label": "extract_label()", "file_type": "code", "source_file": "backend/routers/items.py", "source_location": "L171"}, {"id": "items_create_item", "label": "create_item()", "file_type": "code", "source_file": "backend/routers/items.py", "source_location": "L205"}, {"id": "items_update_item", "label": "update_item()", "file_type": "code", "source_file": "backend/routers/items.py", "source_location": "L302"}, {"id": "items_update_item_quantity", "label": "update_item_quantity()", "file_type": "code", "source_file": "backend/routers/items.py", "source_location": "L335"}, {"id": "items_delete_item", "label": "delete_item()", "file_type": "code", "source_file": "backend/routers/items.py", "source_location": "L386"}, {"id": "items_upload_photo", "label": "upload_photo()", "file_type": "code", "source_file": "backend/routers/items.py", "source_location": "L454"}, {"id": "items_auto_save_photo_from_extraction", "label": "_auto_save_photo_from_extraction()", "file_type": "code", "source_file": "backend/routers/items.py", "source_location": "L622"}, {"id": "items_rationale_31", "label": "[PHASE-5-T1] Search items across all text fields (name, part_number, barcode, de", "file_type": "rationale", "source_file": "backend/routers/items.py", "source_location": "L31"}, {"id": "items_rationale_118", "label": "[C-01] Item statistics \u2014 only for authenticated users.", "file_type": "rationale", "source_file": "backend/routers/items.py", "source_location": "L118"}, {"id": "items_rationale_139", "label": "[C-01] List of items \u2014 only for authenticated users.", "file_type": "rationale", "source_file": "backend/routers/items.py", "source_location": "L139"}, {"id": "items_rationale_149", "label": "[C-01] Get item \u2014 only for authenticated users. [PHASE1-T5] Include photo URLs i", "file_type": "rationale", "source_file": "backend/routers/items.py", "source_location": "L149"}, {"id": "items_rationale_177", "label": "[C-01] Extract label from image \u2014 only for authenticated users. [H-02] Rate limi", "file_type": "rationale", "source_file": "backend/routers/items.py", "source_location": "L177"}, {"id": "items_rationale_210", "label": "[C-01] Create item \u2014 only for authenticated users. [M-02] user_id from token.", "file_type": "rationale", "source_file": "backend/routers/items.py", "source_location": "L210"}, {"id": "items_rationale_308", "label": "[C-01] Update item \u2014 only for authenticated users.", "file_type": "rationale", "source_file": "backend/routers/items.py", "source_location": "L308"}, {"id": "items_rationale_341", "label": "[PHASE-5-T4] Update item quantity via PATCH. Supports direct quantity adjustment", "file_type": "rationale", "source_file": "backend/routers/items.py", "source_location": "L341"}, {"id": "items_rationale_391", "label": "[C-01] Delete item \u2014 only for authenticated users. InterventionItems are cleared", "file_type": "rationale", "source_file": "backend/routers/items.py", "source_location": "L391"}, {"id": "items_rationale_462", "label": "[PHASE1-T4] Upload/replace photo for an item. - Accept multipart file uploa", "file_type": "rationale", "source_file": "backend/routers/items.py", "source_location": "L462"}, {"id": "items_rationale_629", "label": "Helper function to save extracted photos with AI-guided crop/rotation. This", "file_type": "rationale", "source_file": "backend/routers/items.py", "source_location": "L629"}], "edges": [{"source": "backend_routers_items_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L1", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L2", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L3", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L4", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L5", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L6", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "pathlib", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L7", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "slowapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L8", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "slowapi_util", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L9", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "pathlib", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L10", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "backend_init_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L11", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "backend_database_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L12", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "backend_services_image_processing_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L13", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "backend_services_image_storage_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L14", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "backend_logger_py", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L15", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "items_search_items", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L26", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "items_read_item_stats", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L114", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "items_read_items", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L133", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "items_read_item", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L144", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "items_extract_label", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L171", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "items_create_item", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L205", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "items_update_item", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L302", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "items_update_item_quantity", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L335", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "items_delete_item", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L386", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "items_upload_photo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L454", "weight": 1.0}, {"source": "backend_routers_items_py", "target": "items_auto_save_photo_from_extraction", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L622", "weight": 1.0}, {"source": "items_create_item", "target": "items_auto_save_photo_from_extraction", "relation": "calls", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L256", "weight": 1.0}, {"source": "items_rationale_31", "target": "items_search_items", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L31", "weight": 1.0}, {"source": "items_rationale_118", "target": "items_read_item_stats", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L118", "weight": 1.0}, {"source": "items_rationale_139", "target": "items_read_items", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L139", "weight": 1.0}, {"source": "items_rationale_149", "target": "items_read_item", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L149", "weight": 1.0}, {"source": "items_rationale_177", "target": "items_extract_label", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L177", "weight": 1.0}, {"source": "items_rationale_210", "target": "items_create_item", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L210", "weight": 1.0}, {"source": "items_rationale_308", "target": "items_update_item", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L308", "weight": 1.0}, {"source": "items_rationale_341", "target": "items_update_item_quantity", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L341", "weight": 1.0}, {"source": "items_rationale_391", "target": "items_delete_item", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L391", "weight": 1.0}, {"source": "items_rationale_462", "target": "items_upload_photo", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L462", "weight": 1.0}, {"source": "items_rationale_629", "target": "items_auto_save_photo_from_extraction", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/routers/items.py", "source_location": "L629", "weight": 1.0}], "raw_calls": [{"caller_nid": "items_search_items", "callee": "len", "source_file": "backend/routers/items.py", "source_location": "L38"}, {"caller_nid": "items_search_items", "callee": "len", "source_file": "backend/routers/items.py", "source_location": "L38"}, {"caller_nid": "items_search_items", "callee": "lower", "source_file": "backend/routers/items.py", "source_location": "L41"}, {"caller_nid": "items_search_items", "callee": "all", "source_file": "backend/routers/items.py", "source_location": "L44"}, {"caller_nid": "items_search_items", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L44"}, {"caller_nid": "items_search_items", "callee": "lower", "source_file": "backend/routers/items.py", "source_location": "L53"}, {"caller_nid": "items_search_items", "callee": "startswith", "source_file": "backend/routers/items.py", "source_location": "L56"}, {"caller_nid": "items_search_items", "callee": "lower", "source_file": "backend/routers/items.py", "source_location": "L63"}, {"caller_nid": "items_search_items", "callee": "startswith", "source_file": "backend/routers/items.py", "source_location": "L66"}, {"caller_nid": "items_search_items", "callee": "lower", "source_file": "backend/routers/items.py", "source_location": "L73"}, {"caller_nid": "items_search_items", "callee": "lower", "source_file": "backend/routers/items.py", "source_location": "L81"}, {"caller_nid": "items_search_items", "callee": "lower", "source_file": "backend/routers/items.py", "source_location": "L87"}, {"caller_nid": "items_search_items", "callee": "lower", "source_file": "backend/routers/items.py", "source_location": "L93"}, {"caller_nid": "items_search_items", "callee": "lower", "source_file": "backend/routers/items.py", "source_location": "L99"}, {"caller_nid": "items_search_items", "callee": "append", "source_file": "backend/routers/items.py", "source_location": "L104"}, {"caller_nid": "items_search_items", "callee": "sort", "source_file": "backend/routers/items.py", "source_location": "L107"}, {"caller_nid": "items_read_item_stats", "callee": "count", "source_file": "backend/routers/items.py", "source_location": "L119"}, {"caller_nid": "items_read_item_stats", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L119"}, {"caller_nid": "items_read_item_stats", "callee": "count", "source_file": "backend/routers/items.py", "source_location": "L120"}, {"caller_nid": "items_read_item_stats", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L120"}, {"caller_nid": "items_read_item_stats", "callee": "all", "source_file": "backend/routers/items.py", "source_location": "L123"}, {"caller_nid": "items_read_item_stats", "callee": "group_by", "source_file": "backend/routers/items.py", "source_location": "L123"}, {"caller_nid": "items_read_item_stats", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L123"}, {"caller_nid": "items_read_item_stats", "callee": "count", "source_file": "backend/routers/items.py", "source_location": "L123"}, {"caller_nid": "items_read_items", "callee": "all", "source_file": "backend/routers/items.py", "source_location": "L140"}, {"caller_nid": "items_read_items", "callee": "limit", "source_file": "backend/routers/items.py", "source_location": "L140"}, {"caller_nid": "items_read_items", "callee": "offset", "source_file": "backend/routers/items.py", "source_location": "L140"}, {"caller_nid": "items_read_items", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L140"}, {"caller_nid": "items_read_item", "callee": "first", "source_file": "backend/routers/items.py", "source_location": "L150"}, {"caller_nid": "items_read_item", "callee": "filter", "source_file": "backend/routers/items.py", "source_location": "L150"}, {"caller_nid": "items_read_item", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L150"}, {"caller_nid": "items_read_item", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L152"}, {"caller_nid": "items_read_item", "callee": "PhotoResponse", "source_file": "backend/routers/items.py", "source_location": "L156"}, {"caller_nid": "items_extract_label", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L182"}, {"caller_nid": "items_extract_label", "callee": "join", "source_file": "backend/routers/items.py", "source_location": "L184"}, {"caller_nid": "items_extract_label", "callee": "read", "source_file": "backend/routers/items.py", "source_location": "L187"}, {"caller_nid": "items_extract_label", "callee": "len", "source_file": "backend/routers/items.py", "source_location": "L189"}, {"caller_nid": "items_extract_label", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L190"}, {"caller_nid": "items_extract_label", "callee": "strip_exif_orientation", "source_file": "backend/routers/items.py", "source_location": "L197"}, {"caller_nid": "items_extract_label", "callee": "info", "source_file": "backend/routers/items.py", "source_location": "L198"}, {"caller_nid": "items_extract_label", "callee": "len", "source_file": "backend/routers/items.py", "source_location": "L198"}, {"caller_nid": "items_extract_label", "callee": "extract_label_info", "source_file": "backend/routers/items.py", "source_location": "L200"}, {"caller_nid": "items_extract_label", "callee": "info", "source_file": "backend/routers/items.py", "source_location": "L201"}, {"caller_nid": "items_extract_label", "callee": "type", "source_file": "backend/routers/items.py", "source_location": "L201"}, {"caller_nid": "items_create_item", "callee": "first", "source_file": "backend/routers/items.py", "source_location": "L213"}, {"caller_nid": "items_create_item", "callee": "filter", "source_file": "backend/routers/items.py", "source_location": "L213"}, {"caller_nid": "items_create_item", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L213"}, {"caller_nid": "items_create_item", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L216"}, {"caller_nid": "items_create_item", "callee": "model_dump", "source_file": "backend/routers/items.py", "source_location": "L221"}, {"caller_nid": "items_create_item", "callee": "model_validate", "source_file": "backend/routers/items.py", "source_location": "L221"}, {"caller_nid": "items_create_item", "callee": "first", "source_file": "backend/routers/items.py", "source_location": "L227"}, {"caller_nid": "items_create_item", "callee": "filter", "source_file": "backend/routers/items.py", "source_location": "L227"}, {"caller_nid": "items_create_item", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L227"}, {"caller_nid": "items_create_item", "callee": "add", "source_file": "backend/routers/items.py", "source_location": "L229"}, {"caller_nid": "items_create_item", "callee": "Category", "source_file": "backend/routers/items.py", "source_location": "L229"}, {"caller_nid": "items_create_item", "callee": "commit", "source_file": "backend/routers/items.py", "source_location": "L230"}, {"caller_nid": "items_create_item", "callee": "first", "source_file": "backend/routers/items.py", "source_location": "L233"}, {"caller_nid": "items_create_item", "callee": "filter", "source_file": "backend/routers/items.py", "source_location": "L233"}, {"caller_nid": "items_create_item", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L233"}, {"caller_nid": "items_create_item", "callee": "add", "source_file": "backend/routers/items.py", "source_location": "L235"}, {"caller_nid": "items_create_item", "callee": "Color", "source_file": "backend/routers/items.py", "source_location": "L235"}, {"caller_nid": "items_create_item", "callee": "commit", "source_file": "backend/routers/items.py", "source_location": "L236"}, {"caller_nid": "items_create_item", "callee": "model_dump", "source_file": "backend/routers/items.py", "source_location": "L239"}, {"caller_nid": "items_create_item", "callee": "Item", "source_file": "backend/routers/items.py", "source_location": "L240"}, {"caller_nid": "items_create_item", "callee": "add", "source_file": "backend/routers/items.py", "source_location": "L241"}, {"caller_nid": "items_create_item", "callee": "commit", "source_file": "backend/routers/items.py", "source_location": "L242"}, {"caller_nid": "items_create_item", "callee": "refresh", "source_file": "backend/routers/items.py", "source_location": "L243"}, {"caller_nid": "items_create_item", "callee": "b64decode", "source_file": "backend/routers/items.py", "source_location": "L249"}, {"caller_nid": "items_create_item", "callee": "info", "source_file": "backend/routers/items.py", "source_location": "L250"}, {"caller_nid": "items_create_item", "callee": "len", "source_file": "backend/routers/items.py", "source_location": "L250"}, {"caller_nid": "items_create_item", "callee": "strip_exif_orientation", "source_file": "backend/routers/items.py", "source_location": "L253"}, {"caller_nid": "items_create_item", "callee": "info", "source_file": "backend/routers/items.py", "source_location": "L254"}, {"caller_nid": "items_create_item", "callee": "len", "source_file": "backend/routers/items.py", "source_location": "L254"}, {"caller_nid": "items_create_item", "callee": "get", "source_file": "backend/routers/items.py", "source_location": "L259"}, {"caller_nid": "items_create_item", "callee": "get", "source_file": "backend/routers/items.py", "source_location": "L260"}, {"caller_nid": "items_create_item", "callee": "refresh", "source_file": "backend/routers/items.py", "source_location": "L265"}, {"caller_nid": "items_create_item", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L267"}, {"caller_nid": "items_create_item", "callee": "get", "source_file": "backend/routers/items.py", "source_location": "L267"}, {"caller_nid": "items_create_item", "callee": "error", "source_file": "backend/routers/items.py", "source_location": "L269"}, {"caller_nid": "items_create_item", "callee": "AuditLog", "source_file": "backend/routers/items.py", "source_location": "L286"}, {"caller_nid": "items_create_item", "callee": "dumps", "source_file": "backend/routers/items.py", "source_location": "L293"}, {"caller_nid": "items_create_item", "callee": "add", "source_file": "backend/routers/items.py", "source_location": "L296"}, {"caller_nid": "items_create_item", "callee": "commit", "source_file": "backend/routers/items.py", "source_location": "L297"}, {"caller_nid": "items_update_item", "callee": "first", "source_file": "backend/routers/items.py", "source_location": "L309"}, {"caller_nid": "items_update_item", "callee": "filter", "source_file": "backend/routers/items.py", "source_location": "L309"}, {"caller_nid": "items_update_item", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L309"}, {"caller_nid": "items_update_item", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L311"}, {"caller_nid": "items_update_item", "callee": "first", "source_file": "backend/routers/items.py", "source_location": "L315"}, {"caller_nid": "items_update_item", "callee": "filter", "source_file": "backend/routers/items.py", "source_location": "L315"}, {"caller_nid": "items_update_item", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L315"}, {"caller_nid": "items_update_item", "callee": "add", "source_file": "backend/routers/items.py", "source_location": "L317"}, {"caller_nid": "items_update_item", "callee": "Category", "source_file": "backend/routers/items.py", "source_location": "L317"}, {"caller_nid": "items_update_item", "callee": "commit", "source_file": "backend/routers/items.py", "source_location": "L318"}, {"caller_nid": "items_update_item", "callee": "first", "source_file": "backend/routers/items.py", "source_location": "L321"}, {"caller_nid": "items_update_item", "callee": "filter", "source_file": "backend/routers/items.py", "source_location": "L321"}, {"caller_nid": "items_update_item", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L321"}, {"caller_nid": "items_update_item", "callee": "add", "source_file": "backend/routers/items.py", "source_location": "L323"}, {"caller_nid": "items_update_item", "callee": "Color", "source_file": "backend/routers/items.py", "source_location": "L323"}, {"caller_nid": "items_update_item", "callee": "commit", "source_file": "backend/routers/items.py", "source_location": "L324"}, {"caller_nid": "items_update_item", "callee": "model_dump", "source_file": "backend/routers/items.py", "source_location": "L326"}, {"caller_nid": "items_update_item", "callee": "items", "source_file": "backend/routers/items.py", "source_location": "L327"}, {"caller_nid": "items_update_item", "callee": "setattr", "source_file": "backend/routers/items.py", "source_location": "L328"}, {"caller_nid": "items_update_item", "callee": "commit", "source_file": "backend/routers/items.py", "source_location": "L330"}, {"caller_nid": "items_update_item", "callee": "refresh", "source_file": "backend/routers/items.py", "source_location": "L331"}, {"caller_nid": "items_update_item_quantity", "callee": "first", "source_file": "backend/routers/items.py", "source_location": "L342"}, {"caller_nid": "items_update_item_quantity", "callee": "filter", "source_file": "backend/routers/items.py", "source_location": "L342"}, {"caller_nid": "items_update_item_quantity", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L342"}, {"caller_nid": "items_update_item_quantity", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L344"}, {"caller_nid": "items_update_item_quantity", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L348"}, {"caller_nid": "items_update_item_quantity", "callee": "int", "source_file": "backend/routers/items.py", "source_location": "L351"}, {"caller_nid": "items_update_item_quantity", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L353"}, {"caller_nid": "items_update_item_quantity", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L356"}, {"caller_nid": "items_update_item_quantity", "callee": "commit", "source_file": "backend/routers/items.py", "source_location": "L364"}, {"caller_nid": "items_update_item_quantity", "callee": "refresh", "source_file": "backend/routers/items.py", "source_location": "L365"}, {"caller_nid": "items_update_item_quantity", "callee": "AuditLog", "source_file": "backend/routers/items.py", "source_location": "L368"}, {"caller_nid": "items_update_item_quantity", "callee": "add", "source_file": "backend/routers/items.py", "source_location": "L378"}, {"caller_nid": "items_update_item_quantity", "callee": "commit", "source_file": "backend/routers/items.py", "source_location": "L379"}, {"caller_nid": "items_update_item_quantity", "callee": "info", "source_file": "backend/routers/items.py", "source_location": "L381"}, {"caller_nid": "items_delete_item", "callee": "first", "source_file": "backend/routers/items.py", "source_location": "L392"}, {"caller_nid": "items_delete_item", "callee": "filter", "source_file": "backend/routers/items.py", "source_location": "L392"}, {"caller_nid": "items_delete_item", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L392"}, {"caller_nid": "items_delete_item", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L394"}, {"caller_nid": "items_delete_item", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L398"}, {"caller_nid": "items_delete_item", "callee": "AuditLog", "source_file": "backend/routers/items.py", "source_location": "L413"}, {"caller_nid": "items_delete_item", "callee": "dumps", "source_file": "backend/routers/items.py", "source_location": "L420"}, {"caller_nid": "items_delete_item", "callee": "add", "source_file": "backend/routers/items.py", "source_location": "L423"}, {"caller_nid": "items_delete_item", "callee": "delete", "source_file": "backend/routers/items.py", "source_location": "L426"}, {"caller_nid": "items_delete_item", "callee": "filter", "source_file": "backend/routers/items.py", "source_location": "L426"}, {"caller_nid": "items_delete_item", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L426"}, {"caller_nid": "items_delete_item", "callee": "Path", "source_file": "backend/routers/items.py", "source_location": "L431"}, {"caller_nid": "items_delete_item", "callee": "lstrip", "source_file": "backend/routers/items.py", "source_location": "L431"}, {"caller_nid": "items_delete_item", "callee": "exists", "source_file": "backend/routers/items.py", "source_location": "L432"}, {"caller_nid": "items_delete_item", "callee": "unlink", "source_file": "backend/routers/items.py", "source_location": "L433"}, {"caller_nid": "items_delete_item", "callee": "info", "source_file": "backend/routers/items.py", "source_location": "L434"}, {"caller_nid": "items_delete_item", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L436"}, {"caller_nid": "items_delete_item", "callee": "Path", "source_file": "backend/routers/items.py", "source_location": "L440"}, {"caller_nid": "items_delete_item", "callee": "lstrip", "source_file": "backend/routers/items.py", "source_location": "L440"}, {"caller_nid": "items_delete_item", "callee": "exists", "source_file": "backend/routers/items.py", "source_location": "L441"}, {"caller_nid": "items_delete_item", "callee": "unlink", "source_file": "backend/routers/items.py", "source_location": "L442"}, {"caller_nid": "items_delete_item", "callee": "info", "source_file": "backend/routers/items.py", "source_location": "L443"}, {"caller_nid": "items_delete_item", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L445"}, {"caller_nid": "items_delete_item", "callee": "delete", "source_file": "backend/routers/items.py", "source_location": "L448"}, {"caller_nid": "items_delete_item", "callee": "commit", "source_file": "backend/routers/items.py", "source_location": "L449"}, {"caller_nid": "items_upload_photo", "callee": "first", "source_file": "backend/routers/items.py", "source_location": "L477"}, {"caller_nid": "items_upload_photo", "callee": "filter", "source_file": "backend/routers/items.py", "source_location": "L477"}, {"caller_nid": "items_upload_photo", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L477"}, {"caller_nid": "items_upload_photo", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L479"}, {"caller_nid": "items_upload_photo", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L483"}, {"caller_nid": "items_upload_photo", "callee": "join", "source_file": "backend/routers/items.py", "source_location": "L485"}, {"caller_nid": "items_upload_photo", "callee": "read", "source_file": "backend/routers/items.py", "source_location": "L489"}, {"caller_nid": "items_upload_photo", "callee": "len", "source_file": "backend/routers/items.py", "source_location": "L490"}, {"caller_nid": "items_upload_photo", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L491"}, {"caller_nid": "items_upload_photo", "callee": "strip", "source_file": "backend/routers/items.py", "source_location": "L499"}, {"caller_nid": "items_upload_photo", "callee": "loads", "source_file": "backend/routers/items.py", "source_location": "L501"}, {"caller_nid": "items_upload_photo", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L503"}, {"caller_nid": "items_upload_photo", "callee": "lower", "source_file": "backend/routers/items.py", "source_location": "L509"}, {"caller_nid": "items_upload_photo", "callee": "ImageProcessor", "source_file": "backend/routers/items.py", "source_location": "L512"}, {"caller_nid": "items_upload_photo", "callee": "process_photo", "source_file": "backend/routers/items.py", "source_location": "L513"}, {"caller_nid": "items_upload_photo", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L516"}, {"caller_nid": "items_upload_photo", "callee": "get", "source_file": "backend/routers/items.py", "source_location": "L518"}, {"caller_nid": "items_upload_photo", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L526"}, {"caller_nid": "items_upload_photo", "callee": "Path", "source_file": "backend/routers/items.py", "source_location": "L536"}, {"caller_nid": "items_upload_photo", "callee": "lower", "source_file": "backend/routers/items.py", "source_location": "L536"}, {"caller_nid": "items_upload_photo", "callee": "exists", "source_file": "backend/routers/items.py", "source_location": "L537"}, {"caller_nid": "items_upload_photo", "callee": "iterdir", "source_file": "backend/routers/items.py", "source_location": "L538"}, {"caller_nid": "items_upload_photo", "callee": "is_file", "source_file": "backend/routers/items.py", "source_location": "L538"}, {"caller_nid": "items_upload_photo", "callee": "get_unique_filename", "source_file": "backend/routers/items.py", "source_location": "L541"}, {"caller_nid": "items_upload_photo", "callee": "get_unique_filename", "source_file": "backend/routers/items.py", "source_location": "L542"}, {"caller_nid": "items_upload_photo", "callee": "save_image", "source_file": "backend/routers/items.py", "source_location": "L546"}, {"caller_nid": "items_upload_photo", "callee": "replace", "source_file": "backend/routers/items.py", "source_location": "L546"}, {"caller_nid": "items_upload_photo", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L548"}, {"caller_nid": "items_upload_photo", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L549"}, {"caller_nid": "items_upload_photo", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L553"}, {"caller_nid": "items_upload_photo", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L555"}, {"caller_nid": "items_upload_photo", "callee": "save_image", "source_file": "backend/routers/items.py", "source_location": "L560"}, {"caller_nid": "items_upload_photo", "callee": "replace", "source_file": "backend/routers/items.py", "source_location": "L560"}, {"caller_nid": "items_upload_photo", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L562"}, {"caller_nid": "items_upload_photo", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L563"}, {"caller_nid": "items_upload_photo", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L567"}, {"caller_nid": "items_upload_photo", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L569"}, {"caller_nid": "items_upload_photo", "callee": "Path", "source_file": "backend/routers/items.py", "source_location": "L575"}, {"caller_nid": "items_upload_photo", "callee": "lstrip", "source_file": "backend/routers/items.py", "source_location": "L575"}, {"caller_nid": "items_upload_photo", "callee": "exists", "source_file": "backend/routers/items.py", "source_location": "L576"}, {"caller_nid": "items_upload_photo", "callee": "unlink", "source_file": "backend/routers/items.py", "source_location": "L577"}, {"caller_nid": "items_upload_photo", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L581"}, {"caller_nid": "items_upload_photo", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L581"}, {"caller_nid": "items_upload_photo", "callee": "Path", "source_file": "backend/routers/items.py", "source_location": "L585"}, {"caller_nid": "items_upload_photo", "callee": "lstrip", "source_file": "backend/routers/items.py", "source_location": "L585"}, {"caller_nid": "items_upload_photo", "callee": "exists", "source_file": "backend/routers/items.py", "source_location": "L586"}, {"caller_nid": "items_upload_photo", "callee": "unlink", "source_file": "backend/routers/items.py", "source_location": "L587"}, {"caller_nid": "items_upload_photo", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L590"}, {"caller_nid": "items_upload_photo", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L590"}, {"caller_nid": "items_upload_photo", "callee": "now", "source_file": "backend/routers/items.py", "source_location": "L595"}, {"caller_nid": "items_upload_photo", "callee": "commit", "source_file": "backend/routers/items.py", "source_location": "L597"}, {"caller_nid": "items_upload_photo", "callee": "refresh", "source_file": "backend/routers/items.py", "source_location": "L598"}, {"caller_nid": "items_upload_photo", "callee": "rollback", "source_file": "backend/routers/items.py", "source_location": "L613"}, {"caller_nid": "items_upload_photo", "callee": "error", "source_file": "backend/routers/items.py", "source_location": "L615"}, {"caller_nid": "items_upload_photo", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L615"}, {"caller_nid": "items_upload_photo", "callee": "HTTPException", "source_file": "backend/routers/items.py", "source_location": "L616"}, {"caller_nid": "items_upload_photo", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L618"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "first", "source_file": "backend/routers/items.py", "source_location": "L658"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "filter", "source_file": "backend/routers/items.py", "source_location": "L658"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "query", "source_file": "backend/routers/items.py", "source_location": "L658"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L660"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "len", "source_file": "backend/routers/items.py", "source_location": "L667"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L668"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "isinstance", "source_file": "backend/routers/items.py", "source_location": "L677"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L678"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "issubset", "source_file": "backend/routers/items.py", "source_location": "L686"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "keys", "source_file": "backend/routers/items.py", "source_location": "L686"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "set", "source_file": "backend/routers/items.py", "source_location": "L687"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "keys", "source_file": "backend/routers/items.py", "source_location": "L687"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L688"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "isinstance", "source_file": "backend/routers/items.py", "source_location": "L700"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "int", "source_file": "backend/routers/items.py", "source_location": "L701"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "ValueError", "source_file": "backend/routers/items.py", "source_location": "L703"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "ValueError", "source_file": "backend/routers/items.py", "source_location": "L706"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L711"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L711"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L714"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "float", "source_file": "backend/routers/items.py", "source_location": "L720"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L722"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L728"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L728"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L731"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "Path", "source_file": "backend/routers/items.py", "source_location": "L739"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "lower", "source_file": "backend/routers/items.py", "source_location": "L739"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "exists", "source_file": "backend/routers/items.py", "source_location": "L740"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "iterdir", "source_file": "backend/routers/items.py", "source_location": "L741"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "is_file", "source_file": "backend/routers/items.py", "source_location": "L741"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "get_unique_filename", "source_file": "backend/routers/items.py", "source_location": "L744"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "save_image", "source_file": "backend/routers/items.py", "source_location": "L747"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "replace", "source_file": "backend/routers/items.py", "source_location": "L747"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "info", "source_file": "backend/routers/items.py", "source_location": "L748"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L750"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "ImageProcessor", "source_file": "backend/routers/items.py", "source_location": "L754"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "info", "source_file": "backend/routers/items.py", "source_location": "L755"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "process_photo", "source_file": "backend/routers/items.py", "source_location": "L756"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "info", "source_file": "backend/routers/items.py", "source_location": "L757"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "get", "source_file": "backend/routers/items.py", "source_location": "L757"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "get", "source_file": "backend/routers/items.py", "source_location": "L759"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "get", "source_file": "backend/routers/items.py", "source_location": "L760"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L761"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "get", "source_file": "backend/routers/items.py", "source_location": "L768"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "get", "source_file": "backend/routers/items.py", "source_location": "L769"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L772"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "Path", "source_file": "backend/routers/items.py", "source_location": "L783"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "lower", "source_file": "backend/routers/items.py", "source_location": "L783"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "exists", "source_file": "backend/routers/items.py", "source_location": "L784"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "iterdir", "source_file": "backend/routers/items.py", "source_location": "L785"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "is_file", "source_file": "backend/routers/items.py", "source_location": "L785"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "get_unique_filename", "source_file": "backend/routers/items.py", "source_location": "L788"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "get_unique_filename", "source_file": "backend/routers/items.py", "source_location": "L789"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "save_image", "source_file": "backend/routers/items.py", "source_location": "L793"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "replace", "source_file": "backend/routers/items.py", "source_location": "L793"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L795"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L795"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L798"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "save_image", "source_file": "backend/routers/items.py", "source_location": "L803"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "replace", "source_file": "backend/routers/items.py", "source_location": "L803"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L805"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L805"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "Path", "source_file": "backend/routers/items.py", "source_location": "L808"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "lstrip", "source_file": "backend/routers/items.py", "source_location": "L808"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "exists", "source_file": "backend/routers/items.py", "source_location": "L809"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "unlink", "source_file": "backend/routers/items.py", "source_location": "L810"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L815"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "now", "source_file": "backend/routers/items.py", "source_location": "L821"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "loads", "source_file": "backend/routers/items.py", "source_location": "L828"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "dumps", "source_file": "backend/routers/items.py", "source_location": "L840"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "info", "source_file": "backend/routers/items.py", "source_location": "L841"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "commit", "source_file": "backend/routers/items.py", "source_location": "L843"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "refresh", "source_file": "backend/routers/items.py", "source_location": "L844"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "info", "source_file": "backend/routers/items.py", "source_location": "L846"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "rollback", "source_file": "backend/routers/items.py", "source_location": "L852"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L853"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L853"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L856"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "warning", "source_file": "backend/routers/items.py", "source_location": "L861"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L861"}, {"caller_nid": "items_auto_save_photo_from_extraction", "callee": "str", "source_file": "backend/routers/items.py", "source_location": "L864"}]}