{"nodes": [{"id": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_py", "label": "base.py", "file_type": "code", "source_file": "app/infrastructure/db/base.py", "source_location": "L1"}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_base", "label": "Base", "file_type": "code", "source_file": "app/infrastructure/db/base.py", "source_location": "L19", "_callable": true}, {"id": "declarativebase", "label": "DeclarativeBase", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/senko/Work/mcma-compose/mcma-backend/app/infrastructure/db/base.py"}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_rationale_1", "label": "Declarative base with a fixed naming convention. The naming convention makes Al", "file_type": "rationale", "source_file": "app/infrastructure/db/base.py", "source_location": "L1"}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_rationale_20", "label": "Base for all ORM models. Import models so Alembic sees their metadata.", "file_type": "rationale", "source_file": "app/infrastructure/db/base.py", "source_location": "L20"}], "edges": [{"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/base.py", "source_location": "L7", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/base.py", "source_location": "L8", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_py", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_base", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/base.py", "source_location": "L19", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_base", "target": "declarativebase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/base.py", "source_location": "L19", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_rationale_1", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/base.py", "source_location": "L1", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_rationale_20", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_base_base", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/base.py", "source_location": "L20", "weight": 1.0}], "raw_calls": []}