Lesbarer Status aus DataRepository::getStatusReport().
| Key | Value |
|---|---|
| Data Mode | demo |
| Systemcheck | ok |
| Systemcheck JSON Total | 106 |
| Systemcheck JSON Invalid | 0 |
| Data Mode aus State | demo |
| Pfadstatus Eintraege | 46 |
| Demo JSON Count | 8 |
| Project JSON Count | 89 |
| AeroDataBox JSON Count | 5 |
| BookingService | available |
| DashboardService | available |
| AnalysisService | available |
| CompanionService | available |
| CompanionLocationService | available |
| HrcService | available |
| HRC Cafes | 37 |
| HRC Risk Level | LOW |
| HRC Files | 41 |
| Companion Warning Level | yellow |
| Accommodation Suggestions | 3 |
| Club Options | 2 |
| Sleep Zones | 3 |
| Club Windows | 2 |
| Taxi Recommended | yes |
| Party Window | 20:30 - 22:30 |
| Taxi Hint Level | yellow |
| Loop Files | 1 |
| Availability Files | 0 |
| Collapse Files | 2 |
| Survivability Files | 1 |
| Found Loop Data | 2 |
{
"data_mode": "demo",
"demo_path": "/home/u404456982/domains/test.flyloina.com/public_html/data/demo",
"project_path": "/home/u404456982/domains/test.flyloina.com/public_html/data/project",
"aerodatabox_path": "/home/u404456982/domains/test.flyloina.com/public_html/data/aerodatabox",
"demo_json_count": 8,
"project_json_count": 89,
"aerodatabox_json_count": 5,
"important_files": {
"demo": {
"airports.demo.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/demo/airports.demo.json"
},
"flights.demo.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/demo/flights.demo.json"
},
"loops.demo.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/demo/loops.demo.json"
},
"collapse.demo.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/demo/collapse.demo.json"
},
"survivability.demo.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/demo/survivability.demo.json"
},
"recovery.demo.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/demo/recovery.demo.json"
},
"hrc.demo.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/demo/hrc.demo.json"
},
"companion.demo.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/demo/companion.demo.json"
}
},
"project": {
"system/airline-priority.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/project/system/airline-priority.json"
},
"system/airport-index.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/project/system/airport-index.json"
},
"system/loop-config.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/project/system/loop-config.json"
},
"hrc/masterlist.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/masterlist.json"
},
"hrc/risk-matrix.json": {
"found": true,
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/risk-matrix.json"
}
}
},
"missing_important_files": {
"demo": [],
"project": []
},
"found_project_files": [
"access/access-tiers.json",
"access/loop-unlocks.json",
"access/mock-entitlements.json",
"access/mock-products.json",
"analysis/collapse/collapse_summer_2026.json",
"analysis/rescue/ALL_rescue_routes.json",
"analysis/season/season_summer_2026_routes.json",
"booking/airport-risk-matrix.json",
"booking/archive-rules.json",
"booking/booking-block-rules.json",
"booking/booking-provider-rules.json",
"booking/booking-rules.json",
"booking/collapse-thresholds.json",
"booking/command-grid-rules.json",
"booking/confidence-rules.json",
"booking/daily-operations-rules.json",
"booking/daily-risk-thresholds.json",
"booking/event-types.json",
"booking/execution-rules.json",
"booking/grid-thresholds.json",
"booking/grid-zones.json",
"booking/incident-rules.json",
"booking/incident-thresholds.json",
"booking/intelligence-rules.json",
"booking/kiwi-link-rules.json",
"booking/mission-control-rules.json",
"booking/mission-thresholds.json",
"booking/recovery-rules.json",
"booking/risk-thresholds.json",
"booking/runtime-rules.json",
"booking/runtime-thresholds.json",
"booking/session-rules.json",
"booking/stability-rules.json",
"booking/verification-rules.json",
"booking/weekly-carousel.json",
"hrc/archived_inactive/naples.json",
"hrc/cafes/amsterdam.json",
"hrc/cafes/athens.json",
"hrc/cafes/barcelona.json",
"hrc/cafes/berlin.json",
"hrc/cafes/budapest.json",
"hrc/cafes/cgn.json",
"hrc/cafes/copenhagen.json",
"hrc/cafes/cyprus_ayia_napa.json",
"hrc/cafes/dublin.json",
"hrc/cafes/dubrovnik.json",
"hrc/cafes/flr.json",
"hrc/cafes/fmm.json",
"hrc/cafes/gdn.json",
"hrc/cafes/gran_canaria.json",
"hrc/cafes/ham.json",
"hrc/cafes/kef.json",
"hrc/cafes/krk.json",
"hrc/cafes/lisbon.json",
"hrc/cafes/london.json",
"hrc/cafes/madrid.json",
"hrc/cafes/mallorca_palma.json",
"hrc/cafes/malta_valletta.json",
"hrc/cafes/milan.json",
"hrc/cafes/muc.json",
"hrc/cafes/opo.json",
"hrc/cafes/oslo.json",
"hrc/cafes/otp.json",
"hrc/cafes/prague.json",
"hrc/cafes/psa.json",
"hrc/cafes/rome.json",
"hrc/cafes/stockholm.json",
"hrc/cafes/tsf.json",
"hrc/cafes/vce.json",
"hrc/cafes/vienna.json",
"hrc/cafes/warsaw.json",
"hrc/cafes/wro.json",
"hrc/masterlist.json",
"hrc/risk-matrix.json",
"hrc/scoring_rules.json",
"hrc/visit_rules.json",
"loops/S26_7d_template.json",
"loops/S26_14d_template.json",
"network/airport-clusters.json",
"network/core-airlines.json",
"network/hrc-airports.json",
"network/rescue-routes.json",
"routes/generated/7d_demo_loop.json",
"routes/generated/14d_demo_loop.json",
"support/airport-transfers.json",
"system/airline-priority.json",
"system/airport-index.json",
"system/loop-config.json",
"weekly/BCN_2026-06-15.json"
],
"errors": [],
"system_check": {
"ok": true,
"php": {
"version": "8.3.30",
"status": "ok"
},
"data_mode": "demo",
"paths": [
{
"path": "data/demo",
"exists": true,
"writable": true
},
{
"path": "data/project",
"exists": true,
"writable": true
},
{
"path": "data/project/system",
"exists": true,
"writable": true
},
{
"path": "data/project/hrc",
"exists": true,
"writable": true
},
{
"path": "data/project/hrc/cafes",
"exists": true,
"writable": true
},
{
"path": "data/project/network",
"exists": true,
"writable": true
},
{
"path": "data/project/support",
"exists": true,
"writable": true
},
{
"path": "data/project/loops",
"exists": true,
"writable": true
},
{
"path": "data/project/routes/generated",
"exists": true,
"writable": true
},
{
"path": "data/project/availability",
"exists": true,
"writable": true
},
{
"path": "data/project/analysis",
"exists": true,
"writable": true
},
{
"path": "data/project/weekly",
"exists": true,
"writable": true
},
{
"path": "data/aerodatabox",
"exists": true,
"writable": true
},
{
"path": "data/aerodatabox/raw",
"exists": true,
"writable": true
},
{
"path": "data/aerodatabox/normalized",
"exists": true,
"writable": true
},
{
"path": "data/aerodatabox/logs",
"exists": true,
"writable": true
},
{
"path": "data/state",
"exists": true,
"writable": true
},
{
"path": "storage",
"exists": true,
"writable": true
},
{
"path": "storage/reports/collapse",
"exists": true,
"writable": true
},
{
"path": "storage/reports/survivability",
"exists": true,
"writable": true
},
{
"path": "storage/reports/recovery",
"exists": true,
"writable": true
},
{
"path": "storage/reports/rejoin",
"exists": true,
"writable": true
},
{
"path": "storage/reports/emergency",
"exists": true,
"writable": true
},
{
"path": "storage/reports/hrc",
"exists": true,
"writable": true
},
{
"path": "storage/reports/evidence",
"exists": true,
"writable": true
},
{
"path": "storage/reports/scoring",
"exists": true,
"writable": true
},
{
"path": "storage/reports/user",
"exists": true,
"writable": true
},
{
"path": "storage/reports/access",
"exists": true,
"writable": true
},
{
"path": "storage/reports/booking",
"exists": true,
"writable": true
},
{
"path": "storage/evidence",
"exists": true,
"writable": true
},
{
"path": "storage/evidence/pending",
"exists": true,
"writable": true
},
{
"path": "storage/evidence/verified",
"exists": true,
"writable": true
},
{
"path": "storage/evidence/rejected",
"exists": true,
"writable": true
},
{
"path": "storage/evidence/review",
"exists": true,
"writable": true
},
{
"path": "storage/user",
"exists": true,
"writable": true
},
{
"path": "storage/user/profiles",
"exists": true,
"writable": true
},
{
"path": "storage/user/sessions",
"exists": true,
"writable": true
},
{
"path": "storage/user/progress",
"exists": true,
"writable": true
},
{
"path": "storage/user/loops",
"exists": true,
"writable": true
},
{
"path": "storage/user/cache",
"exists": true,
"writable": true
},
{
"path": "storage/user/access",
"exists": true,
"writable": true
},
{
"path": "storage/user/booking",
"exists": true,
"writable": true
},
{
"path": "data/project/access",
"exists": true,
"writable": true
},
{
"path": "data/project/booking",
"exists": true,
"writable": true
},
{
"path": "public",
"exists": true,
"writable": true
},
{
"path": "app",
"exists": true,
"writable": true
}
],
"json": {
"total": 106,
"valid": 106,
"invalid": 0,
"files": [
{
"file": "data/demo/airports.demo.json",
"ok": true,
"error": null
},
{
"file": "data/demo/collapse.demo.json",
"ok": true,
"error": null
},
{
"file": "data/demo/companion.demo.json",
"ok": true,
"error": null
},
{
"file": "data/demo/flights.demo.json",
"ok": true,
"error": null
},
{
"file": "data/demo/hrc.demo.json",
"ok": true,
"error": null
},
{
"file": "data/demo/loops.demo.json",
"ok": true,
"error": null
},
{
"file": "data/demo/recovery.demo.json",
"ok": true,
"error": null
},
{
"file": "data/demo/survivability.demo.json",
"ok": true,
"error": null
},
{
"file": "data/project/access/access-tiers.json",
"ok": true,
"error": null
},
{
"file": "data/project/access/loop-unlocks.json",
"ok": true,
"error": null
},
{
"file": "data/project/access/mock-entitlements.json",
"ok": true,
"error": null
},
{
"file": "data/project/access/mock-products.json",
"ok": true,
"error": null
},
{
"file": "data/project/analysis/collapse/collapse_summer_2026.json",
"ok": true,
"error": null
},
{
"file": "data/project/analysis/rescue/ALL_rescue_routes.json",
"ok": true,
"error": null
},
{
"file": "data/project/analysis/season/season_summer_2026_routes.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/airport-risk-matrix.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/archive-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/booking-block-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/booking-provider-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/booking-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/collapse-thresholds.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/command-grid-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/confidence-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/daily-operations-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/daily-risk-thresholds.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/event-types.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/execution-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/grid-thresholds.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/grid-zones.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/incident-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/incident-thresholds.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/intelligence-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/kiwi-link-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/mission-control-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/mission-thresholds.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/recovery-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/risk-thresholds.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/runtime-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/runtime-thresholds.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/session-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/stability-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/verification-rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/booking/weekly-carousel.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/archived_inactive/naples.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/amsterdam.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/athens.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/barcelona.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/berlin.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/budapest.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/cgn.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/copenhagen.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/cyprus_ayia_napa.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/dublin.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/dubrovnik.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/flr.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/fmm.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/gdn.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/gran_canaria.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/ham.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/kef.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/krk.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/lisbon.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/london.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/madrid.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/mallorca_palma.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/malta_valletta.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/milan.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/muc.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/opo.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/oslo.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/otp.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/prague.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/psa.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/rome.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/stockholm.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/tsf.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/vce.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/vienna.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/warsaw.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/cafes/wro.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/masterlist.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/risk-matrix.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/scoring_rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/hrc/visit_rules.json",
"ok": true,
"error": null
},
{
"file": "data/project/loops/S26_7d_template.json",
"ok": true,
"error": null
},
{
"file": "data/project/loops/S26_14d_template.json",
"ok": true,
"error": null
},
{
"file": "data/project/network/airport-clusters.json",
"ok": true,
"error": null
},
{
"file": "data/project/network/core-airlines.json",
"ok": true,
"error": null
},
{
"file": "data/project/network/hrc-airports.json",
"ok": true,
"error": null
},
{
"file": "data/project/network/rescue-routes.json",
"ok": true,
"error": null
},
{
"file": "data/project/routes/generated/7d_demo_loop.json",
"ok": true,
"error": null
},
{
"file": "data/project/routes/generated/14d_demo_loop.json",
"ok": true,
"error": null
},
{
"file": "data/project/support/airport-transfers.json",
"ok": true,
"error": null
},
{
"file": "data/project/system/airline-priority.json",
"ok": true,
"error": null
},
{
"file": "data/project/system/airport-index.json",
"ok": true,
"error": null
},
{
"file": "data/project/system/loop-config.json",
"ok": true,
"error": null
},
{
"file": "data/project/weekly/BCN_2026-06-15.json",
"ok": true,
"error": null
},
{
"file": "data/aerodatabox/json/daily/2026-05-18/BCN.json",
"ok": true,
"error": null
},
{
"file": "data/aerodatabox/json/daily/2026-05-18/BER.json",
"ok": true,
"error": null
},
{
"file": "data/aerodatabox/json/daily/2026-05-18/BGY.json",
"ok": true,
"error": null
},
{
"file": "data/aerodatabox/json/daily/2026-05-18/LIS.json",
"ok": true,
"error": null
},
{
"file": "data/aerodatabox/json/daily/2026-05-18/PMI.json",
"ok": true,
"error": null
},
{
"file": "data/state/data_mode.json",
"ok": true,
"error": null
},
{
"file": "data/state/import_state/import_chunk_f8ee370918864a5ce470773cb5e8889e.json",
"ok": true,
"error": null
},
{
"file": "data/state/import_state/import_cron_state.json",
"ok": true,
"error": null
},
{
"file": "data/state/import_state/import_step_22ab03bbce441b4b1fdfac518eb11a25.json",
"ok": true,
"error": null
}
]
},
"project_data_foundation": {
"ok": true,
"items": [
{
"file": "data/project/hrc/masterlist.json",
"status": "OK",
"exists": true,
"empty_allowed": false,
"error": null
},
{
"file": "data/project/hrc/risk-matrix.json",
"status": "OK",
"exists": true,
"empty_allowed": false,
"error": null
},
{
"file": "data/project/hrc/visit_rules.json",
"status": "OK",
"exists": true,
"empty_allowed": false,
"error": null
},
{
"file": "data/project/hrc/scoring_rules.json",
"status": "OK",
"exists": true,
"empty_allowed": false,
"error": null
},
{
"file": "data/project/system/airport-index.json",
"status": "OK",
"exists": true,
"empty_allowed": false,
"error": null
},
{
"file": "data/project/system/airline-priority.json",
"status": "OK",
"exists": true,
"empty_allowed": false,
"error": null
},
{
"file": "data/project/system/loop-config.json",
"status": "OK",
"exists": true,
"empty_allowed": false,
"error": null
},
{
"file": "data/project/network/core-airlines.json",
"status": "OK",
"exists": true,
"empty_allowed": false,
"error": null
},
{
"file": "data/project/network/hrc-airports.json",
"status": "OK",
"exists": true,
"empty_allowed": false,
"error": null
},
{
"file": "data/project/network/airport-clusters.json",
"status": "OK",
"exists": true,
"empty_allowed": false,
"error": null
},
{
"file": "data/project/network/rescue-routes.json",
"status": "OK",
"exists": true,
"empty_allowed": false,
"error": null
},
{
"file": "data/project/support/airport-transfers.json",
"status": "OK",
"exists": true,
"empty_allowed": false,
"error": null
},
{
"file": "data/project/loops/S26_7d_template.json",
"status": "OK",
"exists": true,
"empty_allowed": true,
"error": null
},
{
"file": "data/project/loops/S26_14d_template.json",
"status": "OK",
"exists": true,
"empty_allowed": true,
"error": null
},
{
"file": "data/project/hrc/cafes/*.json",
"status": "OK",
"exists": true,
"json_count": 36,
"empty_allowed": false,
"error": null
}
]
},
"project_data_audit": {
"status": "OK",
"warnings": []
},
"daily_data_status": {
"status": "OK",
"flight_count": 5,
"warnings": []
},
"route_integrity": {
"status": "VALID",
"route": [
"BER",
"PMI",
"BCN",
"LIS",
"BGY",
"BER"
],
"segments": [
{
"route": "BER-PMI",
"status": "VALID",
"flight_number": "FR 226",
"departure_time": "2026-05-18T07:15:00",
"arrival_time": "2026-05-18T10:00:00",
"overnight_needed": false,
"layer": "core"
},
{
"route": "PMI-BCN",
"status": "VALID",
"flight_number": "FR 1342",
"departure_time": "2026-05-18T11:10:00",
"arrival_time": "2026-05-18T12:05:00",
"overnight_needed": false,
"layer": "core"
},
{
"route": "BCN-LIS",
"status": "VALID",
"flight_number": "FR 3078",
"departure_time": "2026-05-18T13:35:00",
"arrival_time": "2026-05-18T14:40:00",
"overnight_needed": false,
"layer": "core"
},
{
"route": "LIS-BGY",
"status": "VALID",
"flight_number": "FR 2089",
"departure_time": "2026-05-18T16:15:00",
"arrival_time": "2026-05-18T19:45:00",
"overnight_needed": false,
"layer": "core"
},
{
"route": "BGY-BER",
"status": "VALID",
"flight_number": "FR 3310",
"departure_time": "2026-05-18T21:00:00",
"arrival_time": "2026-05-18T22:45:00",
"overnight_needed": false,
"layer": "core"
}
],
"overnight_needed": false,
"weak_segments": 0,
"collapse_risk": "low",
"core_rescue_ratio": {
"core": 5,
"rescue": 0
},
"warnings": []
},
"loop_integrity": {
"status": "OK",
"items": [
{
"file": "S26_7d_template.json",
"status": "EMPTY_ALLOWED",
"warnings": []
},
{
"file": "S26_14d_template.json",
"status": "EMPTY_ALLOWED",
"warnings": []
}
],
"warnings": []
},
"daily_route_intelligence": {
"status": "USABLE",
"daily_files_found": 5,
"airports_analyzed": 5,
"strong_airports": 0,
"weak_airports": 1,
"dead_airports": 0,
"report_status": "READY"
},
"loop_generator": {
"status": "STRONG",
"generated_loops": 2,
"airport_density": 38,
"survivability_status": "STRONG",
"fragile_loops": 0,
"reports_available": true,
"expanded_14d_airports_loaded": 14
},
"collapse_intelligence": {
"status": "FRAGILE",
"collapse_score": 44,
"collapse_reports": 5,
"weak_airports": 38,
"dead_windows": 16,
"rescue_dependency": 17,
"fragile_loops": 1
},
"survivability_scoring": {
"reports_available": true,
"loops_scored": 2,
"average_survival_score": 28,
"critical_loops": 1,
"weak_airports": 21,
"emergency_strength_status": "WEAK_EXIT"
},
"recovery_engine": {
"recovery_reports": 5,
"cluster_recovery": 3,
"rescue_escalation": 1,
"overnight_recovery": 2,
"recoverable_loops": 0,
"unrecoverable_loops": 0,
"status": "RECOVERABLE"
},
"rejoin_system": {
"rejoin_reports": 5,
"direct_rejoin_options": 1,
"cluster_rejoin_options": 0,
"day_shift_rejoin": 1,
"loop_continuation": 2,
"no_rejoin_warnings": 2,
"status": "CLUSTER_REJOIN"
},
"emergency_layer": {
"emergency_reports": 5,
"safe_exits": 1,
"cluster_escapes": 3,
"critical_airports": 20,
"homebound_status": "STRONG_HOMEBOUND",
"weak_exits": 6,
"status": "MANAGEABLE_EXIT"
},
"hrc_intelligence": {
"total_cafes": 36,
"cafes_validated": 36,
"active_cafes": 35,
"expansion_14d_cafes": 14,
"invalid_mappings": 0,
"weak_hrcs": 20,
"challenge_eligible_cafes": 16,
"eligible_cafes": 16,
"risky_cafes": 20,
"cluster_dependent_cafes": 4,
"geo_warnings": 2,
"hrc_reports": 6
},
"evidence_system": {
"status": "READY",
"evidence_reports": 5,
"visit_states": 4,
"review_flags": 3,
"verified_placeholders": 1,
"timestamp_validation": 1,
"geo_proof_placeholders": 4
},
"scoring_layer": {
"survivor_score": 618,
"survivor_status": "NETWORK_RUNNER",
"prestige_level": "SURVIVOR",
"survivor_scores": 1,
"prestige_reports": 1,
"unlocked_badges": 7,
"challenge_progress": "EARLY_PROGRESS",
"risk_reward_reports": 1,
"scoring_reports": 6
},
"user_layer": {
"status": "READY",
"survivor_profiles": 1,
"session_states": 1,
"saved_loops": 2,
"local_progress": 4,
"user_reports": 5
},
"access_layer": {
"status": "READY",
"tier": "SURVIVOR",
"premium_active": true,
"active_entitlements": 2,
"unlocked_loops": 2,
"access_reports": 3
},
"booking_foundation": {
"status": "READY",
"carousel_legs": 21,
"expanded_legs": 21,
"booking_blocks": 3,
"start_airport": "BER",
"start_index": 0,
"no_live_booking": true,
"warnings": 0,
"errors": 0
},
"survivor_booking": {
"status": "READY",
"provider": "kiwi",
"mode": "booking_preparation_only",
"total_legs": 21,
"booking_blocks": 3,
"kiwi_links": 3,
"safety_notice": 6
},
"required_files": [
{
"file": "app/bootstrap.php",
"exists": true
},
{
"file": "app/config/app.php",
"exists": true
},
{
"file": "app/core/Data/DataRepository.php",
"exists": true
},
{
"file": "app/core/Support/JsonFile.php",
"exists": true
},
{
"file": "app/core/Booking/BookingService.php",
"exists": true
},
{
"file": "app/core/Dashboard/DashboardService.php",
"exists": true
},
{
"file": "app/core/Analysis/AnalysisService.php",
"exists": true
},
{
"file": "app/core/Companion/CompanionService.php",
"exists": true
},
{
"file": "app/core/Companion/CompanionLocationService.php",
"exists": true
},
{
"file": "app/modules/hrc/HrcService.php",
"exists": true
},
{
"file": "data/demo/airports.demo.json",
"exists": true
},
{
"file": "data/demo/flights.demo.json",
"exists": true
},
{
"file": "data/demo/loops.demo.json",
"exists": true
},
{
"file": "data/demo/companion.demo.json",
"exists": true
},
{
"file": "data/project/system/airline-priority.json",
"exists": true
},
{
"file": "data/project/system/airport-index.json",
"exists": true
},
{
"file": "data/project/system/loop-config.json",
"exists": true
},
{
"file": "data/project/hrc/masterlist.json",
"exists": true
},
{
"file": "data/project/hrc/risk-matrix.json",
"exists": true
},
{
"file": "data/project/hrc/visit_rules.json",
"exists": true
},
{
"file": "data/project/hrc/scoring_rules.json",
"exists": true
},
{
"file": "data/project/network/core-airlines.json",
"exists": true
},
{
"file": "data/project/network/hrc-airports.json",
"exists": true
},
{
"file": "data/project/network/airport-clusters.json",
"exists": true
},
{
"file": "data/project/network/rescue-routes.json",
"exists": true
},
{
"file": "data/project/support/airport-transfers.json",
"exists": true
},
{
"file": "data/project/loops/S26_7d_template.json",
"exists": true
},
{
"file": "data/project/loops/S26_14d_template.json",
"exists": true
},
{
"file": "data/project/access/access-tiers.json",
"exists": true
},
{
"file": "data/project/access/loop-unlocks.json",
"exists": true
},
{
"file": "data/project/access/mock-products.json",
"exists": true
},
{
"file": "data/project/access/mock-entitlements.json",
"exists": true
},
{
"file": "data/project/booking/weekly-carousel.json",
"exists": true
},
{
"file": "data/project/booking/booking-rules.json",
"exists": true
},
{
"file": "data/project/booking/booking-block-rules.json",
"exists": true
},
{
"file": "data/project/booking/kiwi-link-rules.json",
"exists": true
},
{
"file": "data/project/booking/booking-provider-rules.json",
"exists": true
}
],
"services": {
"DataRepository": true,
"BookingService": true,
"DashboardService": true,
"AnalysisService": true,
"CompanionService": true,
"CompanionLocationService": true,
"HrcService": true,
"AuditService": true,
"DailyRouteAnalyzer": true,
"LoopGenerator": true,
"CollapseAnalyzer": true,
"SurvivabilityCalculator": true,
"RecoveryPlanner": true,
"RejoinPlanner": true,
"EmergencyExitPlanner": true,
"HrcIntelligenceRunner": true,
"EvidenceManager": true,
"SurvivorScoreEngine": true,
"SurvivorIdentityManager": true,
"AccessManager": true,
"BookingReadinessValidator": true,
"SurvivorBookingSummaryBuilder": true
},
"warnings": [],
"errors": []
},
"analysis_service": {
"available": true,
"collapse_files": [
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/analysis/collapse/collapse_summer_2026.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/booking/collapse-thresholds.json"
],
"survivability_files": [
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/analysis/season/season_summer_2026_routes.json"
],
"network_status_summary": {
"ok": true,
"summary": {
"stable": 22,
"weakening": 0,
"collapsing": 0,
"severe_collapse": 0,
"dead_route": 0,
"core_collapsed": 0,
"rescue_only": 0
},
"segments": [
{
"route": "BCN-AMS",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-ARN",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-ATH",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-BER",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-BGY",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-BUD",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-CIA",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-CPH",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-DBV",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-DUB",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-FCO",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-LCA",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-LIS",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-LPA",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-MAD",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-MLA",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-OSL",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-PMI",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-PRG",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-STN",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-VIE",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
},
{
"route": "BCN-WAW",
"status": "STABLE",
"signal": "green",
"message": "Segment aktuell stabil."
}
],
"critical_warnings": [],
"collapse_files": [
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/analysis/collapse/collapse_summer_2026.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/booking/collapse-thresholds.json"
],
"survivability_files": [
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/analysis/season/season_summer_2026_routes.json"
],
"errors": []
}
},
"booking_service": {
"available": true,
"loop_types": [
{
"id": "7d",
"label": "7 Tage"
},
{
"id": "14d",
"label": "14 Tage"
}
],
"start_airport_count": 22,
"loop_template_count": 2,
"weekly_files": [
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/weekly/BCN_2026-06-15.json"
],
"availability_files": []
},
"dashboard_service": {
"available": true,
"default_ok": true,
"default_loop_type": "7d",
"default_start_airport": "AMS",
"default_start_date": "2026-05-17",
"loop_days": 7,
"found_loop_data": 2
},
"dashboard_default_state": {
"ok": true,
"data_mode": "demo",
"loop_type": "7d",
"start_airport": "AMS",
"start_date": "2026-05-17",
"current_day": {
"day": 1,
"date": "2026-05-17",
"from": "AMS",
"to": "BCN",
"airline": "Ryanair",
"flight_number": "FR-DEMO1",
"departure": "07:00",
"arrival": "09:35",
"hrc_target": "Hard Rock Cafe Barcelona",
"notes": [
"Backpack empfohlen",
"Keine Gepaeckaufgabe"
],
"status": "today",
"status_label": "Heute",
"signal": "green",
"segment_status": "STABLE",
"segment_signal": "green",
"segment_message": "Segment aktuell stabil."
},
"days": [
{
"day": 1,
"date": "2026-05-17",
"from": "AMS",
"to": "BCN",
"airline": "Ryanair",
"flight_number": "FR-DEMO1",
"departure": "07:00",
"arrival": "09:35",
"hrc_target": "Hard Rock Cafe Barcelona",
"notes": [
"Backpack empfohlen",
"Keine Gepaeckaufgabe"
],
"status": "today",
"status_label": "Heute",
"signal": "green",
"segment_status": "STABLE",
"segment_signal": "green",
"segment_message": "Segment aktuell stabil."
},
{
"day": 2,
"date": "2026-05-18",
"from": "BCN",
"to": "BCN",
"airline": "Ryanair",
"flight_number": "FR-DEMO1",
"departure": "07:00",
"arrival": "09:35",
"hrc_target": "Hard Rock Cafe Barcelona",
"notes": [
"Backpack empfohlen",
"Keine Gepaeckaufgabe"
],
"status": "upcoming",
"status_label": "Kommend",
"signal": "green",
"segment_status": "STABLE",
"segment_signal": "green",
"segment_message": "Segment aktuell stabil."
},
{
"day": 3,
"date": "2026-05-19",
"from": "BCN",
"to": "BER",
"airline": "Ryanair",
"flight_number": "FR-DEMO1",
"departure": "07:00",
"arrival": "09:35",
"hrc_target": "Hard Rock Cafe Berlin",
"notes": [
"Backpack empfohlen",
"Keine Gepaeckaufgabe"
],
"status": "upcoming",
"status_label": "Kommend",
"signal": "green",
"segment_status": "STABLE",
"segment_signal": "green",
"segment_message": "Segment aktuell stabil."
},
{
"day": 4,
"date": "2026-05-20",
"from": "BER",
"to": "BCN",
"airline": "Ryanair",
"flight_number": "FR-DEMO1",
"departure": "07:00",
"arrival": "09:35",
"hrc_target": "Hard Rock Cafe Barcelona",
"notes": [
"Backpack empfohlen",
"Keine Gepaeckaufgabe"
],
"status": "upcoming",
"status_label": "Kommend",
"signal": "green",
"segment_status": "STABLE",
"segment_signal": "green",
"segment_message": "Segment aktuell stabil."
},
{
"day": 5,
"date": "2026-05-21",
"from": "BCN",
"to": "BUD",
"airline": "Ryanair",
"flight_number": "FR-DEMO1",
"departure": "07:00",
"arrival": "09:35",
"hrc_target": "Hard Rock Cafe Budapest",
"notes": [
"Backpack empfohlen",
"Keine Gepaeckaufgabe"
],
"status": "upcoming",
"status_label": "Kommend",
"signal": "green",
"segment_status": "STABLE",
"segment_signal": "green",
"segment_message": "Segment aktuell stabil."
},
{
"day": 6,
"date": "2026-05-22",
"from": "BUD",
"to": "BCN",
"airline": "Ryanair",
"flight_number": "FR-DEMO1",
"departure": "07:00",
"arrival": "09:35",
"hrc_target": "Hard Rock Cafe Barcelona",
"notes": [
"Backpack empfohlen",
"Keine Gepaeckaufgabe"
],
"status": "upcoming",
"status_label": "Kommend",
"signal": "green",
"segment_status": "STABLE",
"segment_signal": "green",
"segment_message": "Segment aktuell stabil."
},
{
"day": 7,
"date": "2026-05-23",
"from": "BCN",
"to": "CPH",
"airline": "Ryanair",
"flight_number": "FR-DEMO1",
"departure": "07:00",
"arrival": "09:35",
"hrc_target": "Hard Rock Cafe Copenhagen",
"notes": [
"Backpack empfohlen",
"Keine Gepaeckaufgabe"
],
"status": "upcoming",
"status_label": "Kommend",
"signal": "green",
"segment_status": "STABLE",
"segment_signal": "green",
"segment_message": "Segment aktuell stabil."
}
],
"summary": {
"total_days": 7,
"completed_days": 0,
"remaining_days": 7,
"next_airport": "BCN"
},
"network_status": {
"stable": 22,
"weakening": 0,
"collapsing": 0,
"severe_collapse": 0,
"dead_route": 0,
"core_collapsed": 0,
"rescue_only": 0
},
"network_signal": "green",
"warnings": []
},
"companion_service": {
"available": true,
"daily_ok": true,
"critical_time_count": 2,
"recovery_status": "standby",
"rejoin_status": "possible",
"emergency_status": "standby",
"warning_level": "yellow",
"accommodation_count": 3,
"club_count": 2,
"party_window_level": "yellow",
"taxi_hint_level": "yellow"
},
"companion_daily_state": {
"ok": true,
"data_mode": "demo",
"day": {
"day": 1,
"date": "2026-05-17",
"from": "AMS",
"to": "BCN",
"airline": "Ryanair",
"flight_number": "FR-DEMO1",
"departure": "07:00",
"arrival": "09:35",
"hrc_target": "Hard Rock Cafe Barcelona",
"notes": [
"Backpack empfohlen",
"Keine Gepaeckaufgabe"
],
"status": "today",
"status_label": "Heute",
"signal": "green",
"segment_status": "STABLE",
"segment_signal": "green",
"segment_message": "Segment aktuell stabil."
},
"survivor_message": "Heute beginnt dein Survivor Loop.",
"critical_times": [
{
"time": "04:50",
"label": "Airport Transfer empfohlen",
"level": "yellow"
},
{
"time": "06:15",
"label": "Spaetestens am Airport sein",
"level": "yellow"
}
],
"airport_warning": {
"level": "yellow",
"message": "Frueher Morgenflug. Wenig Puffer einplanen."
},
"recovery": {
"status": "standby",
"message": "Recovery aktuell nicht noetig."
},
"rejoin": {
"status": "possible",
"message": "Rejoin spaeter ueber BCN moeglich."
},
"emergency": {
"status": "standby",
"message": "Emergency Exit aktuell nicht empfohlen."
},
"practical_assist": {
"city": "Barcelona",
"accommodations": [
{
"name": "Placa Catalunya Hostel",
"type": "hostel",
"transit_note": "Nahe Aerobus und Metro.",
"area": "Placa Catalunya"
},
{
"name": "Eixample Budget Hotel",
"type": "hotel",
"transit_note": "Gute Metro-Anbindung, kurzer Weg zum HRC.",
"area": "Eixample"
},
{
"name": "Airport Bus Corridor Rooms",
"type": "hostel",
"transit_note": "Praktisch fuer fruehen Aerobus.",
"area": "Gran Via"
}
],
"distance_chain": {
"airport_to_hrc": "Airport -> HRC ca. 15 km.",
"hrc_to_accommodation": "Zentralen OPNV-Knoten nahe HRC bevorzugen.",
"accommodation_to_airport": "Unterkunft -> Airport Taxi ca. 25-40 Minuten."
},
"transit_note": "airport_bus Aerobús A1: Unterkunft nahe dieser Achse bevorzugen.",
"clubs": [
{
"name": "Razzmatazz Area",
"area": "Poblenou",
"note": "Rueckweg vorab klaeren."
},
{
"name": "Gothic Quarter Bars",
"area": "Barri Gotic",
"note": "Besser kurzes Barfenster als langer Clubabend."
}
],
"party_window": {
"start": "20:30",
"end": "22:30",
"level": "yellow",
"message": "Frueher Morgenflug. Partyfenster kurz halten."
},
"taxi_hint": {
"level": "yellow",
"message": "Bei sehr fruehem Flug Taxi oder Aerobus-Zeitfenster vorher pruefen."
}
},
"backpack_notice": {
"enabled": true,
"message": "Backpack empfohlen. Keine Gepaeckaufgabe."
}
},
"companion_location_state": {
"ok": true,
"data_mode": "demo",
"day": {
"departure": "07:00",
"arrival": "09:35",
"from": "AMS",
"to": "BCN",
"hrc_target": "Hard Rock Cafe Barcelona",
"segment_status": "STABLE"
},
"city": "Barcelona",
"sleep_zones": [
{
"name": "Placa Catalunya Hostel",
"type": "hostel",
"transport_note": "Nahe Aerobus und Metro.",
"distance_flow": {
"airport_to_hrc": "35 min",
"hrc_to_sleep": "10-20 min, Lage vor Ort pruefen",
"sleep_to_airport": "25-40 min Taxi"
},
"signal": "green"
},
{
"name": "Eixample Budget Hotel",
"type": "hotel",
"transport_note": "Gute Metro-Anbindung, kurzer Weg zum HRC.",
"distance_flow": {
"airport_to_hrc": "35 min",
"hrc_to_sleep": "10-20 min, Lage vor Ort pruefen",
"sleep_to_airport": "25-40 min Taxi"
},
"signal": "green"
},
{
"name": "Airport Bus Corridor Rooms",
"type": "hostel",
"transport_note": "Praktisch fuer fruehen Aerobus.",
"distance_flow": {
"airport_to_hrc": "35 min",
"hrc_to_sleep": "10-20 min, Lage vor Ort pruefen",
"sleep_to_airport": "25-40 min Taxi"
},
"signal": "green"
}
],
"clubs": [
{
"name": "Razzmatazz Area",
"zone": "Poblenou",
"party_window": {
"recommended_until": "00:30"
},
"warning": "Frueher Rueckweg empfohlen."
},
{
"name": "Gothic Quarter Bars",
"zone": "Barri Gotic",
"party_window": {
"recommended_until": "00:30"
},
"warning": "Frueher Rueckweg empfohlen."
}
],
"transport": {
"public_transport_possible": true,
"night_bus_possible": true,
"taxi_recommended": true,
"notes": [
"airport_bus Aerobús A1 (35 min)",
"airport_bus Aerobús A2 (35 min)",
"Bei sehr fruehem Flug Taxi oder Aerobus-Zeitfenster vorher pruefen."
]
},
"early_flight_warning": {
"enabled": true,
"level": "yellow",
"message": "Abflug 07:00. Airport-Transfer spaetestens 04:50 planen."
},
"survivor_advice": [
"Backpack spart Zeit.",
"Maximal bis 00:30 feiern.",
"Frueher Morgenflug beachten.",
"Wenig Schlaf realistisch einplanen.",
"Taxi-Backup vor dem Schlafen klaeren."
]
},
"hrc_service": {
"available": true,
"cafe_count": 37,
"masterlist_found": true,
"risk_matrix_found": true,
"hrc_files": [
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/archived_inactive/naples.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/amsterdam.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/athens.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/barcelona.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/berlin.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/budapest.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/cgn.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/copenhagen.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/cyprus_ayia_napa.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/dublin.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/dubrovnik.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/flr.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/fmm.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/gdn.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/gran_canaria.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/ham.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/kef.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/krk.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/lisbon.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/london.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/madrid.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/mallorca_palma.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/malta_valletta.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/milan.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/muc.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/opo.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/oslo.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/otp.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/prague.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/psa.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/rome.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/stockholm.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/tsf.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/vce.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/vienna.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/warsaw.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/wro.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/masterlist.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/risk-matrix.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/scoring_rules.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/visit_rules.json"
]
},
"today_hrc_target": {
"ok": true,
"city": "Barcelona",
"cafe": {
"name": "Hard Rock Cafe Barcelona",
"slug": "barcelona",
"country": "Spain",
"status": "OPEN",
"risk_level": "LOW",
"risk_signal": "green",
"risk_explanation": "Normale Challenge-Bedingungen.",
"opening_hours": "approx. 11:00-01:00/02:00",
"rock_shop": {
"available": true,
"note": "Rock Shop vorhanden"
},
"address": "Plaça de Catalunya 21, 08002 Barcelona, Spain",
"notes": [
"excellent 24h airport bus"
]
},
"visit_rules": [
"Selfie empfohlen",
"Rock Shop Besuch empfohlen",
"Kassenbeleg optional"
],
"evidence_placeholder": {
"enabled": true,
"message": "Evidence Upload folgt in spaeterem Segment."
}
},
"hrc_risk_level": "LOW",
"recognized_hrc_files": [
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/archived_inactive/naples.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/amsterdam.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/athens.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/barcelona.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/berlin.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/budapest.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/cgn.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/copenhagen.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/cyprus_ayia_napa.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/dublin.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/dubrovnik.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/flr.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/fmm.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/gdn.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/gran_canaria.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/ham.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/kef.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/krk.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/lisbon.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/london.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/madrid.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/mallorca_palma.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/malta_valletta.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/milan.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/muc.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/opo.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/oslo.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/otp.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/prague.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/psa.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/rome.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/stockholm.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/tsf.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/vce.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/vienna.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/warsaw.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/cafes/wro.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/masterlist.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/risk-matrix.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/scoring_rules.json",
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/hrc/visit_rules.json"
],
"recognized_recovery_hints": {
"status": "standby",
"message": "Recovery aktuell nicht noetig."
},
"recognized_warning_level": "yellow",
"companion_day_assist": {
"city": "Barcelona",
"accommodations": [
{
"name": "Placa Catalunya Hostel",
"type": "hostel",
"transit_note": "Nahe Aerobus und Metro.",
"area": "Placa Catalunya"
},
{
"name": "Eixample Budget Hotel",
"type": "hotel",
"transit_note": "Gute Metro-Anbindung, kurzer Weg zum HRC.",
"area": "Eixample"
},
{
"name": "Airport Bus Corridor Rooms",
"type": "hostel",
"transit_note": "Praktisch fuer fruehen Aerobus.",
"area": "Gran Via"
}
],
"distance_chain": {
"airport_to_hrc": "Airport -> HRC ca. 15 km.",
"hrc_to_accommodation": "Zentralen OPNV-Knoten nahe HRC bevorzugen.",
"accommodation_to_airport": "Unterkunft -> Airport Taxi ca. 25-40 Minuten."
},
"transit_note": "airport_bus Aerobús A1: Unterkunft nahe dieser Achse bevorzugen.",
"clubs": [
{
"name": "Razzmatazz Area",
"area": "Poblenou",
"note": "Rueckweg vorab klaeren."
},
{
"name": "Gothic Quarter Bars",
"area": "Barri Gotic",
"note": "Besser kurzes Barfenster als langer Clubabend."
}
],
"party_window": {
"start": "20:30",
"end": "22:30",
"level": "yellow",
"message": "Frueher Morgenflug. Partyfenster kurz halten."
},
"taxi_hint": {
"level": "yellow",
"message": "Bei sehr fruehem Flug Taxi oder Aerobus-Zeitfenster vorher pruefen."
}
},
"party_window": {
"start": "20:30",
"end": "22:30",
"level": "yellow",
"message": "Frueher Morgenflug. Partyfenster kurz halten."
},
"taxi_hint": {
"level": "yellow",
"message": "Bei sehr fruehem Flug Taxi oder Aerobus-Zeitfenster vorher pruefen."
},
"sleep_zone_data": [
{
"name": "Placa Catalunya Hostel",
"type": "hostel",
"transport_note": "Nahe Aerobus und Metro.",
"distance_flow": {
"airport_to_hrc": "35 min",
"hrc_to_sleep": "10-20 min, Lage vor Ort pruefen",
"sleep_to_airport": "25-40 min Taxi"
},
"signal": "green"
},
{
"name": "Eixample Budget Hotel",
"type": "hotel",
"transport_note": "Gute Metro-Anbindung, kurzer Weg zum HRC.",
"distance_flow": {
"airport_to_hrc": "35 min",
"hrc_to_sleep": "10-20 min, Lage vor Ort pruefen",
"sleep_to_airport": "25-40 min Taxi"
},
"signal": "green"
},
{
"name": "Airport Bus Corridor Rooms",
"type": "hostel",
"transport_note": "Praktisch fuer fruehen Aerobus.",
"distance_flow": {
"airport_to_hrc": "35 min",
"hrc_to_sleep": "10-20 min, Lage vor Ort pruefen",
"sleep_to_airport": "25-40 min Taxi"
},
"signal": "green"
}
],
"club_window_data": [
{
"name": "Razzmatazz Area",
"zone": "Poblenou",
"party_window": {
"recommended_until": "00:30"
},
"warning": "Frueher Rueckweg empfohlen."
},
{
"name": "Gothic Quarter Bars",
"zone": "Barri Gotic",
"party_window": {
"recommended_until": "00:30"
},
"warning": "Frueher Rueckweg empfohlen."
}
],
"transport_hints": {
"public_transport_possible": true,
"night_bus_possible": true,
"taxi_recommended": true,
"notes": [
"airport_bus Aerobús A1 (35 min)",
"airport_bus Aerobús A2 (35 min)",
"Bei sehr fruehem Flug Taxi oder Aerobus-Zeitfenster vorher pruefen."
]
},
"found_loop_data": [
{
"source": "project_weekly",
"path": "/home/u404456982/domains/test.flyloina.com/public_html/data/project/weekly/BCN_2026-06-15.json",
"meta": {
"airport": "BCN",
"start_date": "2026-06-15",
"end_date": "2026-06-21",
"generated_at": "2026-05-10T07:52:11+00:00",
"source": "HRC import_week.php"
},
"days_available": 7,
"flights_available": 872
},
{
"source": "demo_loop",
"meta": {
"type": "7d",
"season": "S26",
"start_airport": "BER",
"start_date": "2026-06-01",
"days": [
{
"day": 1,
"city": "Barcelona",
"airport": "BCN",
"hrc": "Barcelona"
}
]
},
"days_available": 1
}
],
"recognized_loop_files": [
"/home/u404456982/domains/test.flyloina.com/public_html/data/project/weekly/BCN_2026-06-15.json"
],
"recognized_availability_files": [],
"system_check_short": {
"ok": true,
"json_total": 106,
"json_invalid": 0,
"data_mode_from_state": "demo",
"path_count": 46
}
}