{"nodes": [{"id": "$graphify-root$_backend_app_services_scheduler_service_py", "label": "scheduler_service.py", "file_type": "code", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L1"}, {"id": "$graphify-root$_backend_app_services_scheduler_service_seed_scheduler_config", "label": "seed_scheduler_config()", "file_type": "code", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L91", "_callable": true}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/backend/app/services/scheduler_service.py"}, {"id": "$graphify-root$_backend_app_services_scheduler_service_next_run", "label": "_next_run()", "file_type": "code", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L116", "_callable": true}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/backend/app/services/scheduler_service.py"}, {"id": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "label": "job_status_summary()", "file_type": "code", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L125", "_callable": true}, {"id": "$graphify-root$_backend_app_services_scheduler_service_rationale_1", "label": "Scheduler config service \u2014 status per job type (persist, bukan history list).\u2026", "file_type": "rationale", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L1"}, {"id": "$graphify-root$_backend_app_services_scheduler_service_rationale_92", "label": "Seed SchedulerConfig dari JOB_DEFS (persist antar restart). Hanya seed job_type\u2026", "file_type": "rationale", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L92"}, {"id": "$graphify-root$_backend_app_services_scheduler_service_rationale_126", "label": "Return status per job type (persist), match TUI job_summary().", "file_type": "rationale", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L126"}], "edges": [{"source": "$graphify-root$_backend_app_services_scheduler_service_py", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L9", "weight": 1.0, "_python_import_module": "logging", "_python_import_bindings": [["logging", "logging"]], "_python_import_module_binding": true}, {"source": "$graphify-root$_backend_app_services_scheduler_service_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L10", "weight": 1.0, "_python_import_module": "datetime", "_python_import_bindings": [["datetime", "datetime"], ["timedelta", "timedelta"], ["timezone", "timezone"]]}, {"source": "$graphify-root$_backend_app_services_scheduler_service_py", "target": "croniter", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L12", "weight": 1.0, "_python_import_module": "croniter", "_python_import_bindings": [["croniter", "croniter"]]}, {"source": "$graphify-root$_backend_app_services_scheduler_service_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L13", "weight": 1.0, "_python_import_module": "sqlalchemy.orm", "_python_import_bindings": [["Session", "Session"]]}, {"source": "$graphify-root$_backend_app_services_scheduler_service_py", "target": "$graphify-root$_backend_app_db_models_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L15", "weight": 1.0, "_python_import_module": "app.db.models", "_python_import_bindings": [["SchedulerConfig", "SchedulerConfig"], ["JobHistory", "JobHistory"]], "target_file": "$graphify-root$/backend/app/db/models.py"}, {"source": "$graphify-root$_backend_app_services_scheduler_service_py", "target": "$graphify-root$_backend_app_services_scheduler_service_seed_scheduler_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L91", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_scheduler_service_seed_scheduler_config", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L91", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_scheduler_service_py", "target": "$graphify-root$_backend_app_services_scheduler_service_next_run", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L116", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_scheduler_service_next_run", "target": "datetime", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L116", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_scheduler_service_py", "target": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L125", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L125", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "target": "$graphify-root$_backend_app_services_scheduler_service_seed_scheduler_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L127", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "target": "$graphify-root$_backend_app_services_scheduler_service_next_run", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L200", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_scheduler_service_rationale_1", "target": "$graphify-root$_backend_app_services_scheduler_service_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_scheduler_service_rationale_92", "target": "$graphify-root$_backend_app_services_scheduler_service_seed_scheduler_config", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L92", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_scheduler_service_rationale_126", "target": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L126", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_seed_scheduler_config", "callee": "all", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L98", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_seed_scheduler_config", "callee": "query", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L98", "receiver": "db", "_python_receiver_shadowed": true, "receiver_type": "Session"}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_seed_scheduler_config", "callee": "add", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L104", "receiver": "db", "_python_receiver_shadowed": true, "receiver_type": "Session"}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_seed_scheduler_config", "callee": "SchedulerConfig", "is_member_call": false, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L104", "receiver": null}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_seed_scheduler_config", "callee": "add", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L109", "receiver": "existing_types", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_seed_scheduler_config", "callee": "commit", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L112", "receiver": "db", "_python_receiver_shadowed": true, "receiver_type": "Session"}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_seed_scheduler_config", "callee": "info", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L113", "receiver": "logger", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_next_run", "callee": "now", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L118", "receiver": "datetime", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_next_run", "callee": "croniter", "is_member_call": false, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L119", "receiver": null}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_next_run", "callee": "get_next", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L120", "receiver": "itr", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_next_run", "callee": "datetime", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L120"}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "all", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L130", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "query", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L130", "receiver": "db", "_python_receiver_shadowed": true, "receiver_type": "Session"}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "SchedulerConfig", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L130"}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "all", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L136", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "order_by", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L136", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "filter", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L136", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "query", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L136", "receiver": "db", "_python_receiver_shadowed": true, "receiver_type": "Session"}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "desc", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L146", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "nullslast", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L147", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "desc", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L147", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "nullslast", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L148", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "desc", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L148", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "all", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L159", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "distinct", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L159", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "filter", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L159", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "query", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L159", "receiver": "db", "_python_receiver_shadowed": true, "receiver_type": "Session"}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "items", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L180", "receiver": "PRIMARY", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "get", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L181", "receiver": "configs", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "get", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L192", "receiver": "last_by_type", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "get", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L194", "receiver": "last", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "replace", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L197", "receiver": "last_run", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "astimezone", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L198", "receiver": "last_run", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "WIB", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L198"}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "replace", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L202", "receiver": "next_run", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "WIB", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "backend/app/services/scheduler_service.py", "source_location": "L202"}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "get", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L204", "receiver": "last", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "append", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L210", "receiver": "summary", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "isoformat", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L214", "receiver": "last_run", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "isoformat", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L215", "receiver": "next_run", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "get", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L216", "receiver": "DETAIL", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "get", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L217", "receiver": "last", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_scheduler_service_job_status_summary", "callee": "get", "is_member_call": true, "source_file": "backend/app/services/scheduler_service.py", "source_location": "L218", "receiver": "last", "_python_receiver_shadowed": true}], "_cached_target_files": ["$graphify-root$/backend/app/db/models.py"]}