{
    "generated_at": "2026-03-30T16:00:37+03:00",
    "label": "pre-final-mysql-cutover",
    "base_database_config": {
        "driver": "mysqli",
        "host": "localhost",
        "database": "cabnet_toursv6",
        "username": "cabnet_toursv6",
        "password": "!TVHcGT{I4S9ECTm",
        "charset": "utf8mb4",
        "collation": "utf8mb4_unicode_ci",
        "port": 3306,
        "strict": true,
        "enabled": true,
        "storage_mode": "hybrid",
        "allow_json_fallback": true,
        "module_modes": {
            "settings": "mysql",
            "services": "mysql",
            "destinations": "mysql",
            "testimonials": "mysql",
            "media": "hybrid",
            "users": "hybrid",
            "booking_requests": "hybrid",
            "plan_requests": "hybrid",
            "inquiries": "hybrid"
        },
        "module_json_fallback": {
            "settings": false,
            "services": false,
            "destinations": false,
            "testimonials": false,
            "media": true,
            "users": true,
            "booking_requests": true,
            "plan_requests": true,
            "inquiries": true
        },
        "status_tables": [
            "settings",
            "services",
            "destinations",
            "testimonials",
            "media",
            "users",
            "booking_requests",
            "plan_requests",
            "inquiries"
        ]
    },
    "effective_database_config": {
        "driver": "mysqli",
        "host": "localhost",
        "database": "cabnet_toursv6",
        "username": "cabnet_toursv6",
        "password": "!TVHcGT{I4S9ECTm",
        "charset": "utf8mb4",
        "collation": "utf8mb4_unicode_ci",
        "port": 3306,
        "strict": true,
        "enabled": true,
        "storage_mode": "hybrid",
        "allow_json_fallback": true,
        "module_modes": {
            "settings": "mysql",
            "services": "mysql",
            "destinations": "mysql",
            "testimonials": "mysql",
            "media": "hybrid",
            "users": "hybrid",
            "booking_requests": "hybrid",
            "plan_requests": "hybrid",
            "inquiries": "hybrid"
        },
        "module_json_fallback": {
            "settings": false,
            "services": false,
            "destinations": false,
            "testimonials": false,
            "media": true,
            "users": true,
            "booking_requests": true,
            "plan_requests": true,
            "inquiries": true
        },
        "status_tables": [
            "settings",
            "services",
            "destinations",
            "testimonials",
            "media",
            "users",
            "booking_requests",
            "plan_requests",
            "inquiries"
        ]
    },
    "runtime_config_status": {
        "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/runtime_config.json",
        "exists": true,
        "updated_at": null,
        "runtime": {
            "storage_mode_override": null,
            "allow_json_fallback_override": null,
            "module_modes": [],
            "module_json_fallback": [],
            "intended_live_posture": null,
            "pinned_at": null,
            "last_action": null,
            "operations_locked_at": null,
            "operations_lock_reason": null,
            "maintenance_mode": false,
            "maintenance_reason": null,
            "maintenance_updated_at": null,
            "last_release_refresh_at": null,
            "updated_at": null
        },
        "effective": {
            "storage_mode": "hybrid",
            "allow_json_fallback": true,
            "module_modes": {
                "settings": "mysql",
                "services": "mysql",
                "destinations": "mysql",
                "testimonials": "mysql",
                "media": "hybrid",
                "users": "hybrid",
                "booking_requests": "hybrid",
                "plan_requests": "hybrid",
                "inquiries": "hybrid"
            },
            "module_json_fallback": {
                "settings": false,
                "services": false,
                "destinations": false,
                "testimonials": false,
                "media": true,
                "users": true,
                "booking_requests": true,
                "plan_requests": true,
                "inquiries": true
            },
            "intended_live_posture": "hybrid",
            "is_pinned": false,
            "is_operations_locked": false,
            "operations_lock_reason": null,
            "maintenance_mode": false,
            "maintenance_reason": null,
            "maintenance_updated_at": null,
            "last_release_refresh_at": null
        }
    },
    "database_status": {
        "enabled": true,
        "storage_mode": "hybrid",
        "allow_json_fallback": true,
        "connected": true,
        "message": "MySQL connection is available. Modules can be migrated one by one while keeping JSON fallback available.",
        "database": "cabnet_toursv6",
        "host": "localhost",
        "tables": {
            "settings": {
                "exists": true,
                "count": 12
            },
            "services": {
                "exists": true,
                "count": 4
            },
            "destinations": {
                "exists": true,
                "count": 3
            },
            "testimonials": {
                "exists": true,
                "count": 3
            },
            "media": {
                "exists": true,
                "count": 0
            },
            "users": {
                "exists": true,
                "count": 1
            },
            "booking_requests": {
                "exists": true,
                "count": 0
            },
            "plan_requests": {
                "exists": true,
                "count": 0
            },
            "inquiries": {
                "exists": true,
                "count": 0
            }
        }
    },
    "module_cutover": {
        "generated_at": "2026-03-30T16:00:37+03:00",
        "connected": true,
        "summary": {
            "total": 6,
            "mysql": 4,
            "hybrid": 2,
            "json": 0,
            "ready": 6,
            "parity_ok": 6
        },
        "modules": [
            {
                "module": "settings",
                "label": "Settings",
                "table": "settings",
                "mode": "mysql",
                "json_fallback": false,
                "connected": true,
                "table_exists": true,
                "json_count": 12,
                "sql_count": 12,
                "active_source": "mysql",
                "ready": true,
                "parity": true,
                "note": "Module is running in full MySQL mode."
            },
            {
                "module": "services",
                "label": "Services",
                "table": "services",
                "mode": "mysql",
                "json_fallback": false,
                "connected": true,
                "table_exists": true,
                "json_count": 4,
                "sql_count": 4,
                "active_source": "mysql",
                "ready": true,
                "parity": true,
                "note": "Module is running in full MySQL mode."
            },
            {
                "module": "destinations",
                "label": "Destinations",
                "table": "destinations",
                "mode": "mysql",
                "json_fallback": false,
                "connected": true,
                "table_exists": true,
                "json_count": 3,
                "sql_count": 3,
                "active_source": "mysql",
                "ready": true,
                "parity": true,
                "note": "Module is running in full MySQL mode."
            },
            {
                "module": "testimonials",
                "label": "Testimonials",
                "table": "testimonials",
                "mode": "mysql",
                "json_fallback": false,
                "connected": true,
                "table_exists": true,
                "json_count": 3,
                "sql_count": 3,
                "active_source": "mysql",
                "ready": true,
                "parity": true,
                "note": "Module is running in full MySQL mode."
            },
            {
                "module": "media",
                "label": "Media",
                "table": "media",
                "mode": "hybrid",
                "json_fallback": true,
                "connected": true,
                "table_exists": true,
                "json_count": 0,
                "sql_count": 0,
                "active_source": "mysql-empty",
                "ready": true,
                "parity": true,
                "note": "Counts match. This module is ready to switch to mysql mode."
            },
            {
                "module": "users",
                "label": "Users",
                "table": "users",
                "mode": "hybrid",
                "json_fallback": true,
                "connected": true,
                "table_exists": true,
                "json_count": 1,
                "sql_count": 1,
                "active_source": "mysql-preferred",
                "ready": true,
                "parity": true,
                "note": "Counts match. This module is ready to switch to mysql mode."
            }
        ]
    },
    "full_mysql_readiness": {
        "generated_at": "2026-03-30T16:00:37+03:00",
        "database": {
            "enabled": true,
            "storage_mode": "hybrid",
            "allow_json_fallback": true,
            "connected": true,
            "message": "MySQL connection is available. Modules can be migrated one by one while keeping JSON fallback available.",
            "database": "cabnet_toursv6",
            "host": "localhost",
            "tables": {
                "settings": {
                    "exists": true,
                    "count": 12
                },
                "services": {
                    "exists": true,
                    "count": 4
                },
                "destinations": {
                    "exists": true,
                    "count": 3
                },
                "testimonials": {
                    "exists": true,
                    "count": 3
                },
                "media": {
                    "exists": true,
                    "count": 0
                },
                "users": {
                    "exists": true,
                    "count": 1
                },
                "booking_requests": {
                    "exists": true,
                    "count": 0
                },
                "plan_requests": {
                    "exists": true,
                    "count": 0
                },
                "inquiries": {
                    "exists": true,
                    "count": 0
                }
            }
        },
        "module_cutover": {
            "generated_at": "2026-03-30T16:00:37+03:00",
            "connected": true,
            "summary": {
                "total": 6,
                "mysql": 4,
                "hybrid": 2,
                "json": 0,
                "ready": 6,
                "parity_ok": 6
            },
            "modules": [
                {
                    "module": "settings",
                    "label": "Settings",
                    "table": "settings",
                    "mode": "mysql",
                    "json_fallback": false,
                    "connected": true,
                    "table_exists": true,
                    "json_count": 12,
                    "sql_count": 12,
                    "active_source": "mysql",
                    "ready": true,
                    "parity": true,
                    "note": "Module is running in full MySQL mode."
                },
                {
                    "module": "services",
                    "label": "Services",
                    "table": "services",
                    "mode": "mysql",
                    "json_fallback": false,
                    "connected": true,
                    "table_exists": true,
                    "json_count": 4,
                    "sql_count": 4,
                    "active_source": "mysql",
                    "ready": true,
                    "parity": true,
                    "note": "Module is running in full MySQL mode."
                },
                {
                    "module": "destinations",
                    "label": "Destinations",
                    "table": "destinations",
                    "mode": "mysql",
                    "json_fallback": false,
                    "connected": true,
                    "table_exists": true,
                    "json_count": 3,
                    "sql_count": 3,
                    "active_source": "mysql",
                    "ready": true,
                    "parity": true,
                    "note": "Module is running in full MySQL mode."
                },
                {
                    "module": "testimonials",
                    "label": "Testimonials",
                    "table": "testimonials",
                    "mode": "mysql",
                    "json_fallback": false,
                    "connected": true,
                    "table_exists": true,
                    "json_count": 3,
                    "sql_count": 3,
                    "active_source": "mysql",
                    "ready": true,
                    "parity": true,
                    "note": "Module is running in full MySQL mode."
                },
                {
                    "module": "media",
                    "label": "Media",
                    "table": "media",
                    "mode": "hybrid",
                    "json_fallback": true,
                    "connected": true,
                    "table_exists": true,
                    "json_count": 0,
                    "sql_count": 0,
                    "active_source": "mysql-empty",
                    "ready": true,
                    "parity": true,
                    "note": "Counts match. This module is ready to switch to mysql mode."
                },
                {
                    "module": "users",
                    "label": "Users",
                    "table": "users",
                    "mode": "hybrid",
                    "json_fallback": true,
                    "connected": true,
                    "table_exists": true,
                    "json_count": 1,
                    "sql_count": 1,
                    "active_source": "mysql-preferred",
                    "ready": true,
                    "parity": true,
                    "note": "Counts match. This module is ready to switch to mysql mode."
                }
            ]
        },
        "root_admin": {
            "email": "ipwebgroup@gmail.com",
            "ready": true,
            "record": {
                "id": 1,
                "full_name": "Root Admin",
                "email": "ipwebgroup@gmail.com",
                "password_hash": "$2y$12$RJeUc9RXx/8fQrOdQ.NF8.fq65b/iBV/oWgduLFHHOAMOZPyke4Wi",
                "role": "admin",
                "is_approved": true,
                "created_at": "2026-03-30T00:00:00+03:00",
                "updated_at": "2026-03-30T00:00:00+03:00"
            }
        },
        "queue_readiness": [
            {
                "table": "booking_requests",
                "exists": true,
                "count": 0
            },
            {
                "table": "plan_requests",
                "exists": true,
                "count": 0
            },
            {
                "table": "inquiries",
                "exists": true,
                "count": 0
            }
        ],
        "summary": {
            "missing_tables": [],
            "ready_modules": 6,
            "pending_modules": 0,
            "queues_ready": true,
            "root_admin_ready": true,
            "full_mysql_ready": true
        },
        "next_steps": [
            "Only switch the remaining module modes to `mysql` after this report shows full readiness."
        ]
    },
    "root_admin": {
        "email": "ipwebgroup@gmail.com",
        "present": true,
        "role": "admin",
        "is_approved": true
    },
    "storage_data_files": [
        {
            "file": "booking_requests.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/booking_requests.json",
            "size_bytes": 3,
            "sha1": "cd0d4cc32346750408f7d4f5e78ec9a6e5b79a0d",
            "modified_at": "2026-03-29T20:25:18+03:00"
        },
        {
            "file": "contact_inquiries.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/contact_inquiries.json",
            "size_bytes": 3,
            "sha1": "cd0d4cc32346750408f7d4f5e78ec9a6e5b79a0d",
            "modified_at": "2026-03-29T20:25:18+03:00"
        },
        {
            "file": "destinations.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/destinations.json",
            "size_bytes": 2225,
            "sha1": "d45a95daae20d201fb8a4498bd61d3e222357275",
            "modified_at": "2026-03-30T00:18:42+03:00"
        },
        {
            "file": "media.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/media.json",
            "size_bytes": 3,
            "sha1": "cd0d4cc32346750408f7d4f5e78ec9a6e5b79a0d",
            "modified_at": "2026-03-30T00:27:54+03:00"
        },
        {
            "file": "operation_receipts.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/operation_receipts.json",
            "size_bytes": 2874,
            "sha1": "25e9b71f16abf46d5b14cf9d9482b04ac9a5f24a",
            "modified_at": "2026-03-30T15:14:09+03:00"
        },
        {
            "file": "operations_action_log.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/operations_action_log.json",
            "size_bytes": 2006,
            "sha1": "af0af55d68341a4df0e27a4f184f3b2fafb562d0",
            "modified_at": "2026-03-30T15:14:09+03:00"
        },
        {
            "file": "plan_requests.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/plan_requests.json",
            "size_bytes": 3,
            "sha1": "cd0d4cc32346750408f7d4f5e78ec9a6e5b79a0d",
            "modified_at": "2026-03-29T20:25:18+03:00"
        },
        {
            "file": "restore_approval_state.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/restore_approval_state.json",
            "size_bytes": 69,
            "sha1": "fedb96569ce9d68e7b7b70c679aa79bf7f509cf8",
            "modified_at": "2026-03-30T16:16:48+03:00"
        },
        {
            "file": "restore_execution_history.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/restore_execution_history.json",
            "size_bytes": 323,
            "sha1": "65afa2b32da4f8829ca1677caa6a0e6db6988fcc",
            "modified_at": "2026-03-30T15:14:09+03:00"
        },
        {
            "file": "runtime_config.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/runtime_config.json",
            "size_bytes": 150,
            "sha1": "d1c3f66fee858a7c9c148ac77a4afa1b3640cc7a",
            "modified_at": "2026-03-30T01:58:44+03:00"
        },
        {
            "file": "services.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/services.json",
            "size_bytes": 3432,
            "sha1": "b5b8dc9101a0097af532ba5c5998401f5b3a28d5",
            "modified_at": "2026-03-30T00:18:42+03:00"
        },
        {
            "file": "settings.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/settings.json",
            "size_bytes": 834,
            "sha1": "829a96f311af7a5d7b1b66bacaf049eefd89f798",
            "modified_at": "2026-03-30T00:27:54+03:00"
        },
        {
            "file": "testimonials.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/testimonials.json",
            "size_bytes": 1379,
            "sha1": "74ca147058e7cc2c116b531624f7c7d6c552e4ae",
            "modified_at": "2026-03-30T00:39:10+03:00"
        },
        {
            "file": "users.json",
            "path": "/home/cabnet/public_html/tours.cabnet.app/storage/data/users.json",
            "size_bytes": 352,
            "sha1": "9e9d5eb21c675d9b33398291d33722f80f96636c",
            "modified_at": "2026-03-30T01:24:10+03:00"
        }
    ],
    "paths": {
        "base_config": "/home/cabnet/public_html/tours.cabnet.app/app/config/database.php",
        "runtime_config": "/home/cabnet/public_html/tours.cabnet.app/storage/data/runtime_config.json",
        "snapshot_dir": "/home/cabnet/public_html/tours.cabnet.app/specs/deploy/release-v3.0.0/snapshots",
        "rollback_dir": "/home/cabnet/public_html/tours.cabnet.app/specs/deploy/rollback"
    }
}
