-- https://www.phpmyadmin.net/
--

START TRANSACTION;



--
-- Database: `kevronapartments`
--

-- --------------------------------------------------------

--
-- Table structure for table `abandoned_bookings`
--

CREATE TABLE `abandoned_bookings` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `session_id` varchar(255) DEFAULT NULL,
  `apartment_type_id` bigint(20) UNSIGNED DEFAULT NULL,
  `check_in_date` date DEFAULT NULL,
  `check_out_date` date DEFAULT NULL,
  `guest_name` varchar(255) DEFAULT NULL,
  `guest_email` varchar(255) DEFAULT NULL,
  `guest_phone` varchar(255) DEFAULT NULL,
  `last_completed_step` int(11) NOT NULL DEFAULT 1,
  `payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`payload`)),
  `recovered` tinyint(1) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `about_media`
--

CREATE TABLE `about_media` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `section_key` varchar(255) NOT NULL,
  `media_asset_id` bigint(20) UNSIGNED DEFAULT NULL,
  `file_path` varchar(255) DEFAULT NULL,
  `alt_text` varchar(255) DEFAULT NULL,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `about_sections`
--

CREATE TABLE `about_sections` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `section_key` varchar(255) NOT NULL,
  `title` varchar(255) NOT NULL,
  `subtitle` varchar(255) DEFAULT NULL,
  `body` text DEFAULT NULL,
  `cta_label` varchar(255) DEFAULT NULL,
  `cta_url` varchar(255) DEFAULT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `about_sections`
--

INSERT INTO `about_sections` (`id`, `section_key`, `title`, `subtitle`, `body`, `cta_label`, `cta_url`, `is_active`, `sort_order`, `created_at`, `updated_at`) VALUES
(1, 'hero', 'About Kevron Suites and Apartments', 'Discover Kevron Suites and Apartments, a premium serviced-apartment brand offering luxury 1, 2, 3 and 4 bedroom accommodation in Adeniyi Jones, Ikeja, Lagos — designed for comfort, convenience, smart living and memorable guest experiences.', 'Welcome to Kevron Suites and Apartments, where premium hospitality meets modern, flexible urban living. Nestled in the heart of Ikeja, we offer refined serviced accommodation designed specifically for international travelers, corporate executives, relocating families, and staycation guests.', 'Explore Apartments', '/apartments', 1, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(2, 'brand_story', 'The Kevron Story & Vision', 'A new hospitality standard in mainland Lagos, designed around space, privacy, and smart convenience.', 'Kevron Suites and Apartments was created to provide guests with a premium serviced-apartment experience in Ikeja, Lagos. Starting from Adeniyi Jones, the brand brings together luxury apartment living, modern comfort, smart access, guest support and convenient airport access for travellers who want more space, privacy and flexibility than a standard hotel room.\n\nAs a newly launched hospitality brand, our premier branch at Regina Coker Street and Ogunlowo Street, Adeniyi Jones, serves as our flagship foundation. By offering fully equipped en-suite apartments with premium features like dual backup generator networks, automated smart keyless locks, slate-bed snooker tables, and PlayStation 5 consoles, we bridge the gap between boutique luxury hotels and private smart-home comfort.', 'View Location Guide', '/location-neighbourhood-guide-ikeja', 1, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(3, 'guest_experience', 'Our Guest Experience Philosophy', 'A professionally managed serviced residence designed to make you feel right at home.', 'We want guests to feel at home while enjoying the structure and support of a professionally managed serviced apartment. Whether the stay is for business, relocation, family travel, a weekend break or a corporate assignment, Kevron Suites and Apartments is designed to provide space, comfort and convenience.\n\nOur guest services team is dedicated to providing proactive, responsive communication, helping arrange secured airport transfers and executive car rentals, and ensuring your rooms are meticulously maintained throughout your stay.', 'View Services', '/guest-services', 1, 3, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(4, 'future_expansion', 'Scalable Design & Future Expansion', 'The foundation of a premium multi-location brand built for long-term growth.', 'Kevron Suites and Apartments is being developed as a scalable serviced-apartment brand. The Adeniyi Jones, Ikeja location is the first branch, with the website and booking system structured to support additional locations, apartment types, amenities, pricing rules, galleries, virtual tours and guest services as the business expands.', 'WhatsApp Enquiry', 'https://wa.me/2348082131985', 1, 4, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(5, 'final_cta', 'Experience Kevron Suites and Apartments in Ikeja', 'Book your stay designed around comfort, convenience, smart living and premium guest support.', 'Explore our luxury 1, 2, 3 and 4 bedroom serviced apartments in Adeniyi Jones, Ikeja and choose a premium, security-conscious lodging partner for your next Lagos visit.', 'Book Your Stay Now', '/booking', 1, 5, '2026-06-04 11:23:04', '2026-06-04 11:23:04');

-- --------------------------------------------------------

--
-- Table structure for table `accent_themes`
--

CREATE TABLE `accent_themes` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `primary_colour` varchar(255) NOT NULL,
  `secondary_colour` varchar(255) NOT NULL,
  `luxury_colour` varchar(255) NOT NULL,
  `surface_hover_colour_light` varchar(255) NOT NULL,
  `surface_hover_colour_dark` varchar(255) NOT NULL,
  `focus_colour` varchar(255) NOT NULL,
  `scrollbar_colour` varchar(255) NOT NULL,
  `gradient_start` varchar(255) NOT NULL,
  `gradient_end` varchar(255) NOT NULL,
  `is_default` tinyint(1) NOT NULL DEFAULT 0,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `accent_themes`
--

INSERT INTO `accent_themes` (`id`, `name`, `slug`, `primary_colour`, `secondary_colour`, `luxury_colour`, `surface_hover_colour_light`, `surface_hover_colour_dark`, `focus_colour`, `scrollbar_colour`, `gradient_start`, `gradient_end`, `is_default`, `is_active`, `sort_order`, `created_at`, `updated_at`) VALUES
(1, 'Royal Blue', 'royal', '#2B3192', '#1FADEA', '#D6A84F', '#EEF5FF', '#172060', '#1FADEA', '#2B3192', '#2B3192', '#1FADEA', 1, 1, 1, '2026-06-04 11:23:15', '2026-06-04 11:23:15'),
(2, 'Sky Cyan', 'cyan', '#1FADEA', '#2B3192', '#D6A84F', '#EBF8FF', '#12245C', '#2B3192', '#1FADEA', '#1FADEA', '#2B3192', 0, 1, 2, '2026-06-04 11:23:15', '2026-06-04 11:23:15'),
(3, 'Champagne Gold', 'gold', '#D6A84F', '#2B3192', '#1FADEA', '#FFFBEB', '#3D2E14', '#2B3192', '#D6A84F', '#D6A84F', '#2B3192', 0, 1, 3, '2026-06-04 11:23:15', '2026-06-04 11:23:15'),
(4, 'Midnight Navy', 'navy', '#080D2B', '#1FADEA', '#D6A84F', '#EEF5FF', '#0C1032', '#1FADEA', '#080D2B', '#080D2B', '#1FADEA', 0, 1, 4, '2026-06-04 11:23:15', '2026-06-04 11:23:15'),
(5, 'Emerald Stay', 'emerald', '#16A34A', '#2B3192', '#D6A84F', '#F0FDF4', '#0C2B14', '#2B3192', '#16A34A', '#16A34A', '#2B3192', 0, 1, 5, '2026-06-04 11:23:15', '2026-06-04 11:23:15'),
(6, 'Warm Amber', 'amber', '#F59E0B', '#2B3192', '#D6A84F', '#FFFBEB', '#3D2305', '#2B3192', '#F59E0B', '#F59E0B', '#2B3192', 0, 1, 6, '2026-06-04 11:23:15', '2026-06-04 11:23:15');

-- --------------------------------------------------------

--
-- Table structure for table `accessibility_audits`
--

CREATE TABLE `accessibility_audits` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `title` varchar(255) NOT NULL,
  `auditor_name` varchar(255) NOT NULL,
  `audit_date` date NOT NULL,
  `scope` varchar(255) DEFAULT NULL,
  `score` decimal(5,2) DEFAULT NULL,
  `notes` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `accessibility_audit_findings`
--

CREATE TABLE `accessibility_audit_findings` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `accessibility_audit_id` bigint(20) UNSIGNED NOT NULL,
  `wcag_criterion` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `page_url` varchar(255) DEFAULT NULL,
  `severity` varchar(255) NOT NULL DEFAULT 'medium',
  `recommendation` text DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `accessibility_feedback`
--

CREATE TABLE `accessibility_feedback` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `full_name` varchar(255) DEFAULT NULL,
  `email` varchar(255) NOT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `affected_page_or_feature` varchar(255) DEFAULT NULL,
  `issue_description` text NOT NULL,
  `assistive_technology_used` varchar(255) DEFAULT NULL,
  `device_browser` varchar(255) DEFAULT NULL,
  `urgency` varchar(255) NOT NULL DEFAULT 'medium',
  `upload_path` varchar(255) DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'reported',
  `assigned_to` varchar(255) DEFAULT NULL,
  `guest_visible_note` text DEFAULT NULL,
  `internal_note` text DEFAULT NULL,
  `submitted_ip` varchar(255) DEFAULT NULL,
  `user_agent` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `accessibility_issues`
--

CREATE TABLE `accessibility_issues` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `title` varchar(255) NOT NULL,
  `page_or_component` varchar(255) NOT NULL,
  `wcag_criterion` varchar(255) DEFAULT NULL,
  `severity` varchar(255) NOT NULL DEFAULT 'medium',
  `user_impact` text DEFAULT NULL,
  `evidence` text DEFAULT NULL,
  `reported_by` varchar(255) DEFAULT NULL,
  `assigned_to` varchar(255) DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'reported',
  `due_date` date DEFAULT NULL,
  `fix_notes` text DEFAULT NULL,
  `retest_result` text DEFAULT NULL,
  `closed_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `accessibility_remediation_tasks`
--

CREATE TABLE `accessibility_remediation_tasks` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `accessibility_issue_id` bigint(20) UNSIGNED DEFAULT NULL,
  `title` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `assigned_to` varchar(255) DEFAULT NULL,
  `due_date` date DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `closed_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `accessibility_statements`
--

CREATE TABLE `accessibility_statements` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `title` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `summary` text DEFAULT NULL,
  `target_standard` varchar(255) NOT NULL DEFAULT 'WCAG 2.2',
  `target_level` varchar(255) NOT NULL DEFAULT 'AA',
  `current_status` varchar(255) NOT NULL DEFAULT 'draft',
  `effective_date` date DEFAULT NULL,
  `last_updated_at` timestamp NULL DEFAULT NULL,
  `last_reviewed_at` timestamp NULL DEFAULT NULL,
  `version` varchar(255) NOT NULL DEFAULT '1.0',
  `status` varchar(255) NOT NULL DEFAULT 'draft',
  `approved_by` varchar(255) DEFAULT NULL,
  `published_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `accessibility_statements`
--

INSERT INTO `accessibility_statements` (`id`, `title`, `slug`, `summary`, `target_standard`, `target_level`, `current_status`, `effective_date`, `last_updated_at`, `last_reviewed_at`, `version`, `status`, `approved_by`, `published_at`, `created_at`, `updated_at`) VALUES
(1, 'Accessibility Statement', 'accessibility-statement', 'Kevron Suites and Apartments is committed to providing a website and guest experience that is accessible, usable and welcoming for all guests, including people with disabilities and users of assistive technologies.', 'WCAG 2.2', 'AA', 'partially_tested', '2026-06-01', '2026-06-04 11:23:14', '2026-06-04 11:23:14', '1.0', 'published', 'Digital Accessibility Adviser', '2026-06-04 11:23:14', '2026-06-04 11:23:14', '2026-06-04 11:23:14');

-- --------------------------------------------------------

--
-- Table structure for table `accessibility_statement_sections`
--

CREATE TABLE `accessibility_statement_sections` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `accessibility_statement_id` bigint(20) UNSIGNED NOT NULL,
  `section_key` varchar(255) NOT NULL,
  `heading` varchar(255) NOT NULL,
  `body` text NOT NULL,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `accessibility_statement_sections`
--

INSERT INTO `accessibility_statement_sections` (`id`, `accessibility_statement_id`, `section_key`, `heading`, `body`, `sort_order`, `is_active`, `created_at`, `updated_at`) VALUES
(1, 1, 'commitment', '1. Our Commitment and Inclusivity Goal', '<p>Kevron Suites and Apartments (\"we\", \"us\", or \"our\") believes that everyone deserves a seamless, comfortable, and dignified digital and physical stay experience. We are progressively working towards making our serviced-apartment booking platform, guest dashboard, and physical facilities easy to navigate and accessible for all users, including those with visual, auditory, motor, or cognitive impairments.</p><p>We aim to align our digital services with the internationally recognized <strong>Web Content Accessibility Guidelines (WCAG) 2.2 Level AA</strong> standard, and continue to proactively audit and adapt our systems to lower operational barriers.</p>', 1, 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14'),
(2, 1, 'standard_target', '2. Accessibility Standard Targets', '<p>While full conformance is an ongoing journey of remediation and testing, our specific targets include:\n                <ul>\n                    <li><strong>Conformance Goal:</strong> WCAG 2.2 Level AA targets across all primary booking, account management, and informational flows.</li>\n                    <li><strong>Continuous Improvement:</strong> Regularly auditing code, semantic structure, and media elements to resolve identified accessibility issues.</li>\n                    <li><strong>Assessment Auditing:</strong> Incorporating automated diagnostic scans alongside manual keyboard and screen-reader test evaluations.</li>\n                </ul></p>', 2, 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14'),
(3, 1, 'website_features', '3. Implemented Digital Accessibility Features', '<p>Our website incorporates several digital accessibility practices:\n                <ul>\n                    <li><strong>Semantic HTML Structure:</strong> Logical sequence of sections utilizing descriptive tags like <code>&lt;header&gt;</code>, <code>&lt;main&gt;</code>, <code>&lt;section&gt;</code>, and <code>&lt;footer&gt;</code>.</li>\n                    <li><strong>Keyboard Accessibility:</strong> Focus elements and active widgets can be fully operated via tab and standard keyboard keys.</li>\n                    <li><strong>Skip-to-Content:</strong> A keyboard-accessible skip link is active to bypass repetitive navigation header blocks.</li>\n                    <li><strong>Responsive Layouts:</strong> Dynamic layout scaling supports up to 200% browser magnification without horizontal scroll traps or overlapping text.</li>\n                    <li><strong>Prefers-Reduced-Motion:</strong> Immediate suppression of high-GPU GSAP scroll triggers and autoplay videos when device parameters restrict motion.</li>\n                </ul></p>', 3, 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14'),
(4, 1, 'motion_animation_3d', '4. Motion, 3D Virtual Tours, and Parallax Fallbacks', '<p>To ensure animations do not create barriers:\n                <ul>\n                    <li><strong>Animation Control:</strong> You can completely disable dynamic transitions or GSAP scrolling effects via our accessibility options.</li>\n                    <li><strong>3D Fallbacks:</strong> Essential apartment booking, nightly prices, and floor layout descriptions do not require 3D virtual tour functionality. High-contrast static floor plans and fully descriptive image alternatives are served for all serviced apartment categories.</li>\n                    <li><strong>No Auto-Play Media:</strong> All videos and media elements are strictly click-to-play, preventing unexpected sensory or audio triggers.</li>\n                </ul></p>', 4, 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14'),
(5, 1, 'known_limitations', '5. Known Accessibility Limitations and Roadmap', '<p>We recognize that digital platforms are continuously evolving, and some legacy or third-party features may present temporary barriers:\n                <ul>\n                    <li><strong>Virtual Tour Keyboards:</strong> Our interactive 360° virtual tours are currently undergoing key navigation remediation. Static floor plans are provided.</li>\n                    <li><strong>Third-Party Integrations:</strong> External payment gateways, Google Map embeds, and WhatsApp chat icons may not fully conform to Level AA requirements. Alternative checkout support is available.</li>\n                    <li><strong>PDF Tags:</strong> Certain legacy invoices and reservation receipt downloads may lack complete screen-reader tag hierarchies. We are actively auditing these document assets.</li>\n                </ul>\n                If you encounter any barrier, please utilize our feedback process below for alternative accommodations.</p>', 5, 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14');

-- --------------------------------------------------------

--
-- Table structure for table `accessibility_statement_versions`
--

CREATE TABLE `accessibility_statement_versions` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `accessibility_statement_id` bigint(20) UNSIGNED NOT NULL,
  `version` varchar(255) NOT NULL,
  `changed_by` varchar(255) DEFAULT NULL,
  `change_notes` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `accessibility_statuses`
--

CREATE TABLE `accessibility_statuses` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `description` varchar(255) DEFAULT NULL,
  `color` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `accessibility_statuses`
--

INSERT INTO `accessibility_statuses` (`id`, `name`, `description`, `color`, `created_at`, `updated_at`) VALUES
(1, 'draft', 'Draft statement under review', 'gray', '2026-06-04 11:23:14', '2026-06-04 11:23:14'),
(2, 'published', 'Approved and published to the website', 'success', '2026-06-04 11:23:14', '2026-06-04 11:23:14'),
(3, 'archived', 'Archived historical statements', 'danger', '2026-06-04 11:23:14', '2026-06-04 11:23:14');

-- --------------------------------------------------------

--
-- Table structure for table `accessibility_support_requests`
--

CREATE TABLE `accessibility_support_requests` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_reference` varchar(255) DEFAULT NULL,
  `full_name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `requested_support_type` varchar(255) NOT NULL,
  `details` text DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'submitted',
  `assigned_to` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `accessibility_widget_settings`
--

CREATE TABLE `accessibility_widget_settings` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `user_id` bigint(20) UNSIGNED DEFAULT NULL,
  `selected_contrast` varchar(255) NOT NULL DEFAULT 'normal',
  `selected_font_size` int(11) NOT NULL DEFAULT 100,
  `prefers_reduced_motion` tinyint(1) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `add_on_services`
--

CREATE TABLE `add_on_services` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `price` decimal(12,2) NOT NULL,
  `is_per_night` tinyint(1) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `add_on_services`
--

INSERT INTO `add_on_services` (`id`, `name`, `slug`, `description`, `price`, `is_per_night`, `created_at`, `updated_at`) VALUES
(1, 'Airport Pickup — MM1 / MM2 (Local)', 'airport-pickup-local', 'Standard pickup from Murtala Muhammed Local Airport (MM1/MM2) with a premium sedan.', 15000.00, 0, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(2, 'Airport Pickup — International Terminal', 'airport-pickup-intl', 'Premium pickup from Murtala Muhammed International Airport with an executive SUV.', 25000.00, 0, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(3, 'Executive Car Rental with Driver', 'car-rental-driver', 'Dedicated luxury SUV with a professional security-trained driver for local transport within Lagos (per day).', 50000.00, 1, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(4, 'Executive Laundry & Pressing Package', 'executive-laundry', 'Unlimited wash, dry, and professional pressing service for standard clothing during your stay.', 10000.00, 0, '2026-06-04 11:23:00', '2026-06-04 11:23:00');

-- --------------------------------------------------------

--
-- Table structure for table `airports`
--

CREATE TABLE `airports` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `code` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `airports`
--

INSERT INTO `airports` (`id`, `name`, `code`, `description`, `is_active`, `created_at`, `updated_at`) VALUES
(1, 'MM1 Local Terminal', 'MM1', 'Domestic Airport Terminal 1, Ikeja, Lagos.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(2, 'MM2 Local Terminal', 'MM2', 'Domestic Airport Terminal 2, Ikeja, Lagos.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(3, 'Murtala Muhammed International Airport', 'MMIA', 'Primary International Airport Terminal, Ikeja, Lagos.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02');

-- --------------------------------------------------------

--
-- Table structure for table `airport_pickup_requests`
--

CREATE TABLE `airport_pickup_requests` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED DEFAULT NULL,
  `guest_name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `phone` varchar(255) NOT NULL,
  `pickup_airport` varchar(255) NOT NULL,
  `flight_number` varchar(255) DEFAULT NULL,
  `arrival_time` datetime NOT NULL,
  `guests_count` int(11) NOT NULL,
  `luggage_count` int(11) NOT NULL,
  `special_instructions` text DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `amenities`
--

CREATE TABLE `amenities` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `category_id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `icon_name` varchar(255) NOT NULL,
  `short_description` varchar(255) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'active',
  `availability_type` varchar(255) NOT NULL DEFAULT 'included',
  `is_featured` tinyint(1) NOT NULL DEFAULT 0,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `amenities`
--

INSERT INTO `amenities` (`id`, `category_id`, `name`, `slug`, `icon_name`, `short_description`, `description`, `status`, `availability_type`, `is_featured`, `sort_order`, `created_at`, `updated_at`) VALUES
(1, 6, 'Air conditioning', 'air-conditioning', 'wind', 'Individual split inverter AC systems in all en-suite bedrooms and spacious living rooms.', 'Beat the Lagos heat with ultra-quiet, energy-efficient split unit inverter air conditioners customizable to your personal climate preference in every section of the suite.', 'active', 'included', 1, 2, '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(2, 6, 'Private Balconies', 'private-balcony', 'square', 'En-suite private balconies offering fresh air and views of Adeniyi Jones residential perimeter.', 'Relax on your spacious private balcony, designed for serene morning coffee sessions or peaceful evening winding-down moments looking over the neighborhood.', 'active', 'included', 0, 3, '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(3, 6, 'Lounge Sofa Seating', 'lounge-sofa-seating', 'armchair', NULL, NULL, 'active', 'included', 0, 0, '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(4, 7, '24-hour power supply', '24-hour-power-supply', 'zap', 'Uninterrupted power supply with active dual backup auto-generator systems.', 'Enjoy seamless, continuous utility operations. Backed by direct grid connection, an industrial silent dual auto-changeover generator fleet, and an instant inverter backup setup, your power stays stable.', 'active', 'included', 1, 1, '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(5, 7, 'High-Speed Wi-Fi', 'high-speed-wi-fi', 'wifi', NULL, NULL, 'active', 'included', 0, 0, '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(6, 3, 'Modern kitchen', 'fully-equipped-kitchen', 'soup', 'Gourmet kitchens with marble countertops, gas cookers, microwave, and deep fridge.', 'Prepare custom meals in our beautiful open-plan kitchens complete with top-tier heat extractors, modern built-in ovens, premium cookware, complete dining cutlery, and a large double-door refrigerator.', 'active', 'included', 1, 1, '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(7, 3, 'Washing Machine & Dryer', 'washing-machine-dryer', 'washing-machine', NULL, NULL, 'active', 'included', 0, 0, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(8, 4, 'PlayStation 5 Console', 'playstation-5-console', 'gamepad-2', 'In-suite PS5 console zones loaded with the latest multiplayer and sports titles.', 'Unwind in the evening or entertain guests with our modern PlayStation 5 console setup, complete with 4K UHD smart screens, dual controllers, and premium games like FC26, NBA, and racing favorites.', 'active', 'included', 1, 2, '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(9, 4, 'Professional Snooker Table', 'professional-snooker-table', 'circle-dot', 'High-quality slate-bed snooker table in our executive lounge.', 'Enjoy friendly matches or structured recreation on our premium 8ft slate-bed snooker table with tournament-grade felt, professional cues, and premium accessory sets.', 'active', 'included', 1, 1, '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(10, 4, 'Ultra HD Smart TVs', 'ultra-hd-smart-tvs', 'tv', 'High-definition flat screens with active DSTV premium, Netflix, and Youtube.', 'Watch your favorite live sports, breaking news, or movies on our massive 4K Smart TVs installed in the main living lounges and en-suite master bedrooms, pre-loaded with streaming options.', 'active', 'included', 0, 3, '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(11, 8, 'Smart locks', 'keyless-smart-locks', 'key-round', 'Digital high-security deadbolt locks with temporary visitor access codes.', 'Features state-of-the-art secure digital deadbolt locks. Administer one-time temporary access codes for housekeeping or permitted visitors, offering complete entry logs for your peace of mind.', 'active', 'included', 1, 2, '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(12, 8, '24/7 CCTV Coverage', '24-7-cctv-coverage', 'eye', 'Comprehensive external perimeter and corridor camera surveillance.', 'Our highly secure environment is actively monitored with continuous high-definition camera arrays surveying the external gates, fences, car parks, stairways, and corridors.', 'active', 'included', 1, 3, '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(13, 8, 'Video Intercom Doorbell', 'video-intercom-doorbell', 'phone-call', 'Smart intercom doorbells to see and speak to visitors from inside the lounge.', 'Screen incoming callers safely from the comfort of your living space. The integrated smart video screen lets you communicate clearly with visitors before opening your door.', 'active', 'included', 0, 4, '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(14, 6, 'Luxury bedrooms', 'luxury-bedrooms', 'bed', 'King-sized en-suite bedrooms with orthopedic mattresses and premium Egyptian cotton linens.', 'Experience restorative sleep with our premium master bedrooms featuring blackout drapes, silent-running split AC systems, fine oak wardrobe closets, ambient warm LED backlights, and double-padded pillows for ultimate relaxation.', 'active', 'included', 1, 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(15, 6, 'Seat-out area', 'seat-out-area', 'armchair', 'Relaxing outdoor seat-out terrace and cozy lounge spaces for open-air rest.', 'Enjoy our nicely designed open-air seat-out terrace featuring high-quality weather-resistant lounge sets, perfect for relaxing conversations or catching the cool Lagos breeze.', 'active', 'included', 0, 4, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(16, 7, 'Wi-Fi network', 'wi-fi-network', 'wifi', 'Corporate-grade unlimited Wi-Fi cover across all apartments and common lounges.', 'Stay fully connected with our high-speed wireless network available throughout the entire property, designed to support multiple devices concurrently without drops.', 'active', 'included', 1, 2, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(17, 7, 'High-speed internet', 'high-speed-internet', 'gauge', 'Fiber-optic broadband backing suitable for remote work, streaming, and business.', 'Power your remote work, Zoom conferences, and Ultra HD streaming with corporate-grade high-speed fiber broadband. Includes backup network providers to guarantee stable connectivity.', 'active', 'included', 1, 3, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(18, 3, 'Washing machine', 'washing-machine', 'utility', 'In-unit fully automatic front-loading washing machines.', 'Maintain fresh apparel with your own private, easy-to-use automatic front-loading washing machine, supplied in every apartment.', 'active', 'included', 0, 2, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(19, 3, 'Dryer', 'dryer', 'flame', 'In-unit electric heat tumble dryers for rapid, crisp fabric drying.', 'Dry your clothes in minutes using the premium electric heat tumble dryers included in your suite, keeping your clothes ready without reliance on weather.', 'active', 'included', 0, 3, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(20, 3, 'Energy-efficient appliances', 'energy-efficient-appliances-kitchen', 'leaf', 'Premium A+++ grade kitchen and laundry appliances that respect utility usage.', 'All cooking hobs, micro-ovens, fridge compartments, and washing tools utilize modern eco-smart components to deliver high performance while minimizing utility waste.', 'active', 'included', 0, 4, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(21, 4, 'Leisure area', 'leisure-area', 'party-popper', 'Sophisticated relaxation lounges and staycation social spots.', 'Perfect for group staycations, family reunions, and light executive gatherings. Our common leisure zones are beautifully furnished with deep leather couches, mood light grids, and card games.', 'active', 'included', 0, 4, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(22, 8, 'Keyless entry', 'keyless-entry', 'key', 'Secure numeric and card keyless entry for contactless guest access.', 'Step inside your luxury suite without carrying traditional physical keys. Use personalized PIN codes, secure RFID cards, or your smartphone for hassle-free contactless access.', 'active', 'included', 1, 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(23, 8, 'Visitor management', 'visitor-management', 'users-round', 'Controlled visitor access protocols with front-desk screening.', 'To support a controlled and quiet residential atmosphere, all visitors are registered at the secure perimeter checkpoint and screened before being cleared to access residential floors.', 'active', 'included', 0, 5, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(24, 9, 'Airport pickup on request', 'airport-pickup', 'plane-takeoff', 'Airport pickup and drop-off in clean, executive vehicles (available on demand).', 'Arrive stress-free in Lagos. Request our professional airport transit service. Covered by premium sedans or executive SUVs with security-vetted drivers direct to Adeniyi Jones.', 'active', 'on_request', 1, 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(25, 9, 'Rented car on request', 'rented-car', 'car', 'Daily chauffeur-driven luxury cars and SUVs for local city transit.', 'Navigate Lagos with maximum comfort and security. Hire our premium executive cars or robust SUVs on a daily rate, complete with professional local drivers who know the city routes.', 'active', 'on_request', 1, 2, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(26, 10, 'Close to airports', 'close-to-airports', 'plane', 'Only 8 minutes to local terminals and 15 minutes to international terminal.', 'Located in a highly strategic part of Adeniyi Jones, Ikeja. Get to the Local Terminal (MM1/MM2) in approximately 8 minutes and Murtala Muhammed International Airport in approximately 15 minutes (subject to traffic).', 'active', 'included', 1, 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(27, 10, 'Ikeja City Mall / Shoprite', 'ikeja-city-mall', 'shopping-bag', 'Approximately 8 minutes to the premium retail and cinema hub.', 'Shop for essentials, catch new cinematic releases, or enjoy elite local and international fashion brands at the famous Ikeja City Mall, located just a short drive from the property.', 'active', 'included', 0, 2, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(28, 10, 'Eateries', 'close-to-eateries', 'utensils', 'Surrounded by top continental and traditional restaurants in Adeniyi Jones.', 'Treat yourself to local fine dining or international cuisines. The Adeniyi Jones avenue is lined with diverse upscale cafes, continental grills, bakeries, and high-quality traditional spots.', 'active', 'included', 0, 3, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(29, 10, 'Event centres', 'close-to-event-centres', 'sparkles', 'Easy access to key business hubs, halls, and executive meeting centers.', 'Located close to top conference rooms, meeting event spaces, and social halls in Ikeja, making it highly convenient for corporate coordinators or wedding guests.', 'active', 'included', 0, 4, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(30, 10, 'Police station', 'close-to-police-station', 'shield-alert', 'Located approximately 3 minutes to the Memabod Police Station.', 'Sleep with peace of mind. The apartments are located in a highly secure street and benefit from close proximity (approx. 3 mins) to the local Police Station.', 'active', 'included', 0, 5, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(31, 11, 'LED lighting', 'led-lighting', 'lightbulb', '100% low-consumption warm LED bulbs to limit carbon emissions.', 'Every single spotlight, drop chandelier, and reading lamp across our suites uses modern ultra-low-consumption LED components to save energy while maintaining warm, cozy indoor styling.', 'active', 'included', 0, 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(32, 11, 'Energy-efficient appliances', 'energy-efficient-appliances', 'leaf', 'Smart inverters and green devices installed to reduce utility load.', 'Our commitment to eco-friendly living includes installing modern A+++ inverter cooling units, solar water heaters, and sensory lighting in common corridors to minimize utility footprint.', 'active', 'included', 0, 2, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(33, 12, 'Concierge', 'concierge-support', 'user-check', 'Dedicated front desk and guest relations officer on-site.', 'Our highly hospitable guest services team is on-site to assist with restaurant reservations, coordinate luggage handling, answer neighborhood questions, and support a comfortable stay.', 'active', 'included', 1, 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(34, 12, 'WhatsApp support', 'whatsapp-support', 'message-square', 'Instant-response digital concierge channel available 24/7.', 'Get rapid solutions directly on your phone. Text our dedicated 24-hour guest desk on WhatsApp for housekeeping call-outs, utility refills, or airport booking adjustments.', 'active', 'included', 1, 2, '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(35, 12, 'Housekeeping request', 'housekeeping-request', 'brush', 'Daily professional cleaning and fresh linen changes on request.', 'Enjoy hotel-standard cleaning. Our meticulous housekeeping staff performs daily en-suite sweepings, bed styling, trash disposal, and linen refills upon your request.', 'active', 'included', 0, 3, '2026-06-04 11:23:01', '2026-06-04 11:23:01');

-- --------------------------------------------------------

--
-- Table structure for table `amenity_categories`
--

CREATE TABLE `amenity_categories` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `icon` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `amenity_categories`
--

INSERT INTO `amenity_categories` (`id`, `name`, `slug`, `icon`, `created_at`, `updated_at`) VALUES
(3, 'Kitchen and Laundry', 'kitchen-laundry', 'chef-hat', '2026-06-04 11:23:00', '2026-06-04 11:23:01'),
(4, 'Entertainment', 'entertainment', 'gamepad-2', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(6, 'Comfort', 'comfort', 'sofa', '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(7, 'Power and Internet', 'power-internet', 'zap', '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(8, 'Security', 'security', 'shield-check', '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(9, 'Transport', 'transport', 'car', '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(10, 'Location', 'location', 'map-pin', '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(11, 'Sustainability', 'sustainability', 'leaf', '2026-06-04 11:23:01', '2026-06-04 11:23:01'),
(12, 'Guest Support', 'guest-support', 'phone-call', '2026-06-04 11:23:01', '2026-06-04 11:23:01');

-- --------------------------------------------------------

--
-- Table structure for table `amenity_comparison_fields`
--

CREATE TABLE `amenity_comparison_fields` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `field_key` varchar(255) NOT NULL,
  `label` varchar(255) NOT NULL,
  `type` varchar(255) NOT NULL DEFAULT 'boolean',
  `order_index` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `amenity_comparison_fields`
--

INSERT INTO `amenity_comparison_fields` (`id`, `field_key`, `label`, `type`, `order_index`, `created_at`, `updated_at`) VALUES
(1, 'bedrooms', 'Bedrooms', 'string', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(2, 'capacity', 'Max Guests', 'string', 2, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(3, 'power_24h', '24h Power Supply', 'boolean', 3, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(4, 'wifi_fiber', 'Wi-Fi Network', 'boolean', 4, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(5, 'kitchen_cook', 'Modern Kitchen', 'boolean', 5, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(6, 'laundry_wash', 'Washing Machine & Dryer', 'boolean', 6, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(7, 'ac_climate', 'Air Conditioning', 'boolean', 7, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(8, 'balcony_terrace', 'Balcony/Terrace', 'boolean', 8, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(9, 'play_snooker', 'PS5 & Snooker access', 'boolean', 9, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(10, 'smart_cctv', 'Smart Lock & CCTV Security', 'boolean', 10, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(11, 'airport_shuttle', 'Airport Pickup Service', 'string', 11, '2026-06-04 11:23:02', '2026-06-04 11:23:02'),
(12, 'car_chauffeur', 'Chauffeur Car Rental', 'string', 12, '2026-06-04 11:23:02', '2026-06-04 11:23:02');

-- --------------------------------------------------------

--
-- Table structure for table `amenity_media`
--

CREATE TABLE `amenity_media` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `amenity_id` bigint(20) UNSIGNED NOT NULL,
  `media_asset_id` bigint(20) UNSIGNED NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `apartment_types`
--

CREATE TABLE `apartment_types` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `best_for` varchar(255) DEFAULT NULL,
  `base_price_nightly` decimal(12,2) NOT NULL,
  `capacity_adults` int(11) NOT NULL,
  `capacity_children` int(11) NOT NULL,
  `bedrooms_count` int(11) NOT NULL,
  `bathrooms_count` int(11) NOT NULL,
  `amenities` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`amenities`)),
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `apartment_types`
--

INSERT INTO `apartment_types` (`id`, `name`, `slug`, `description`, `best_for`, `base_price_nightly`, `capacity_adults`, `capacity_children`, `bedrooms_count`, `bathrooms_count`, `amenities`, `created_at`, `updated_at`) VALUES
(1, '1 Bedroom Master Suite', '1-bedroom-master-suite-ikeja', 'Perfect for solo executives or couples seeking premium luxury. Features a king-sized master bedroom, contemporary en-suite quarters, high-speed Wi-Fi, air conditioning, fully equipped modern kitchen, washing machine, and secure smart keyless entry.', 'Solo Executives & Couples', 150000.00, 2, 1, 1, 1, '[\"24-Hour Power Supply\",\"High-Speed Wi-Fi\",\"Keyless Smart Locks\",\"Air Conditioning\",\"Fully Equipped Kitchen\",\"Washing Machine & Dryer\",\"Ultra HD Smart TVs\"]', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(2, '2 Bedroom Luxury Apartment', '2-bedroom-luxury-apartment-ikeja', 'Ideal for business teams, staycations, or small families. Offers two elegant en-suite bedrooms, a spacious living area with luxurious seating, private balconies, keyless entry smart locks, 24-hour power, high-speed Wi-Fi, fully fitted modern kitchen, washing machine, and dedicated workspace.', 'Business Teams & Small Families', 200000.00, 4, 2, 2, 2, '[\"24-Hour Power Supply\",\"High-Speed Wi-Fi\",\"Keyless Smart Locks\",\"Air Conditioning\",\"Fully Equipped Kitchen\",\"Washing Machine & Dryer\",\"Ultra HD Smart TVs\",\"Private Balcony\"]', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(3, '3 Bedroom Luxury Apartment', '3-bedroom-luxury-apartment-ikeja', 'Uncompromising hospitality for larger families or corporate groups. Features three expansive en-suite bedrooms, massive open-concept living and dining area, fully equipped gourmet kitchen, washing machine/dryer, private balconies, smart locks, and access to entertainment amenities including Snooker and PlayStation 5.', 'Corporate Groups & Large Families', 250000.00, 6, 3, 3, 3, '[\"24-Hour Power Supply\",\"High-Speed Wi-Fi\",\"Keyless Smart Locks\",\"Air Conditioning\",\"Fully Equipped Kitchen\",\"Washing Machine & Dryer\",\"Ultra HD Smart TVs\",\"Private Balcony\",\"PlayStation 5 Console\",\"Professional Snooker Table\"]', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(4, '4 Bedroom Luxury Apartment', '4-bedroom-luxury-apartment-ikeja', 'The ultimate luxury serviced residence in Ikeja. Spans four spectacular en-suite master bedrooms, highly artistic living rooms, fully loaded gourmet kitchen, private outdoor seat-out terrace, keyless entry, smart locks, CCTV, Snooker, PlayStation 5, airport transfer coordination, and dedicated concierge.', 'Ultimate Luxury & Large Groups', 300000.00, 8, 4, 4, 4, '[\"24-Hour Power Supply\",\"High-Speed Wi-Fi\",\"Keyless Smart Locks\",\"Air Conditioning\",\"Fully Equipped Kitchen\",\"Washing Machine & Dryer\",\"Ultra HD Smart TVs\",\"Private Balcony\",\"PlayStation 5 Console\",\"Professional Snooker Table\",\"Video Intercom Doorbell\",\"24\\/7 CCTV Coverage\"]', '2026-06-04 11:23:00', '2026-06-04 11:23:00');

-- --------------------------------------------------------

--
-- Table structure for table `apartment_type_amenity`
--

CREATE TABLE `apartment_type_amenity` (
  `apartment_type_id` bigint(20) UNSIGNED NOT NULL,
  `amenity_id` bigint(20) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `apartment_type_amenity`
--

INSERT INTO `apartment_type_amenity` (`apartment_type_id`, `amenity_id`) VALUES
(1, 1),
(1, 4),
(1, 6),
(1, 10),
(1, 11),
(1, 12),
(1, 13),
(1, 14),
(1, 16),
(1, 17),
(1, 18),
(1, 19),
(1, 20),
(1, 22),
(1, 23),
(1, 24),
(1, 25),
(1, 26),
(1, 27),
(1, 28),
(1, 29),
(1, 30),
(1, 31),
(1, 32),
(1, 33),
(1, 34),
(1, 35),
(2, 1),
(2, 2),
(2, 4),
(2, 6),
(2, 10),
(2, 11),
(2, 12),
(2, 13),
(2, 14),
(2, 15),
(2, 16),
(2, 17),
(2, 18),
(2, 19),
(2, 20),
(2, 22),
(2, 23),
(2, 24),
(2, 25),
(2, 26),
(2, 27),
(2, 28),
(2, 29),
(2, 30),
(2, 31),
(2, 32),
(2, 33),
(2, 34),
(2, 35),
(3, 1),
(3, 2),
(3, 4),
(3, 6),
(3, 8),
(3, 9),
(3, 10),
(3, 11),
(3, 12),
(3, 13),
(3, 14),
(3, 15),
(3, 16),
(3, 17),
(3, 18),
(3, 19),
(3, 20),
(3, 21),
(3, 22),
(3, 23),
(3, 24),
(3, 25),
(3, 26),
(3, 27),
(3, 28),
(3, 29),
(3, 30),
(3, 31),
(3, 32),
(3, 33),
(3, 34),
(3, 35),
(4, 1),
(4, 2),
(4, 4),
(4, 6),
(4, 8),
(4, 9),
(4, 10),
(4, 11),
(4, 12),
(4, 13),
(4, 14),
(4, 15),
(4, 16),
(4, 17),
(4, 18),
(4, 19),
(4, 20),
(4, 21),
(4, 22),
(4, 23),
(4, 24),
(4, 25),
(4, 26),
(4, 27),
(4, 28),
(4, 29),
(4, 30),
(4, 31),
(4, 32),
(4, 33),
(4, 34),
(4, 35);

-- --------------------------------------------------------

--
-- Table structure for table `apartment_type_media`
--

CREATE TABLE `apartment_type_media` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `apartment_type_id` bigint(20) UNSIGNED NOT NULL,
  `media_asset_id` bigint(20) UNSIGNED NOT NULL,
  `order_index` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `apartment_type_media`
--

INSERT INTO `apartment_type_media` (`id`, `apartment_type_id`, `media_asset_id`, `order_index`, `created_at`, `updated_at`) VALUES
(1, 1, 1, 1, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(2, 1, 2, 2, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(3, 1, 3, 3, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(4, 1, 4, 4, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(5, 1, 5, 5, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(6, 2, 6, 1, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(7, 2, 7, 2, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(8, 2, 8, 3, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(9, 2, 9, 4, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(10, 2, 10, 5, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(11, 3, 11, 1, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(12, 3, 12, 2, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(13, 3, 13, 3, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(14, 3, 14, 4, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(15, 3, 15, 5, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(16, 4, 16, 1, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(17, 4, 17, 2, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(18, 4, 18, 3, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(19, 4, 19, 4, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(20, 4, 20, 5, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(21, 4, 21, 6, '2026-06-04 11:23:00', '2026-06-04 11:23:00');

-- --------------------------------------------------------

--
-- Table structure for table `arrival_time_submissions`
--

CREATE TABLE `arrival_time_submissions` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_reference` varchar(255) NOT NULL,
  `guest_name` varchar(255) NOT NULL,
  `phone` varchar(255) NOT NULL,
  `arrival_time` varchar(255) NOT NULL,
  `travel_mode` varchar(255) DEFAULT NULL,
  `landmark` varchar(255) DEFAULT NULL,
  `notes` text DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'new',
  `submitted_ip` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `assembly_points`
--

CREATE TABLE `assembly_points` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `location_id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `direction_from_property` text DEFAULT NULL,
  `accessibility_note` text DEFAULT NULL,
  `backup_assembly_point_id` bigint(20) UNSIGNED DEFAULT NULL,
  `verified_at` timestamp NULL DEFAULT NULL,
  `verified_by` varchar(255) DEFAULT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `assembly_points`
--

INSERT INTO `assembly_points` (`id`, `location_id`, `name`, `description`, `direction_from_property`, `accessibility_note`, `backup_assembly_point_id`, `verified_at`, `verified_by`, `is_active`, `created_at`, `updated_at`) VALUES
(1, 1, 'Main Parking Safe Assembly Point', 'The designated safe muster station is situated in the main open-air parking lot, away from high-voltage cables and building overhangs.', 'Exit the main glass reception lobby, proceed straight through the block pathway to the secure front perimeter gate.', 'Fully step-free flat paved terrain with wide emergency vehicle turning access.', NULL, '2026-06-04 11:23:14', 'HSE Compliance Lead', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14');

-- --------------------------------------------------------

--
-- Table structure for table `assistive_technology_tests`
--

CREATE TABLE `assistive_technology_tests` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `technology_name` varchar(255) NOT NULL,
  `tester_name` varchar(255) NOT NULL,
  `test_date` date NOT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'passed',
  `notes` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `audit_logs`
--

CREATE TABLE `audit_logs` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `user_id` bigint(20) UNSIGNED DEFAULT NULL,
  `action` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `ip_address` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `availability_blocks`
--

CREATE TABLE `availability_blocks` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `unit_id` bigint(20) UNSIGNED NOT NULL,
  `start_date` date NOT NULL,
  `end_date` date NOT NULL,
  `reason` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `bank_accounts`
--

CREATE TABLE `bank_accounts` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `bank_name` varchar(255) NOT NULL,
  `account_name` varchar(255) NOT NULL,
  `account_number` varchar(255) NOT NULL,
  `currency` varchar(255) NOT NULL DEFAULT 'NGN',
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `public_display` tinyint(1) NOT NULL DEFAULT 1,
  `approved_by` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `bank_accounts`
--

INSERT INTO `bank_accounts` (`id`, `bank_name`, `account_name`, `account_number`, `currency`, `is_active`, `public_display`, `approved_by`, `created_at`, `updated_at`) VALUES
(1, 'Zenith Bank', 'Kevron Suites and Apartments', '1311514523', 'NGN', 1, 1, 'Finance Director', '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(2, 'Zenith Bank', 'Kevron Suites and Apartments', '5061771108', 'GBP', 1, 1, 'Finance Director', '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(3, 'Zenith Bank', 'Kevron Suites and Apartments', '5075906521', 'USD', 1, 1, 'Finance Director', '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `bank_transfer_uploads`
--

CREATE TABLE `bank_transfer_uploads` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED NOT NULL,
  `uploaded_by` varchar(255) NOT NULL,
  `file_path` varchar(255) NOT NULL,
  `file_size` int(11) NOT NULL,
  `mime_type` varchar(255) NOT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `verified_at` datetime DEFAULT NULL,
  `verified_by` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `blog_authors`
--

CREATE TABLE `blog_authors` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `role` varchar(255) DEFAULT NULL,
  `bio` text DEFAULT NULL,
  `avatar_path` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `blog_authors`
--

INSERT INTO `blog_authors` (`id`, `name`, `slug`, `role`, `bio`, `avatar_path`, `created_at`, `updated_at`) VALUES
(1, 'Kevron Suites and Apartments Editorial Team', 'kevron-editorial-team', 'Editorial & Guest Services', 'The official editorial team of Kevron Suites and Apartments. We compile travel guides, airport transit resources, business lodging strategies, and neighborhood security reviews to ensure your stay in Adeniyi Jones, Ikeja is safe and comfortable.', 'pictures/dining.jpg', '2026-06-04 11:23:04', '2026-06-04 11:23:04');

-- --------------------------------------------------------

--
-- Table structure for table `blog_categories`
--

CREATE TABLE `blog_categories` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `blog_categories`
--

INSERT INTO `blog_categories` (`id`, `name`, `slug`, `created_at`, `updated_at`) VALUES
(1, 'Lagos Travel Guide', 'lagos-travel-guide', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(2, 'Corporate Stays', 'corporate-stays', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(3, 'Ikeja Travel Guide', 'ikeja-travel-guide', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(4, 'Airport Stay Guide', 'airport-stay-guide', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(5, 'Business Travel', 'business-travel', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(6, 'Family Stay', 'family-stay', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(7, 'Luxury Staycation', 'luxury-staycation', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(8, 'Corporate Accommodation', 'corporate-accommodation', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(9, 'Local Attractions', 'local-attractions', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(10, 'Safety and Comfort', 'safety-comfort', '2026-06-04 11:23:04', '2026-06-04 11:23:04');

-- --------------------------------------------------------

--
-- Table structure for table `blog_events`
--

CREATE TABLE `blog_events` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `event_type` varchar(255) NOT NULL,
  `blog_post_id` bigint(20) UNSIGNED DEFAULT NULL,
  `query` varchar(255) DEFAULT NULL,
  `ip_address` varchar(45) DEFAULT NULL,
  `user_agent` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `blog_posts`
--

CREATE TABLE `blog_posts` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `category_id` bigint(20) UNSIGNED NOT NULL,
  `author_id` bigint(20) UNSIGNED NOT NULL,
  `title` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `summary` text DEFAULT NULL,
  `content` longtext NOT NULL,
  `thumbnail` varchar(255) DEFAULT NULL,
  `seo_title` varchar(255) DEFAULT NULL,
  `seo_description` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'draft',
  `is_featured` tinyint(1) NOT NULL DEFAULT 0,
  `is_recommended` tinyint(1) NOT NULL DEFAULT 0,
  `reading_time_minutes` int(11) NOT NULL DEFAULT 5,
  `published_at` timestamp NULL DEFAULT NULL,
  `updated_content_at` timestamp NULL DEFAULT NULL,
  `canonical_url` varchar(255) DEFAULT NULL,
  `robots` varchar(255) NOT NULL DEFAULT 'index, follow',
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `blog_author_id` bigint(20) UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `blog_posts`
--

INSERT INTO `blog_posts` (`id`, `category_id`, `author_id`, `title`, `slug`, `summary`, `content`, `thumbnail`, `seo_title`, `seo_description`, `created_at`, `updated_at`, `status`, `is_featured`, `is_recommended`, `reading_time_minutes`, `published_at`, `updated_content_at`, `canonical_url`, `robots`, `sort_order`, `blog_author_id`) VALUES
(1, 1, 1, 'Top Luxury Attractions in Ikeja, Lagos', 'top-luxury-attractions-ikeja-lagos', 'Discover the best dining, shopping, and entertainment spots near Adeniyi Jones, Ikeja.', 'Lagos, particularly Ikeja, is a vibrant hub of activities. When staying at Kevron Suites and Apartments, you are in close proximity to premier locations. The Ikeja City Mall (Shoprite) is just about 8 minutes away, offering access to high-end shopping, cinema, and eateries. For food lovers, Adeniyi Jones features numerous executive restaurants and continental cafes. The environment is highly accessible, making it easy to enjoy both local hospitality and modern living.', 'dining.jpg', 'Executive Attractions in Ikeja | Kevron Apartments Guide', 'Explore nearby luxury restaurants, shopping malls, and travel guides near Adeniyi Jones, Ikeja when staying at Kevron Apartments.', '2026-06-04 11:23:00', '2026-06-04 11:23:00', 'draft', 0, 0, 5, NULL, NULL, NULL, 'index, follow', 0, NULL),
(2, 3, 1, 'Best Places to Stay in Ikeja, Lagos: A Guide for Short-Stay Guests', 'best-places-to-stay-in-ikeja-lagos-short-stay-guide', 'Explore the premier locations, accessibility hubs, and luxury serviced suites tailored for temporary visitors in Ikeja.', 'Ikeja, the bustling capital of Lagos State, is a prime destination for both corporate executives and travelers. When choosing where to stay, short-stay guests must consider key factors: proximity to central business districts, airport accessibility, stable power, and neighborhood security. \n\nAdeniyi Jones is widely recognized as one of the most prestigious and strategic residential-commercial corridors in Ikeja. Staying here grants you easy access to business complexes while offering a quieter environment than nearby Allen Avenue or Toyin Street. \n\nAt Kevron Suites and Apartments (located on Regina Coker Street and Ogunlowo Street), short-stay guests enjoy a quiet enclave within a secured perimeter. Our 1, 2, 3 and 4 bedroom apartments are designed to offer a seamless transition from a flight to a premium workspace, with fully equipped kitchens, dual backup power generators, and keyless smart door locks. It stands out as an elite option compared to generic hotel rooms.', 'master-bedroom.jpg', NULL, NULL, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'published', 1, 0, 6, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'https://kevronapartments.com/blog/best-places-to-stay-in-ikeja-lagos-short-stay-guide', 'index, follow', 0, 1),
(3, 4, 1, 'Where to Stay Near MM1 and MM2 Lagos Airport', 'where-to-stay-near-mm1-and-mm2-lagos-airport', 'A detailed guide comparing airport hotels and executive serviced suites located just minutes from Murtala Muhammed Airport.', 'For business travelers and transit passengers, landing in Lagos demands lodging that minimizes commute times. Murtala Muhammed Local Airport Terminals (MM1 and MM2) are the primary hubs for domestic flights, while the International Terminal handles transcontinental journeys. \n\nCommuting from distant parts of Lagos can be highly unpredictable due to traffic. Therefore, staying within the immediate airport periphery of Ikeja is essential. While airport road hotels are popular, smart travelers are increasingly turning to luxury serviced apartments. \n\nKevron Suites and Apartments is located approximately 8 minutes from MM1/MM2 and approximately 15 minutes from the International Terminal. This makes it an outstanding choice for travelers who want to avoid airport road congestion while enjoying home-like comforts. With our managed airport pickup and executive car rentals, you can arrive, unlock your suite keylessly, and rest without logistics worries.', 'bedroom.jpg', NULL, NULL, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'published', 0, 1, 5, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'https://kevronapartments.com/blog/where-to-stay-near-mm1-and-mm2-lagos-airport', 'index, follow', 0, 1),
(4, 4, 1, 'Why Adeniyi Jones, Ikeja Is Convenient for Lagos Airport Travellers', 'why-adeniyi-jones-ikeja-convenient-airport-travellers', 'Understand the geographical advantages, traffic flow patterns, and security perimeter that make Adeniyi Jones a prime airport travel base.', 'Adeniyi Jones Avenue is celebrated as one of Ikeja\'s best-planned residential-commercial arteries. For international and domestic flyers, it offers an outstanding base.\n\nGeographically, Adeniyi Jones is situated to offer multiple exit routes. Unlike core airport hotel zones which can face bottleneck traffic during rush hours, drivers from Adeniyi Jones can utilize alternative inner neighborhood roads to bypass major intersections. The commute to the airport is approximately 8 to 15 minutes depending on traffic.\n\nFurthermore, staying on Regina Coker Street or Ogunlowo Street in Adeniyi Jones provides a peaceful environment away from direct airport runway noise, while keeping you 3 minutes away from Memabod Police Station. This blend of transit convenience, quiet neighborhood lifestyle, and smart-living luxury makes Kevron Suites a top-tier transit base.', 'living-room.jpg', NULL, NULL, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'published', 0, 0, 4, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'https://kevronapartments.com/blog/why-adeniyi-jones-ikeja-convenient-airport-travellers', 'index, follow', 0, 1),
(5, 5, 1, 'Why Serviced Apartments Are Ideal for Business Travellers in Lagos', 'why-serviced-apartments-are-ideal-for-business-travellers', 'Discover why executive travelers choose fully serviced apartments over standard hotel rooms to maximize productivity and space.', 'Modern business travel requires more than just a bed; it demands a functional base that supports productivity, focus, and relaxation. Standard hotel rooms often feel cramped and lack basic self-catering or laundry amenities.\n\nFully serviced apartments bridge this gap perfectly. They offer separate living and dining areas, high-speed corporate-grade Wi-Fi, fully fitted kitchens, and dedicated study workspaces. For remote workers or executives running meetings, this space is invaluable.\n\nAt Kevron Apartments, we cater specifically to the business traveler. With keyless passcode locks, continuous power, high-speed Wi-Fi, and built-in washing machines, you can manage your work schedule without interruptions. Additionally, executive add-on packages such as car rentals with drivers and in-house laundry ensure you stay sharp for your corporate engagements.', 'kitchen.jpg', NULL, NULL, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'published', 1, 0, 7, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'https://kevronapartments.com/blog/why-serviced-apartments-are-ideal-for-business-travellers', 'index, follow', 0, 1),
(6, 6, 1, 'Best Family-Friendly Serviced Apartments in Ikeja', 'best-family-friendly-serviced-apartments-ikeja', 'A comprehensive review of spacious, safe, and entertaining multi-bedroom serviced residences for families visiting Lagos.', 'Traveling with family—especially with kids—requires careful accommodation planning. Traditional hotels quickly become expensive when booking multiple rooms, and they offer little common area space for children to play safely.\n\nMulti-bedroom serviced apartments are the ideal solution. A 2, 3, or 4 Bedroom Luxury Apartment allows parents and children to have their own private en-suite spaces while sharing a large living room, dining zone, and fully equipped kitchen.\n\nKevron Suites and Apartments is exceptionally family-friendly. Our 3 and 4 bedroom residences include professional slate snooker tables and PlayStation 5 consoles, keeping children and teenagers fully entertained. Located within a highly secure residential perimeter on Regina Coker Street, with smart video doorbells and 24/7 CCTV coverage, parents can rest assured that their family is secure.', 'bedroom-2.jpg', NULL, NULL, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'published', 0, 1, 5, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'https://kevronapartments.com/blog/best-family-friendly-serviced-apartments-ikeja', 'index, follow', 0, 1),
(7, 7, 1, 'Luxury Staycation Ideas in Lagos for Couples and Families', 'luxury-staycation-ideas-in-lagos-couples-families', 'Plan the ultimate stress-free staycation right in the heart of Ikeja, complete with premium in-suite leisure and dining.', 'You do not need to fly out of Lagos to enjoy a premium vacation. A luxury staycation is the perfect way for couples or families to relax, recharge, and enjoy quality time together without travel stress.\n\nTo create the perfect staycation, seek out lodging that offers high-end leisure amenities. Key elements include spacious lounge seating, smart entertainment systems, and self-catering kitchens for cooking romantic dinners or family feasts.\n\nKevron Suites and Apartments provides a top-tier staycation experience in Ikeja. Couples can unwind in our 1 Bedroom Master Suite, while families can book our larger apartments to enjoy friendly snooker tournaments and PlayStation 5 matches. With high-speed Wi-Fi, fully climate-controlled rooms, and stable electricity, your local staycation will feel like a five-star getaway.', 'bedroom-3.jpg', NULL, NULL, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'published', 0, 0, 5, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'https://kevronapartments.com/blog/luxury-staycation-ideas-in-lagos-couples-families', 'index, follow', 0, 1),
(8, 8, 1, 'How Companies Can Book Serviced Apartments for Staff in Ikeja', 'how-companies-book-serviced-apartments-staff-ikeja', 'A step-by-step corporate booking guide for HR, admin, and procurement managers looking for staff accommodation solutions.', 'Managing corporate travel logistics for visiting staff, expatriates, or project consultants can be challenging. HR and procurement managers often face high hotel bills and complex expense reporting.\n\nA structured corporate housing program using serviced apartments simplifies this process. Serviced apartments reduce per-night costs—especially for extended stays—while providing employees with a comfortable, productive workspace.\n\nAt Kevron Suites, we offer dedicated corporate accounts. Procurement teams can set up billing profiles, secure preferred rates, and manage bookings through a simplified verification pipeline. With 24-hour electricity, smart lock passcodes sent directly to guests, and a secure residential perimeter in Adeniyi Jones, companies can confidently book accommodation for their valuable team members.', 'living-room-2.jpg', NULL, NULL, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'published', 0, 1, 6, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'https://kevronapartments.com/blog/how-companies-book-serviced-apartments-staff-ikeja', 'index, follow', 0, 1),
(9, 8, 1, 'Corporate Accommodation in Lagos: What Companies Should Consider', 'corporate-accommodation-lagos-what-companies-consider', 'Key metrics including internet speed, physical security, location transit, and billing transparency for business lodging.', 'When selecting a corporate lodging partner in Lagos, procurement teams must evaluate several critical factors:\n\nFirst, security is paramount. The accommodation must be in a secure residential neighborhood with gated controls, CCTV, and proximity to security support. Second, utility reliability is non-negotiable; constant power and high-speed Wi-Fi are essential for business continuity.\n\nKevron Suites and Apartments is built specifically to meet these corporate requirements in Adeniyi Jones, Ikeja. We maintain a secure residential perimeter on Regina Coker Street, utilize advanced keyless smart door locks, and provide high-speed corporate-grade Wi-Fi. Our billing processes are transparent, with detailed invoices, making expense audits easy for corporate account managers.', 'living-room-3.jpg', NULL, NULL, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'published', 0, 0, 6, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'https://kevronapartments.com/blog/corporate-accommodation-lagos-what-companies-consider', 'index, follow', 0, 1),
(10, 9, 1, 'Things to Do Near Adeniyi Jones and Ikeja City Mall', 'things-to-do-near-adeniyi-jones-ikeja-city-mall', 'Discover the best luxury dining, high-end shopping, cinema entertainment, and local hotspots near Adeniyi Jones.', 'Adeniyi Jones, Ikeja is not just a convenient residential base; it is also close to some of Lagos\' best shopping, dining, and leisure destinations.\n\nA short 8-minute drive from Kevron Apartments brings you to the Ikeja City Mall (Shoprite), the premier shopping destination in mainland Lagos. The mall features numerous international retail stores, supermarkets, restaurants, and a multi-screen cinema.\n\nFor food lovers, Adeniyi Jones Avenue offers a wide variety of dining options, from executive continental restaurants to local cafes. If you want a more active outing, professional snooker clubs and wellness spas are nearby. Staying at Kevron Suites means you have premium entertainment options both inside your apartment and just down the road.', 'dining.jpg', NULL, NULL, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'published', 0, 0, 5, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'https://kevronapartments.com/blog/things-to-do-near-adeniyi-jones-ikeja-city-mall', 'index, follow', 0, 1),
(11, 10, 1, 'How to Choose a Secure Serviced Apartment in Lagos', 'how-to-choose-secure-serviced-apartment-lagos', 'Essential security checks including smart door locks, perimeter safety, CCTV coverage, and neighbor proximity for travelers.', 'For travelers visiting Lagos, safety and security are top priorities. When choosing a serviced apartment, you must look beyond beautiful photos and check the physical security measures in place.\n\nA secure serviced apartment should feature: a gated, access-controlled compound; 24/7 CCTV coverage of external areas; secure keyless door locks; and proximity to police support.\n\nAt Kevron Suites and Apartments, we prioritize your safety. Located in a quiet, gated residential area on Regina Coker Street in Adeniyi Jones, our compound features a secure perimeter, 24/7 CCTV surveillance of common areas, smart video doorbells, and advanced keyless door locks. Additionally, we are located just 3 minutes from the Memabod Police Station, giving guests peace of mind during their stay.', 'bedroom-4.jpg', NULL, NULL, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'published', 0, 1, 5, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'https://kevronapartments.com/blog/how-to-choose-secure-serviced-apartment-lagos', 'index, follow', 0, 1),
(12, 3, 1, 'Weekly and Monthly Serviced Apartments in Ikeja: What to Know', 'weekly-monthly-serviced-apartments-ikeja-what-to-know', 'A guide to long-stay bookings, utility management, housekeeping schedules, and discounts for extended stays.', 'For guests staying in Lagos for several weeks or months—such as expatriates, project consultants, or families relocating—standard hotel rooms are rarely practical. \n\nRelocating families and long-stay guests need a home-like environment. Key requirements include regular, reliable housekeeping, self-catering kitchen facilities, stable power, and a quiet, peaceful neighborhood.\n\nKevron Apartments offers flexible long-stay options. We provide discounted weekly and monthly rates for our 1, 2, 3, and 4 bedroom apartments. Housekeeping services are scheduled around your preferences, and our fully fitted kitchens help you manage dining costs. Located in a quiet residential area, our apartments are the perfect long-stay home in Ikeja.', 'bedroom-5.jpg', NULL, NULL, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'published', 0, 0, 6, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'https://kevronapartments.com/blog/weekly-monthly-serviced-apartments-ikeja-what-to-know', 'index, follow', 0, 1),
(13, 4, 1, 'Airport Pickup and Car Rental for Serviced Apartment Guests in Lagos', 'airport-pickup-car-rental-serviced-apartment-guests-lagos', 'Learn how to coordinate secure airport pickups and rent luxury vehicles with professional drivers for a hassle-free visit.', 'Arriving in a busy metropolis like Lagos requires smooth, well-planned ground transit. Navigating public airport transport or booking regular ride-hailing services after a long flight can be stressful and exhausting.\n\nTo ensure a seamless, stress-free arrival, book a pre-arranged airport pickup. Coordinating this service directly with your accommodation provider ensures your driver is waiting for you as you exit the terminal.\n\nKevron Suites provides professional airport transit services. We offer pickup options from MM1/MM2 domestic terminals and the International Airport (MMIA) using clean, modern sedans or executive SUVs. For travel within the city, we also offer luxury car rentals with professional, security-trained drivers, allowing you to travel safely and comfortably.', 'bedroom-6.jpg', NULL, NULL, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'published', 0, 0, 5, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'https://kevronapartments.com/blog/airport-pickup-car-rental-serviced-apartment-guests-lagos', 'index, follow', 0, 1);

-- --------------------------------------------------------

--
-- Table structure for table `blog_post_faqs`
--

CREATE TABLE `blog_post_faqs` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `blog_post_id` bigint(20) UNSIGNED NOT NULL,
  `question` text NOT NULL,
  `answer` text NOT NULL,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `blog_post_faqs`
--

INSERT INTO `blog_post_faqs` (`id`, `blog_post_id`, `question`, `answer`, `sort_order`, `created_at`, `updated_at`) VALUES
(1, 2, 'Why is Adeniyi Jones preferred for short stays in Ikeja?', 'Adeniyi Jones is clean, commercial-residential, highly accessible, and positioned between the airport and major commercial districts in Ikeja.', 0, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(2, 2, 'What apartment configurations does Kevron offer for short-stay guests?', 'Kevron Suites offers luxury 1 Bedroom Master Suites, 2 Bedroom, 3 Bedroom, and 4 Bedroom Luxury Apartments.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(3, 2, 'Is 24-hour electricity guaranteed during a short stay?', 'Yes, Kevron features continuous 24-hour power backed by a dual-generator auto-switch system.', 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(4, 3, 'How far is Kevron Apartments from MM1 and MM2?', 'Kevron is approximately 8 minutes away from MM1/MM2 domestic terminals under standard traffic conditions.', 0, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(5, 3, 'Do you provide airport pickup transfers?', 'Yes, airport pickups from local or international terminals can be coordinated on request with standard sedans or executive SUVs.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(6, 3, 'Can I book a room for just a few hours of transit?', 'We offer overnight rates. For short day-use transit, please coordinate with our reservation team in advance subject to availability.', 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(7, 4, 'What is the travel time to the International Airport terminal?', 'It is approximately 15 minutes to the Murtala Muhammed International Terminal (MMIA), subject to traffic.', 0, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(8, 4, 'Are there good restaurants and grocery stores on Adeniyi Jones?', 'Yes, Adeniyi Jones host various executive eateries, continental bistros, and well-stocked supermarkets for your convenience.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(9, 4, 'Is airport pickup secure at night?', 'Yes, our transit vehicles are chauffeured by security-vetted professional drivers who coordinate closely with our concierge team.', 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(10, 5, 'Is the Wi-Fi unlimited and fast?', 'Yes, every apartment is equipped with high-speed corporate-grade broadband Wi-Fi, ideal for video calls and remote work.', 0, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(11, 5, 'Can I cook my own meals in the apartment?', 'Yes, all our suites feature a fully equipped gourmet kitchen with gas cookers, microwave, fridge, and heat extractor.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(12, 5, 'Do you provide workspaces for corporate travelers?', 'Yes, our apartments include comfortable desk setups and spacious dining/living areas suitable for laptops and administrative work.', 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(13, 6, 'Are all bedrooms en-suite?', 'Yes, all bedrooms in our 2, 3, and 4 Bedroom Luxury Apartments are fully en-suite with modern fittings.', 0, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(14, 6, 'Do the apartments have entertainment for kids?', 'Yes, our 3 and 4 Bedroom Apartments come standard with a PlayStation 5 console and a professional snooker table.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(15, 6, 'Is there a security deposit for family bookings?', 'A refundable security deposit of ₦100,000 is required upon check-in, which is fully returned within 24 hours of checkout after inspection.', 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(16, 7, 'Do you offer romantic staycation packages for couples?', 'Yes, we can arrange custom staycation add-ons like fruit baskets or specialized pickup services. Please coordinate with our desk.', 0, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(17, 7, 'Is smoking allowed in staycation suites?', 'No, all our suites are strictly non-smoking to ensure a clean, fresh environment for everyone. A penalty of ₦100,000 applies.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(18, 7, 'Can we invite friends over during a staycation?', 'Day visitors are permitted to register at reception and must depart by 10:00 PM. Parties and large gatherings are prohibited.', 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(19, 8, 'Can companies pay via bank transfer?', 'Yes, we accept corporate bank transfers and provide official VAT invoices and receipts.', 0, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(20, 8, 'Do you offer special rates for corporate long-term bookings?', 'Yes, we have preferential corporate rate rules for extended bookings exceeding 30 days.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(21, 8, 'How do guests check in under corporate bookings?', 'Expatriates or staff can complete our digital check-in in advance and receive their keyless entry codes via secure email or WhatsApp.', 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(22, 9, 'What security credentials does Kevron possess?', 'We feature a secure residential perimeter, keyless door locks, 24/7 CCTV surveillance, and are 3 minutes from Memabod Police Station.', 0, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(23, 9, 'Is there backup internet in case of primary Wi-Fi outage?', 'Yes, we maintain redundant high-speed broadband lines to guarantee uninterrupted connectivity.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(24, 9, 'Are business meetings permitted in the apartments?', 'Small, quiet business discussions of up to 4 people are allowed in the living spaces, but commercial parties are strictly prohibited.', 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(25, 10, 'How far is Ikeja City Mall from Kevron Apartments?', 'It is approximately an 8-minute drive under standard traffic conditions.', 0, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(26, 10, 'Are there reliable supermarkets on Adeniyi Jones for grocery shopping?', 'Yes, several large, well-stocked supermarkets are located within a 2-minute drive for all your self-catering needs.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(27, 10, 'Can the concierge arrange transportation to local malls?', 'Yes, we offer executive car rental packages with professional drivers to take you anywhere in Lagos.', 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(28, 11, 'Are the entrance keys physical or digital?', 'We use keyless smart locks. Guests receive a unique digital passcode upon check-in, which expires automatically at checkout.', 0, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(29, 11, 'Is there security staff on-site?', 'Yes, we have 24/7 on-site security personnel managing our gated entrance and perimeter.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(30, 11, 'Do you have CCTV inside the apartments?', 'Absolutely not. CCTV cameras are strictly limited to external perimeters, gates, and common corridors to protect guest privacy.', 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(31, 12, 'Do you offer discounts for monthly stays?', 'Yes, we provide special rate discounts for extended bookings exceeding 30 days.', 0, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(32, 12, 'How often is housekeeping conducted for long-stay guests?', ' Housekeeping is typically scheduled 2 to 3 times a week, but we can adjust this schedule to fit your preferences.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(33, 12, 'Are laundry utilities included in long stays?', 'All our apartments include a private washing machine and heat dryer. We also offer professional laundry services on request.', 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(34, 13, 'How does the driver identify me at the airport?', 'Your driver will wait at the arrivals exit holding a paging board with your name, and will coordinate with you via phone/WhatsApp.', 0, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(35, 13, 'Can we book a car rental for a full day?', 'Yes, our executive car rentals include a professional driver and are billed per day for travel within Lagos.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(36, 13, 'What happens if my flight is delayed?', 'We track flight arrival times using your flight number, and will adjust your pickup time automatically if there is a delay.', 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04');

-- --------------------------------------------------------

--
-- Table structure for table `blog_post_redirects`
--

CREATE TABLE `blog_post_redirects` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `old_slug` varchar(255) NOT NULL,
  `new_slug` varchar(255) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `blog_post_revisions`
--

CREATE TABLE `blog_post_revisions` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `blog_post_id` bigint(20) UNSIGNED NOT NULL,
  `user_id` bigint(20) UNSIGNED NOT NULL,
  `title` varchar(255) NOT NULL,
  `summary` text DEFAULT NULL,
  `content` longtext NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `blog_post_tag`
--

CREATE TABLE `blog_post_tag` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `blog_post_id` bigint(20) UNSIGNED NOT NULL,
  `blog_tag_id` bigint(20) UNSIGNED NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `blog_post_tag`
--

INSERT INTO `blog_post_tag` (`id`, `blog_post_id`, `blog_tag_id`, `created_at`, `updated_at`) VALUES
(1, 2, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(2, 2, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(3, 2, 12, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(4, 2, 9, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(5, 3, 3, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(6, 3, 4, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(7, 3, 5, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(8, 3, 11, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(9, 4, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(10, 4, 3, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(11, 4, 11, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(12, 5, 6, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(13, 5, 7, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(14, 5, 12, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(15, 6, 8, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(16, 6, 12, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(17, 6, 10, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(18, 7, 10, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(19, 7, 8, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(20, 7, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(21, 8, 7, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(22, 8, 6, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(23, 8, 9, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(24, 9, 7, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(25, 9, 6, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(26, 9, 12, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(27, 10, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(28, 10, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(29, 10, 10, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(30, 11, 12, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(31, 11, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(32, 11, 9, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(33, 12, 9, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(34, 12, 12, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(35, 12, 8, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(36, 13, 11, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(37, 13, 3, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(38, 13, 6, '2026-06-04 11:23:04', '2026-06-04 11:23:04');

-- --------------------------------------------------------

--
-- Table structure for table `blog_related_posts`
--

CREATE TABLE `blog_related_posts` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `blog_post_id` bigint(20) UNSIGNED NOT NULL,
  `related_post_id` bigint(20) UNSIGNED NOT NULL,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `blog_related_posts`
--

INSERT INTO `blog_related_posts` (`id`, `blog_post_id`, `related_post_id`, `sort_order`, `created_at`, `updated_at`) VALUES
(1, 2, 3, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(2, 2, 4, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(3, 3, 4, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(4, 3, 5, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(5, 4, 5, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(6, 4, 6, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(7, 5, 6, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(8, 5, 7, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(9, 6, 7, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(10, 6, 8, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(11, 7, 8, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(12, 7, 9, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(13, 8, 9, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(14, 8, 10, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(15, 9, 10, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(16, 9, 11, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(17, 10, 11, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(18, 10, 12, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(19, 11, 12, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(20, 11, 13, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(21, 12, 13, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(22, 12, 2, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(23, 13, 2, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(24, 13, 3, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04');

-- --------------------------------------------------------

--
-- Table structure for table `blog_search_logs`
--

CREATE TABLE `blog_search_logs` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `query` varchar(255) NOT NULL,
  `results_count` int(11) NOT NULL DEFAULT 0,
  `ip_address` varchar(45) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `blog_tags`
--

CREATE TABLE `blog_tags` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `blog_tags`
--

INSERT INTO `blog_tags` (`id`, `name`, `slug`, `created_at`, `updated_at`) VALUES
(1, 'Ikeja', 'ikeja', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(2, 'Adeniyi Jones', 'adeniyi-jones', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(3, 'Lagos Airport', 'lagos-airport', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(4, 'MM1', 'mm1', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(5, 'MM2', 'mm2', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(6, 'Business Travel', 'business-travel', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(7, 'Corporate Stays', 'corporate-stays', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(8, 'Family Stay', 'family-stay', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(9, 'Long Stay', 'long-stay', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(10, 'Staycation', 'staycation', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(11, 'Airport Pickup', 'airport-pickup', '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(12, 'Serviced Apartments', 'serviced-apartments', '2026-06-04 11:23:04', '2026-06-04 11:23:04');

-- --------------------------------------------------------

--
-- Table structure for table `bookings`
--

CREATE TABLE `bookings` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_reference` varchar(255) NOT NULL,
  `guest_id` bigint(20) UNSIGNED NOT NULL,
  `apartment_type_id` bigint(20) UNSIGNED NOT NULL,
  `unit_id` bigint(20) UNSIGNED DEFAULT NULL,
  `check_in_date` date NOT NULL,
  `check_out_date` date NOT NULL,
  `guests_count` int(11) NOT NULL,
  `base_price` decimal(12,2) NOT NULL,
  `add_ons_price` decimal(12,2) NOT NULL DEFAULT 0.00,
  `service_charge` decimal(12,2) NOT NULL DEFAULT 0.00,
  `tax_amount` decimal(12,2) NOT NULL DEFAULT 0.00,
  `total_price` decimal(12,2) NOT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `payment_status` varchar(255) NOT NULL DEFAULT 'unpaid',
  `special_requests` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `bookings`
--

INSERT INTO `bookings` (`id`, `booking_reference`, `guest_id`, `apartment_type_id`, `unit_id`, `check_in_date`, `check_out_date`, `guests_count`, `base_price`, `add_ons_price`, `service_charge`, `tax_amount`, `total_price`, `status`, `payment_status`, `special_requests`, `created_at`, `updated_at`) VALUES
(1, 'KEV-2026-PAST', 1, 1, NULL, '2026-05-15', '2026-05-20', 2, 1000000.00, 50000.00, 50000.00, 50000.00, 1150000.00, 'completed', 'paid', 'Quiet room preferred.', '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(2, 'KEV-2026-ACTV', 1, 1, NULL, '2026-06-02', '2026-06-07', 4, 1000000.00, 0.00, 50000.00, 50000.00, 1100000.00, 'checked_in', 'paid', 'Need extra coffee pods and soft pillows.', '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(3, 'KEV-2026-UPCM', 1, 2, NULL, '2026-06-19', '2026-06-24', 1, 750000.00, 20000.00, 30000.00, 30000.00, 830000.00, 'confirmed', 'paid', 'Airport pickup request has been filled.', '2026-06-04 11:23:05', '2026-06-04 11:23:05');

-- --------------------------------------------------------

--
-- Table structure for table `booking_add_ons`
--

CREATE TABLE `booking_add_ons` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED NOT NULL,
  `add_on_service_id` bigint(20) UNSIGNED NOT NULL,
  `quantity` int(11) NOT NULL DEFAULT 1,
  `price` decimal(12,2) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `booking_cancellation_requests`
--

CREATE TABLE `booking_cancellation_requests` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED NOT NULL,
  `request_reference` varchar(255) NOT NULL,
  `reason` text NOT NULL,
  `refund_amount` decimal(12,2) NOT NULL DEFAULT 0.00,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `admin_notes` text DEFAULT NULL,
  `processed_at` datetime DEFAULT NULL,
  `processed_by` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `booking_enquiries`
--

CREATE TABLE `booking_enquiries` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `full_name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `check_in` date NOT NULL,
  `check_out` date NOT NULL,
  `guests_count` int(11) NOT NULL,
  `apartment_type` varchar(255) DEFAULT NULL,
  `purpose_of_stay` varchar(255) DEFAULT NULL,
  `airport_pickup_required` varchar(255) NOT NULL DEFAULT 'not_sure',
  `message` text DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'new',
  `admin_notes` text DEFAULT NULL,
  `submitted_ip` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `booking_guests`
--

CREATE TABLE `booking_guests` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `email` varchar(255) DEFAULT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `booking_modification_requests`
--

CREATE TABLE `booking_modification_requests` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED NOT NULL,
  `request_reference` varchar(255) NOT NULL,
  `proposed_check_in` date DEFAULT NULL,
  `proposed_check_out` date DEFAULT NULL,
  `proposed_apartment_type_id` bigint(20) UNSIGNED DEFAULT NULL,
  `reason` text NOT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `admin_notes` text DEFAULT NULL,
  `processed_at` datetime DEFAULT NULL,
  `processed_by` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `booking_notifications`
--

CREATE TABLE `booking_notifications` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED DEFAULT NULL,
  `recipient_email` varchar(255) NOT NULL,
  `type` varchar(255) NOT NULL,
  `channel` varchar(255) NOT NULL DEFAULT 'email',
  `status` varchar(255) NOT NULL DEFAULT 'queued',
  `sent_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `booking_policies`
--

CREATE TABLE `booking_policies` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `title` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `summary` text DEFAULT NULL,
  `effective_date` date DEFAULT NULL,
  `last_updated_at` datetime DEFAULT NULL,
  `version` varchar(255) NOT NULL DEFAULT '1.0',
  `status` varchar(255) NOT NULL DEFAULT 'draft',
  `approved_by` varchar(255) DEFAULT NULL,
  `published_at` datetime DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `booking_policies`
--

INSERT INTO `booking_policies` (`id`, `title`, `slug`, `summary`, `effective_date`, `last_updated_at`, `version`, `status`, `approved_by`, `published_at`, `created_at`, `updated_at`) VALUES
(1, 'Booking Policy', 'booking-policy', 'Learn how bookings are requested, confirmed, paid for, modified and managed at Kevron Suites and Apartments, Adeniyi Jones, Ikeja.', '2026-06-01', '2026-06-04 12:23:12', '1.0', 'published', 'Legal & Compliance Adviser', '2026-06-04 12:23:12', '2026-06-04 11:23:12', '2026-06-04 11:23:12');

-- --------------------------------------------------------

--
-- Table structure for table `booking_policy_acceptances`
--

CREATE TABLE `booking_policy_acceptances` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `user_id` bigint(20) UNSIGNED DEFAULT NULL,
  `guest_id` bigint(20) UNSIGNED DEFAULT NULL,
  `booking_id` bigint(20) UNSIGNED DEFAULT NULL,
  `booking_reference` varchar(255) DEFAULT NULL,
  `booking_policy_version_id` varchar(255) NOT NULL,
  `acceptance_context` varchar(255) NOT NULL,
  `checkbox_label` varchar(255) NOT NULL,
  `ip_address` varchar(255) DEFAULT NULL,
  `user_agent` varchar(255) DEFAULT NULL,
  `accepted_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `booking_policy_sections`
--

CREATE TABLE `booking_policy_sections` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_policy_id` bigint(20) UNSIGNED NOT NULL,
  `section_key` varchar(255) NOT NULL,
  `heading` varchar(255) NOT NULL,
  `body` text NOT NULL,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `requires_legal_review` tinyint(1) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `booking_policy_sections`
--

INSERT INTO `booking_policy_sections` (`id`, `booking_policy_id`, `section_key`, `heading`, `body`, `sort_order`, `is_active`, `requires_legal_review`, `created_at`, `updated_at`) VALUES
(1, 1, 'booking_channels', '1. Booking Channels', '<p>Guests can submit stay enquiries or request direct reservations through our official website booking page, general enquiry forms, email, phone, or verified WhatsApp business handles. Confirmed corporate client coordinators and long-term residents may also submit bookings through admin-assisted interfaces or dedicated corporate/long-stay portal pipelines.</p>', 1, 1, 0, '2026-06-04 11:23:12', '2026-06-04 11:23:12'),
(2, 1, 'booking_request_vs_confirmed', '2. Booking Request vs Confirmed Booking', '<p>A booking request does not automatically guarantee availability. A booking is confirmed only when Kevron Suites and Apartments confirms availability and the applicable payment, deposit or approval requirement has been completed. Unconfirmed requests are classified as pending and do not block inventory.</p>', 2, 1, 0, '2026-06-04 11:23:12', '2026-06-04 11:23:12'),
(3, 1, 'availability_policy', '3. Availability Policy', '<p>Room availability depends on the selected dates, en-suite categories, active inventory levels, cleaning blocks, or scheduled maintenance holds. In the rare event of real-time inventory synchronisation discrepancies, direct support desk hosts will contact the guest immediately to arrange alternative dates or room upgrades.</p>', 3, 1, 0, '2026-06-04 11:23:12', '2026-06-04 11:23:12'),
(4, 1, 'apartment_options_rates', '4. Apartment Options and Rate Basis', '<p>Our base nightly rates are dynamically configured as follows:\n                <ul>\n                    <li>1 Bedroom Master Suite — [1BR_RATE]/night</li>\n                    <li>2 Bedroom Luxury Apartment — [2BR_RATE]/night</li>\n                    <li>3 Bedroom Luxury Apartment — [3BR_RATE]/night</li>\n                    <li>4 Bedroom Luxury Apartment — [4BR_RATE]/night</li>\n                </ul>\n                The final quoted rate may vary based on length of stay, weekend markups, festive/seasonal rules, or promo code redemptions. Rates confirmed at checkout are protected against subsequent pricing updates.</p>', 4, 1, 0, '2026-06-04 11:23:12', '2026-06-04 11:23:12'),
(5, 1, 'information_required', '5. Booking Information Required', '<p>To complete a direct booking request, guests must provide their full legal name, verified email address, contact phone/WhatsApp number, check-in and check-out dates, expected number of guests, and purpose of stay. Corporate bookings require the company name, coordinator details, and coordinator billing billing preferences.</p>', 5, 1, 0, '2026-06-04 11:23:12', '2026-06-04 11:23:12'),
(6, 1, 'guest_verification', '6. Guest Details and Verification', '<p>For smart secure living compliance, guests must present a valid government-issued photo identification card (Passport, Driver License, or National ID) during onboarding. Corporate and group coordinators must upload a complete guest list roster before check-in. Personal documents are handled with strict privacy controls.</p>', 6, 1, 0, '2026-06-04 11:23:12', '2026-06-04 11:23:12'),
(7, 1, 'payment_deposit_requirements', '7. Payment and Deposit Requirements', '<p>Payments can be made via our secure online gateways (e.g., Flutterwave), bank transfers, or corporate invoices. Bank transfers are subject to proof-of-payment upload and host verification. Unpaid or unverified booking requests are flagged as pending and may automatically expire if payment conditions are not met within the designated timeframe.</p>', 7, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(8, 1, 'booking_confirmation', '8. Booking Confirmation', '<p>Upon successful confirmation, guests will receive a unique booking reference along with stay details, check-in instructions, and payment receipts. Confirmation documents are transmitted via email, SMS, or the guest dashboard portal. Please retain this reference for any subsequent modification requests.</p>', 8, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(9, 1, 'booking_modification', '9. Booking Modification Policy', '<p>Guests may request stay date modifications, room category upgrades, or guest count changes through the guest dashboard. Modifications are subject to room availability, price adjustments, and administrative approval. Extent of changes must comply with room occupancy limits and cannot be guaranteed automatically.</p>', 9, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(10, 1, 'cancellation_policy_reference', '10. Cancellation and Refund Policy Reference', '<p>Cancellations must be formally requested through the dashboard. Refund eligibility (such as full base stay refunds for cancellations 5+ days before check-in, or 50% for 2-5 days) is governed strictly by the accepted Cancellation and Refund Policy and Terms and Conditions.</p>', 10, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(11, 1, 'no_show', '11. No-Show Policy', '<p>A no-show occurs if a guest fails to check in by the scheduled arrival date without prior written cancellation or modification notice. No-show reservations are subject to release and room redistribution after a designated hold period, in accordance with our cancellation rules.</p>', 11, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(12, 1, 'check_in_out_linkage', '12. Check-In and Check-Out Integration', '<p>Our standard check-in time is <strong>2:00 PM</strong>, and check-out is <strong>11:00 AM</strong>. Requests for early check-in or late check-out must be coordinated with the reception desk and are subject to availability. Guests are encouraged to submit digital check-in forms and arrival times to expedite reception onboarding.</p>', 12, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(13, 1, 'occupancy_limits', '13. Occupancy and Guest Count', '<p>Strict maximum occupancy limits apply to each suite category (e.g. 2 adults for 1 Bedroom, 4 adults for 2 Bedroom, 6 adults for 3 Bedroom, 8 adults for 4 Bedroom). Exceeding these limits without prior approval is a violation of house rules and smart security protocols. All visitors must be registered.</p>', 13, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(14, 1, 'addon_services', '14. Add-On Services During Booking', '<p>Guests can request airport pickups, executive car rentals, extra cleanings, and other en-suite services during checkout or from their guest dashboard. Add-ons are subject to service availability and third-party vendor coordination.</p>', 14, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(15, 1, 'long_stay_booking', '15. Long-Stay Booking Policy', '<p>Stays exceeding 30 days qualify for custom extended stay quotations and flexible staged payment plans (subject to approval). A dynamic security deposit will apply. Extended stay guests must coordinate housekeeping access and en-suite checkouts bi-weekly.</p>', 15, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(16, 1, 'corporate_booking', '16. Corporate Booking Policy', '<p>Corporate stays and B2B bookings are subject to corporate billing profiles approvals. Registered coordinators may request direct company billing. All corporate guests remain bound by en-suite house rules and smart living policies.</p>', 16, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(17, 1, 'third_party_channels', '17. Third-Party Booking Channels', '<p>Reservations requested through third-party platforms or OTAs are governed by the specific platform\'s rate, cancellation, and payment rules. Direct host assistance or booking modifications for these stays may be limited and must be initiated through the original platform.</p>', 17, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(18, 1, 'policy_acceptance', '18. Booking Policy Acceptance', '<p>Accepting our Booking Policy, Cancellation and Refund Policy, and general House Rules is a mandatory condition before booking confirmation. The system securely logs policy versions, acceptance timestamps, IP addresses, and user agents for audit trail purposes.</p>', 18, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `booking_status_histories`
--

CREATE TABLE `booking_status_histories` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED NOT NULL,
  `status` varchar(255) NOT NULL,
  `changed_by` varchar(255) NOT NULL,
  `comment` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `brand_content_blocks`
--

CREATE TABLE `brand_content_blocks` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `location_id` bigint(20) UNSIGNED DEFAULT NULL,
  `block_key` varchar(255) NOT NULL,
  `title` varchar(255) DEFAULT NULL,
  `subtitle` varchar(255) DEFAULT NULL,
  `content` text DEFAULT NULL,
  `media_url` varchar(255) DEFAULT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `version` int(11) NOT NULL DEFAULT 1,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `brand_profiles`
--

CREATE TABLE `brand_profiles` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `brand_name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `brand_story` text NOT NULL,
  `mission_statement` text NOT NULL,
  `hospitality_promise` text NOT NULL,
  `positioning_statement` text NOT NULL,
  `primary_location_id` bigint(20) UNSIGNED DEFAULT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `brand_profiles`
--

INSERT INTO `brand_profiles` (`id`, `brand_name`, `slug`, `brand_story`, `mission_statement`, `hospitality_promise`, `positioning_statement`, `primary_location_id`, `is_active`, `created_at`, `updated_at`) VALUES
(1, 'Kevron Suites and Apartments', 'kevron-suites-apartments', 'Kevron Suites and Apartments was created to provide guests with a premium serviced-apartment experience in Ikeja, Lagos. Starting from Adeniyi Jones, the brand brings together luxury apartment living, modern comfort, smart access, guest support and convenient airport access for travellers who want more space, privacy and flexibility than a standard hotel room.', 'Our hospitality promise is to provide guests with a clean, comfortable, security-conscious and well-managed serviced-apartment experience, supported by practical amenities, responsive guest communication and thoughtful spaces for short stays, long stays, family visits, business travel and corporate accommodation.', 'We promise to deliver consistent premium lodging, smart living, and round-the-clock proactive guest services, ensuring every visitor enjoys a seamless, security-conscious home-away-from-home experience.', 'Kevron Suites and Apartments is a premium serviced-apartment brand starting from Adeniyi Jones, Ikeja, Lagos, offering 1, 2, 3 and 4 bedroom luxury serviced apartments with smart living, guest support, airport access and a future multi-location expansion structure.', 1, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04');

-- --------------------------------------------------------

--
-- Table structure for table `brand_values`
--

CREATE TABLE `brand_values` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `title` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `icon` varchar(255) NOT NULL,
  `image_path` varchar(255) DEFAULT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `brand_values`
--

INSERT INTO `brand_values` (`id`, `title`, `description`, `icon`, `image_path`, `is_active`, `sort_order`, `created_at`, `updated_at`) VALUES
(1, 'Comfort', 'Creating peaceful, beautiful sanctuaries where guests can relax and work without compromise.', 'heart', NULL, 1, 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(2, 'Trust', 'Upholding strict transparency in bookings, rates, secure data storage, and honest representations.', 'check-badge', NULL, 1, 2, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(3, 'Service', 'Delivering people-first, responsive, and respectful hospitality support at all times.', 'user-group', NULL, 1, 3, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(4, 'Quality', 'Maintaining high cleanliness, rapid maintenance responses, and premium furnishing standards.', 'shield-check', NULL, 1, 4, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(5, 'Convenience', 'Simplifying arrivals, keyless access operations, and airport transits to save valuable time.', 'hand-thumb-up', NULL, 1, 5, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(6, 'Smart Living', 'Embedding digital convenience, fast Wi-Fi, and smart automation to empower modern lifestyles.', 'cpu-chip', NULL, 1, 6, '2026-06-04 11:23:04', '2026-06-04 11:23:04'),
(7, 'Growth', 'Iterating and expanding our premium serviced apartments brand thoughtfully based on guest reviews.', 'arrow-trending-up', NULL, 1, 7, '2026-06-04 11:23:04', '2026-06-04 11:23:04');

-- --------------------------------------------------------

--
-- Table structure for table `buildings`
--

CREATE TABLE `buildings` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `location_id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `code` varchar(255) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `buildings`
--

INSERT INTO `buildings` (`id`, `location_id`, `name`, `code`, `created_at`, `updated_at`) VALUES
(1, 1, 'Regina Coker Block (Block A)', 'KSA-RGC', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(2, 1, 'Ogunlowo Block (Block B)', 'KSA-OGL', '2026-06-04 11:23:00', '2026-06-04 11:23:00');

-- --------------------------------------------------------

--
-- Table structure for table `cache`
--

CREATE TABLE `cache` (
  `key` varchar(255) NOT NULL,
  `value` mediumtext NOT NULL,
  `expiration` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `cache_locks`
--

CREATE TABLE `cache_locks` (
  `key` varchar(255) NOT NULL,
  `owner` varchar(255) NOT NULL,
  `expiration` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `cancellation_refund_policies`
--

CREATE TABLE `cancellation_refund_policies` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `title` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `summary` text DEFAULT NULL,
  `effective_date` date DEFAULT NULL,
  `last_updated_at` datetime DEFAULT NULL,
  `version` varchar(255) NOT NULL DEFAULT '1.0',
  `status` varchar(255) NOT NULL DEFAULT 'draft',
  `approved_by` varchar(255) DEFAULT NULL,
  `published_at` datetime DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `cancellation_refund_policies`
--

INSERT INTO `cancellation_refund_policies` (`id`, `title`, `slug`, `summary`, `effective_date`, `last_updated_at`, `version`, `status`, `approved_by`, `published_at`, `created_at`, `updated_at`) VALUES
(1, 'Cancellation and Refund Policy', 'cancellation-refund-policy', 'Understand how booking cancellations, refund requests, no-shows, early departures, security deposits, and add-on services refunds are managed at Kevron Suites and Apartments, Adeniyi Jones, Ikeja.', '2026-06-01', '2026-06-04 12:23:13', '1.0', 'published', 'Legal & Compliance Adviser', '2026-06-04 12:23:13', '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `cancellation_refund_policy_acceptances`
--

CREATE TABLE `cancellation_refund_policy_acceptances` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `user_id` bigint(20) UNSIGNED DEFAULT NULL,
  `guest_id` bigint(20) UNSIGNED DEFAULT NULL,
  `booking_id` bigint(20) UNSIGNED DEFAULT NULL,
  `booking_reference` varchar(255) DEFAULT NULL,
  `policy_version_id` varchar(255) NOT NULL,
  `policy_title` varchar(255) NOT NULL,
  `acceptance_context` varchar(255) NOT NULL,
  `checkbox_label` varchar(255) NOT NULL,
  `ip_address` varchar(255) DEFAULT NULL,
  `user_agent` varchar(255) DEFAULT NULL,
  `accepted_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `cancellation_refund_policy_sections`
--

CREATE TABLE `cancellation_refund_policy_sections` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `cancellation_refund_policy_id` bigint(20) UNSIGNED NOT NULL,
  `section_key` varchar(255) NOT NULL,
  `heading` varchar(255) NOT NULL,
  `body` text NOT NULL,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `requires_legal_review` tinyint(1) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `cancellation_refund_policy_sections`
--

INSERT INTO `cancellation_refund_policy_sections` (`id`, `cancellation_refund_policy_id`, `section_key`, `heading`, `body`, `sort_order`, `is_active`, `requires_legal_review`, `created_at`, `updated_at`) VALUES
(1, 1, 'scope_of_policy', '1. Scope and Application', '<p>This policy applies globally to all reservations requested, confirmed or processed at Kevron Suites and Apartments, Adeniyi Jones, Ikeja. It governs stays booked directly through our website booking system, verified WhatsApp channels, corporate accounts, or administrative booking hosts.</p>', 1, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(2, 1, 'cancellation_before_confirmation', '2. Cancellations Prior to Booking Confirmation', '<p>Booking requests and stay enquiries may be withdrawn or cancelled at any time before formal reservation confirmation. If payment was made before confirmation, the guest is entitled to a clean, swift refund of the base amount, subject to transaction verification and payment gateway rules.</p>', 2, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(3, 1, 'cancellation_after_confirmation', '3. Cancellations After Confirmation', '<p>Once a booking has been confirmed, cancellations are subject to administrative review. Free cancellation notice periods will be displayed once confirmed by management. Guests should contact Kevron Suites and Apartments as early as possible if they need to cancel or modify a booking.</p>', 3, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(4, 1, 'refund_eligibility_categories', '4. Refund Eligibility & Rules', '<p>Refund eligibility is calculated based on notice periods, booking types, and rate classes:\n                <ul>\n                    <li><strong>Full Base Refund:</strong> Cancellations made 5+ days prior to scheduled check-in qualify for a full base stay refund (excluding security deposits).</li>\n                    <li><strong>Partial Refund:</strong> Cancellations made between 2 and 5 days prior to check-in qualify for a 50% base stay refund.</li>\n                    <li><strong>Restricted / Non-Refundable:</strong> Cancellations made within 48 hours of check-in are non-refundable.</li>\n                </ul>\n                All claims are subject to administrative review to prevent transaction discrepancies.</p>', 4, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(5, 1, 'no_show_policy', '5. No-Show Policy', '<p>A no-show is recorded if a guest fails to arrive at the property by 11:59 PM on their scheduled check-in date without prior written coordination. In accordance with no-show guidelines, unpaid pending reservations are released immediately, while paid bookings are held until checkout, subject to daily forfeiture charges.</p>', 5, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(6, 1, 'early_departure', '6. Early Departures & Key Reductions', '<p>Leaving the property prior to the agreed checkout date does not automatically create a refund entitlement. Early departures are treated as voluntary cancellations of the remaining nights, with refund eligibility subject to room redistribution and management approval.</p>', 6, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(7, 1, 'payment_route_timeline', '7. Payment Channels and Processing Timelines', '<p>Approved refunds are processed through the same channel used at checkout (e.g. secure online gateways, credit card reversals, or bank transfers). Standard corporate review and gateway validations may require between 7 to 14 business days to post successfully.</p>', 7, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(8, 1, 'security_deposit_refund', '8. Security Deposit Refund Procedures', '<p>Unlike base stay pricing, security deposits (₦100,000.00 standard) are fully refundable. The property releases deposits within 24 to 48 hours following checkout inspection, provided no en-suite damage, missing inventories, or policy breaches are recorded.</p>', 8, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(9, 1, 'addons_pickup_rental', '9. Add-On Services, Airport Pickups & Car Rentals', '<p>Add-on reservation fees (e.g. decoration, executive chef setups) are subject to notice windows:\n                <ul>\n                    <li>Airport pickups can be cancelled without charge up to 24 hours prior to the flight landing.</li>\n                    <li>Executive car rentals require 48 hours notice. Late cancellations may incur provider standby charges.</li>\n                </ul></p>', 9, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(10, 1, 'corporate_long_stay', '10. Corporate and Extended Long Stays', '<p>Stays exceeding 30 days or corporate group reservations operate under custom cancellation agreements. Early departures or cancellation notice periods are managed according to the contractually approved staging schedules.</p>', 10, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(11, 1, 'third_party_ota', '11. Third-Party Platform and OTA Reservations', '<p>Reservations booked through third-party platforms (such as Booking.com or Airbnb) must initiate cancellations directly through the originating channel. Kevron Suites and Apartments is bound by the platform terms and cannot bypass their billing channels.</p>', 11, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(12, 1, 'exceptional_circumstances', '12. Extenuating Circumstances and Emergency Policies', '<p>Management reserves the right to issue rebooking credits or waive fees for extenuating circumstances such as medical emergencies, flight groundings, or regional force majeure events. Claims require valid supporting documentation.</p>', 12, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(13, 1, 'property_initiated', '13. Property-Initiated Cancellations', '<p>In the highly unlikely event that Kevron Suites and Apartments must cancel a confirmed reservation due to operational outages or force majeure events, guests are entitled to a full refund or immediate upgrade to an alternative luxury suite at no additional charge.</p>', 13, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `cancellation_requests`
--

CREATE TABLE `cancellation_requests` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED NOT NULL,
  `booking_reference` varchar(255) NOT NULL,
  `guest_id` bigint(20) UNSIGNED DEFAULT NULL,
  `full_name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `phone` varchar(255) NOT NULL,
  `cancellation_reason` text NOT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `guest_note` text DEFAULT NULL,
  `internal_note` text DEFAULT NULL,
  `submitted_ip` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `car_rental_requests`
--

CREATE TABLE `car_rental_requests` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED DEFAULT NULL,
  `guest_name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `phone` varchar(255) NOT NULL,
  `car_type` varchar(255) NOT NULL,
  `duration_days` int(11) NOT NULL,
  `start_date` date NOT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `channel_integrations`
--

CREATE TABLE `channel_integrations` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `channel_name` varchar(255) NOT NULL,
  `is_enabled` tinyint(1) NOT NULL DEFAULT 0,
  `external_listing_id` varchar(255) DEFAULT NULL,
  `rate_mapping` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`rate_mapping`)),
  `availability_mapping` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`availability_mapping`)),
  `last_sync_at` timestamp NULL DEFAULT NULL,
  `last_sync_status` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `channel_sync_logs`
--

CREATE TABLE `channel_sync_logs` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `channel_integration_id` bigint(20) UNSIGNED NOT NULL,
  `sync_type` varchar(255) NOT NULL,
  `status` varchar(255) NOT NULL,
  `message` text DEFAULT NULL,
  `payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`payload`)),
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `company_billing_profiles`
--

CREATE TABLE `company_billing_profiles` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `corporate_client_id` bigint(20) UNSIGNED NOT NULL,
  `billing_contact_name` varchar(255) NOT NULL,
  `billing_contact_email` varchar(255) NOT NULL,
  `billing_address` text NOT NULL,
  `payment_preference` varchar(255) NOT NULL DEFAULT 'bank_transfer',
  `approved_limit` decimal(12,2) NOT NULL DEFAULT 0.00,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `comparison_fields`
--

CREATE TABLE `comparison_fields` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `field_key` varchar(255) NOT NULL,
  `label` varchar(255) NOT NULL,
  `type` varchar(255) NOT NULL DEFAULT 'boolean',
  `order_index` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `comparison_fields`
--

INSERT INTO `comparison_fields` (`id`, `field_key`, `label`, `type`, `order_index`, `created_at`, `updated_at`) VALUES
(1, 'price', 'Price', 'string', 1, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(2, 'bedrooms', 'Bedroom count', 'string', 2, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(3, 'best_for', 'Best for', 'string', 3, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(4, 'kitchen', 'Kitchen', 'boolean', 4, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(5, 'wifi', 'Wi-Fi', 'boolean', 5, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(6, 'power_24h', '24-hour power', 'boolean', 6, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(7, 'ac', 'Air conditioning', 'boolean', 7, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(8, 'washer_dryer', 'Washing machine/dryer', 'boolean', 8, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(9, 'balcony', 'Balcony/outdoor space', 'boolean', 9, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(10, 'ps5_snooker', 'PS5/snooker access', 'boolean', 10, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(11, 'smart_security', 'Smart security', 'boolean', 11, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(12, 'airport_pickup', 'Airport pickup', 'boolean', 12, '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(13, 'car_rental', 'Car rental', 'boolean', 13, '2026-06-04 11:23:00', '2026-06-04 11:23:00');

-- --------------------------------------------------------

--
-- Table structure for table `comparison_field_values`
--

CREATE TABLE `comparison_field_values` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `apartment_type_id` bigint(20) UNSIGNED NOT NULL,
  `comparison_field_id` bigint(20) UNSIGNED NOT NULL,
  `value` varchar(255) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `comparison_field_values`
--

INSERT INTO `comparison_field_values` (`id`, `apartment_type_id`, `comparison_field_id`, `value`, `created_at`, `updated_at`) VALUES
(1, 1, 1, '₦150,000/night', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(2, 1, 2, '1 Bedroom', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(3, 1, 3, 'Solo stays / couples', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(4, 1, 4, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(5, 1, 5, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(6, 1, 6, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(7, 1, 7, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(8, 1, 8, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(9, 1, 9, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(10, 1, 10, 'No', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(11, 1, 11, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(12, 1, 12, 'On request', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(13, 1, 13, 'On request', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(14, 2, 1, '₦200,000/night', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(15, 2, 2, '2 Bedrooms', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(16, 2, 3, 'Small families / small groups', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(17, 2, 4, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(18, 2, 5, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(19, 2, 6, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(20, 2, 7, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(21, 2, 8, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(22, 2, 9, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(23, 2, 10, 'No', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(24, 2, 11, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(25, 2, 12, 'On request', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(26, 2, 13, 'On request', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(27, 3, 1, '₦250,000/night', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(28, 3, 2, '3 Bedrooms', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(29, 3, 3, 'Families / executive stays', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(30, 3, 4, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(31, 3, 5, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(32, 3, 6, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(33, 3, 7, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(34, 3, 8, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(35, 3, 9, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(36, 3, 10, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(37, 3, 11, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(38, 3, 12, 'On request', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(39, 3, 13, 'On request', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(40, 4, 1, '₦300,000/night', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(41, 4, 2, '4 Bedrooms', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(42, 4, 3, 'Large groups / corporate teams', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(43, 4, 4, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(44, 4, 5, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(45, 4, 6, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(46, 4, 7, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(47, 4, 8, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(48, 4, 9, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(49, 4, 10, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(50, 4, 11, 'Yes', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(51, 4, 12, 'On request', '2026-06-04 11:23:00', '2026-06-04 11:23:00'),
(52, 4, 13, 'On request', '2026-06-04 11:23:00', '2026-06-04 11:23:00');

-- --------------------------------------------------------

--
-- Table structure for table `consent_records`
--

CREATE TABLE `consent_records` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `user_id` bigint(20) UNSIGNED DEFAULT NULL,
  `guest_id` bigint(20) UNSIGNED DEFAULT NULL,
  `booking_id` bigint(20) UNSIGNED DEFAULT NULL,
  `booking_reference` varchar(255) DEFAULT NULL,
  `policy_version_id` varchar(255) NOT NULL,
  `policy_title` varchar(255) NOT NULL,
  `consent_type` varchar(255) NOT NULL,
  `consent_context` varchar(255) NOT NULL,
  `checkbox_label` varchar(255) NOT NULL,
  `ip_address` varchar(255) DEFAULT NULL,
  `user_agent` varchar(255) DEFAULT NULL,
  `accepted_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `withdrawn_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `contact_enquiries`
--

CREATE TABLE `contact_enquiries` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `full_name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `enquiry_type` varchar(255) NOT NULL,
  `apartment_interest` varchar(255) DEFAULT NULL,
  `preferred_contact_method` varchar(255) NOT NULL DEFAULT 'email',
  `message` text NOT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'new',
  `admin_notes` text DEFAULT NULL,
  `submitted_ip` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `contact_messages`
--

CREATE TABLE `contact_messages` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `subject` varchar(255) NOT NULL,
  `message` text NOT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'unread',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `contact_settings`
--

CREATE TABLE `contact_settings` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `key` varchar(255) NOT NULL,
  `value` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `contact_settings`
--

INSERT INTO `contact_settings` (`id`, `key`, `value`, `created_at`, `updated_at`) VALUES
(1, 'contact_phone', '+234 813 163 2926', '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(2, 'contact_email', 'info@kevronapartments.com', '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(3, 'contact_whatsapp', '2348082131985', '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(4, 'contact_address', '7B Regina Coker Street, Adeniyi Jones, Ikeja / No. 8 Ogunlowo Street, Adeniyi Jones, Ikeja, Lagos 100271, Nigeria.', '2026-06-04 11:23:05', '2026-06-04 11:23:05');

-- --------------------------------------------------------

--
-- Table structure for table `cookie_categories`
--

CREATE TABLE `cookie_categories` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `consent_required` tinyint(1) NOT NULL DEFAULT 1,
  `always_active` tinyint(1) NOT NULL DEFAULT 0,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `cookie_categories`
--

INSERT INTO `cookie_categories` (`id`, `name`, `slug`, `description`, `consent_required`, `always_active`, `is_active`, `sort_order`, `created_at`, `updated_at`) VALUES
(1, 'Strictly Necessary Cookies', 'necessary', 'Essential for website security, core functionality, cross-site scripting (CSRF) defenses, page routing, and recording visitor cookie consent states. These cannot be disabled.', 0, 1, 1, 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(2, 'Preference Cookies', 'preferences', 'Remember user selections including color themes, font scaling, accessibility adjustments, and recently viewed luxury apartments.', 1, 0, 1, 2, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(3, 'Analytics Cookies', 'analytics', 'Help us gather anonymous visitor statistics, track conversion rates in the booking funnel, and optimize performance across network connections.', 1, 0, 1, 3, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(4, 'Marketing Cookies', 'marketing', 'Power pixels and tracking scripts to compile campaign performance profiles, deliver relevant digital advertisements, and measure return on ad spend.', 1, 0, 1, 4, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(5, 'Functional & Third-Party Cookies', 'functional', 'Load embedded resources including Google Maps, video virtual tours (Vimeo/YouTube), payment checkout modules, and live support chat windows.', 1, 0, 1, 5, '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `cookie_consents`
--

CREATE TABLE `cookie_consents` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `user_id` bigint(20) UNSIGNED DEFAULT NULL,
  `guest_id` bigint(20) UNSIGNED DEFAULT NULL,
  `anonymous_consent_id` varchar(255) DEFAULT NULL,
  `cookie_policy_version_id` varchar(255) NOT NULL,
  `consent_context` varchar(255) NOT NULL,
  `ip_address` varchar(255) DEFAULT NULL,
  `user_agent` text DEFAULT NULL,
  `accepted_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `withdrawn_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `cookie_consent_events`
--

CREATE TABLE `cookie_consent_events` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `cookie_consent_id` bigint(20) UNSIGNED NOT NULL,
  `event_type` varchar(255) NOT NULL,
  `event_details` text DEFAULT NULL,
  `ip_address` varchar(255) DEFAULT NULL,
  `user_agent` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `cookie_consent_preferences`
--

CREATE TABLE `cookie_consent_preferences` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `cookie_consent_id` bigint(20) UNSIGNED NOT NULL,
  `cookie_category_id` bigint(20) UNSIGNED NOT NULL,
  `choice` tinyint(1) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `cookie_items`
--

CREATE TABLE `cookie_items` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `cookie_category_id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `provider` varchar(255) NOT NULL,
  `purpose` text DEFAULT NULL,
  `duration` varchar(255) NOT NULL,
  `type` varchar(255) NOT NULL,
  `first_or_third_party` varchar(255) NOT NULL DEFAULT 'first-party',
  `enabled_by_default` tinyint(1) NOT NULL DEFAULT 0,
  `consent_required` tinyint(1) NOT NULL DEFAULT 1,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `last_reviewed_at` date DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `cookie_items`
--

INSERT INTO `cookie_items` (`id`, `cookie_category_id`, `name`, `provider`, `purpose`, `duration`, `type`, `first_or_third_party`, `enabled_by_default`, `consent_required`, `is_active`, `last_reviewed_at`, `created_at`, `updated_at`) VALUES
(1, 1, 'laravel_session', 'Kevron Suites and Apartments (First-Party)', 'Maintains basic secure session state for room booking forms, active checkouts, and guest dashboard authentication.', '2 Hours', 'HTTP Cookie', 'first-party', 1, 0, 1, '2026-06-04', '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(2, 1, 'XSRF-TOKEN', 'Kevron Suites and Apartments (First-Party)', 'Provides essential security validation to protect all guest form submissions from cross-site request forgery attacks.', '2 Hours', 'HTTP Cookie', 'first-party', 1, 0, 1, '2026-06-04', '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(3, 1, 'kevron_cookie_consent', 'Kevron Suites and Apartments (First-Party)', 'Stores your granular cookie categories consent choice, preventing the banner from repeating on every page load.', '1 Year', 'HTTP Cookie', 'first-party', 1, 0, 1, '2026-06-04', '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(4, 2, 'kevron_theme', 'Kevron Suites and Apartments (First-Party)', 'Saves preferred luxury theme accent colors and active dark mode settings.', 'Persistent', 'HTML Local Storage', 'first-party', 0, 1, 1, '2026-06-04', '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(5, 2, 'kevron_accessibility', 'Kevron Suites and Apartments (First-Party)', 'Saves font size overrides and accessibility options configured by the guest.', 'Persistent', 'HTML Local Storage', 'first-party', 0, 1, 1, '2026-06-04', '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(6, 3, '_ga', 'Google Analytics (Third-Party)', 'Collects anonymous statistics on page views, guest journeys, and navigation patterns to optimize room listings.', '2 Years', 'HTTP Cookie', 'third-party', 0, 1, 1, '2026-06-04', '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(7, 3, '_gid', 'Google Analytics (Third-Party)', 'Groups unique user actions within a single calendar day to create high-level behavior dashboards.', '24 Hours', 'HTTP Cookie', 'third-party', 0, 1, 1, '2026-06-04', '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(8, 4, '_fbp', 'Facebook / Meta (Third-Party)', 'Measures digital return on ad spend and displays relevant executive suite promotions on Meta channels.', '3 Months', 'HTTP Cookie', 'third-party', 0, 1, 1, '2026-06-04', '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(9, 5, 'vuid', 'Vimeo (Third-Party)', 'Remembers visitor player settings and bandwidth configurations for embedded luxury video virtual tours.', '2 Years', 'HTTP Cookie', 'third-party', 0, 1, 1, '2026-06-04', '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `cookie_policies`
--

CREATE TABLE `cookie_policies` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `title` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `summary` text DEFAULT NULL,
  `effective_date` date DEFAULT NULL,
  `last_updated_at` datetime DEFAULT NULL,
  `version` varchar(255) NOT NULL DEFAULT '1.0',
  `status` varchar(255) NOT NULL DEFAULT 'draft',
  `approved_by` varchar(255) DEFAULT NULL,
  `published_at` datetime DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `cookie_policies`
--

INSERT INTO `cookie_policies` (`id`, `title`, `slug`, `summary`, `effective_date`, `last_updated_at`, `version`, `status`, `approved_by`, `published_at`, `created_at`, `updated_at`) VALUES
(1, 'Cookie Policy', 'cookie-policy', 'Learn how Kevron Suites and Apartments uses cookies and similar technologies to support website functionality, booking forms, guest preferences, analytics, security, performance and user experience.', '2026-06-01', '2026-06-04 12:23:13', '1.0', 'published', 'Legal & Compliance Adviser', '2026-06-04 12:23:13', '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `cookie_policy_sections`
--

CREATE TABLE `cookie_policy_sections` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `cookie_policy_id` bigint(20) UNSIGNED NOT NULL,
  `section_key` varchar(255) NOT NULL,
  `heading` varchar(255) NOT NULL,
  `body` text NOT NULL,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `requires_legal_review` tinyint(1) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `cookie_policy_sections`
--

INSERT INTO `cookie_policy_sections` (`id`, `cookie_policy_id`, `section_key`, `heading`, `body`, `sort_order`, `is_active`, `requires_legal_review`, `created_at`, `updated_at`) VALUES
(1, 1, 'introduction', '1. Introduction and Scope', '<p>Kevron Suites and Apartments (\"we\", \"us\", or \"our\") uses cookies and similar technologies (such as local storage, session storage, tracking pixels, tags, browser identifiers, and service worker caches) on our website to ensure secure browsing, optimize booking operations, maintain your guest dashboard session, remember your preferences, and analyze our traffic. This Cookie Policy explains what these technologies are, why we use them, and your absolute rights to manage their application.</p><p>This policy applies to our launch location at <strong>Kevron Suites and Apartments — Adeniyi Jones, Ikeja</strong> (located at 7B Regina Coker Street, Adeniyi Jones / No. 8 Ogunlowo Street, Adeniyi Jones, Ikeja, Lagos 100271, Nigeria), and all online services connected to our domain.</p>', 1, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(2, 1, 'what_are_cookies', '2. What Are Cookies and Similar Technologies?', '<p>Cookies are small text files stored on your browser or device when you visit a website. We also use other storage mechanisms:\n                <ul>\n                    <li><strong>Cookies:</strong> File-based browser tokens (first-party placed directly by us, third-party placed by approved partners).</li>\n                    <li><strong>Local & Session Storage:</strong> Web storage APIs built into your browser that allow websites to store data persistently or during a single browser session.</li>\n                    <li><strong>Tracking Pixels & Tags:</strong> Small transparent images or scripts that register actions such as newsletter clicks or booking completions.</li>\n                    <li><strong>Service Worker Cache:</strong> Essential client-side assets cached to support progressive web app (PWA) offline speed.</li>\n                </ul></p>', 2, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(3, 1, 'why_we_use_cookies', '3. Why We Use Cookies', '<p>We use cookies and associated technologies for several critical purposes:\n                <ul>\n                    <li><strong>Strictly Necessary:</strong> Supporting booking forms, csrf security, guest login sessions, and recording your cookie preference status.</li>\n                    <li><strong>Preferences:</strong> Saving theme (light/dark) states, brand accents, custom font size configurations, and filtered search choices.</li>\n                    <li><strong>Analytics & Performance:</strong> Tracking aggregate visitor journeys, conversion funnel clicks, and general website speed metrics.</li>\n                    <li><strong>Marketing & Remarketing:</strong> Serving tailored advertisements and measuring advertising efficiency across social pixels.</li>\n                    <li><strong>Functional Embeds:</strong> Powering interactive Google Maps, luxury virtual tours, payment gateway steps, and active support/chat widgets.</li>\n                </ul></p>', 3, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(4, 1, 'strictly_necessary', '4. Strictly Necessary Cookies', '<p>These items are required to enable basic features such as secure guest portal authentication, cross-site request forgery (CSRF) safety, and session booking configurations. Because they are vital to operation, they are always active, do not require user opt-in consent, and cannot be individually disabled without breaking website core functions.</p>', 4, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(5, 1, 'preference_cookies', '5. Preference Cookies', '<p>Preference cookies allow our website to remember your selections (such as preferred room layouts, light/dark mode choices, font size scaling, or recently viewed suites). They aim to personalize your luxury browsing experience. These will only load if you explicitly toggle them on in our Preference Centre.</p>', 5, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(6, 1, 'analytics_cookies', '6. Analytics & Performance Cookies', '<p>Analytics cookies collect aggregated statistics about how guests navigate our digital channels, helping us identify speed bottlenecks and refine our booking funnel. In absolute compliance with modern privacy guidelines, analytical trackers are **blocked by default** and will only load after you grant explicit consent.</p>', 6, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(7, 1, 'marketing_cookies', '7. Marketing & Advertising Cookies', '<p>Marketing cookies and social pixels trace visitor actions across websites. They are utilized to measure digital campaign returns and display tailored luxury hospitality advertisements on partner networks (such as Google or Meta). Marketing cookies are strictly **opt-in only** and remain inactive until accepted.</p>', 7, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(8, 1, 'functional_embedded', '8. Functional and Third-Party Embedded Cookies', '<p>Our website incorporates rich widgets to enhance your experience, including Google Maps, video showcases, and payment gateways. These services may set cookies on your browser to track usage metrics or authenticate your profile. We lazily load or restrict these embeds until you consent to functional cookie settings or trigger them manually.</p>', 8, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(9, 1, 'service_worker_pwa', '9. Service Worker & PWA Caching', '<p>To ensure high speed across Nigeria\'s networks, our website employs a Progressive Web App (PWA) service worker. This worker caches static resources (stylesheets, logos, script assets). <strong>Crucially:</strong> The service worker never caches guest dashboard pages, room booking invoices, personal credentials, or payment session logs. You can purge cached assets by clearing your browser cache.</p>', 9, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(10, 1, 'consent_records', '10. Consent Log Auditing & Data Privacy', '<p>To satisfy our legal burden of proof under the Nigeria Data Protection Act (NDPA) 2023, the consent banner automatically records:\n                <ul>\n                    <li>An anonymous consent ID (unique identifier).</li>\n                    <li>The date and time of consent save.</li>\n                    <li>The status of each general category accepted/rejected.</li>\n                    <li>The specific active policy version identifier.</li>\n                </ul>\n                This information is securely stored inside our database and is never exposed publicly. It is maintained solely for data protection compliance auditing.</p>', 10, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(11, 1, 'how_to_manage', '11. How to Manage and Withdraw Cookie Preferences', '<p>You possess absolute sovereignty over your cookie settings. You can review and change your options at any time:\n                <ul>\n                    <li><strong>Preference Centre:</strong> Click the \"Manage Cookie Preferences\" link present in the footer of any page to open the settings panel and adjust toggles.</li>\n                    <li><strong>Browser Settings:</strong> You can configure your browser to reject all third-party cookies, clear existing cookies, or warn you before a cookie is placed. Note that blocking necessary cookies will impair your ability to complete online bookings or log into your guest account.</li>\n                </ul></p>', 11, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(12, 1, 'privacy_relationship', '12. Relationship with Privacy Policy', '<p>Some cookies process identifiers that are classified as personal data. This Cookie Policy operates in close alignment with our comprehensive <a href=\"/privacy-policy\" class=\"text-royal-blue underline hover:text-sky-cyan transition-colors\">Privacy Policy</a>, which describes how we collect, store, protect, and share your personal data at Kevron Suites and Apartments.</p>', 12, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(13, 1, 'contact_information', '13. Contact for Cookie and Privacy Enquiries', '<p>If you have questions regarding our use of cookies or wish to file a inquiry, please contact our administrative desk:\n                <ul>\n                    <li><strong>Email:</strong> privacy@kevronapartments.com</li>\n                    <li><strong>Address:</strong> 7B Regina Coker Street, Adeniyi Jones / No. 8 Ogunlowo Street, Adeniyi Jones, Ikeja, Lagos 100271, Nigeria.</li>\n                    <li><strong>WhatsApp / Phone:</strong> +234 (0) 800-KEVRON-SUITES</li>\n                </ul></p>', 13, 1, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `corporate_booking_status_histories`
--

CREATE TABLE `corporate_booking_status_histories` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `corporate_enquiry_id` bigint(20) UNSIGNED NOT NULL,
  `status` varchar(255) NOT NULL,
  `changed_by` varchar(255) NOT NULL DEFAULT 'system',
  `comment` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `corporate_clients`
--

CREATE TABLE `corporate_clients` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `company_name` varchar(255) NOT NULL,
  `registration_number` varchar(255) DEFAULT NULL,
  `address` text DEFAULT NULL,
  `credit_limit` decimal(12,2) NOT NULL DEFAULT 0.00,
  `billing_cycle` varchar(255) NOT NULL DEFAULT 'monthly',
  `status` varchar(255) NOT NULL DEFAULT 'active',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `corporate_contacts`
--

CREATE TABLE `corporate_contacts` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `corporate_client_id` bigint(20) UNSIGNED NOT NULL,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `phone` varchar(255) NOT NULL,
  `department` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `corporate_deposit_rules`
--

CREATE TABLE `corporate_deposit_rules` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `corporate_enquiry_id` int(11) DEFAULT NULL,
  `company_name` varchar(255) NOT NULL,
  `deposit_waiver_allowed` tinyint(1) NOT NULL DEFAULT 0,
  `custom_deposit_amount` decimal(12,2) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `corporate_enquiries`
--

CREATE TABLE `corporate_enquiries` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `company_name` varchar(255) NOT NULL,
  `contact_person` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `phone` varchar(255) NOT NULL,
  `check_in` date NOT NULL,
  `check_out` date DEFAULT NULL,
  `guests_count` int(11) NOT NULL,
  `message` text DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `corporate_guest_lists`
--

CREATE TABLE `corporate_guest_lists` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `company_name` varchar(255) NOT NULL,
  `corporate_contact_person` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `arrival_date` date DEFAULT NULL,
  `departure_date` date DEFAULT NULL,
  `number_of_guests` int(11) NOT NULL DEFAULT 1,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `corporate_guest_list_items`
--

CREATE TABLE `corporate_guest_list_items` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `corporate_guest_list_id` bigint(20) UNSIGNED NOT NULL,
  `guest_name` varchar(255) NOT NULL,
  `email` varchar(255) DEFAULT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `apartment_unit` varchar(255) DEFAULT NULL,
  `verification_status` varchar(255) NOT NULL DEFAULT 'pending',
  `verified_at` datetime DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `corporate_quotes`
--

CREATE TABLE `corporate_quotes` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `corporate_enquiry_id` bigint(20) UNSIGNED DEFAULT NULL,
  `quote_number` varchar(255) NOT NULL,
  `total_amount` decimal(12,2) NOT NULL,
  `validity_date` date NOT NULL,
  `terms` text DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'draft',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `corporate_rate_requests`
--

CREATE TABLE `corporate_rate_requests` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `corporate_client_id` bigint(20) UNSIGNED DEFAULT NULL,
  `company_name` varchar(255) NOT NULL,
  `contact_person` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `phone` varchar(255) NOT NULL,
  `apartment_type_id` bigint(20) UNSIGNED NOT NULL,
  `target_rate` decimal(12,2) DEFAULT NULL,
  `estimated_monthly_nights` int(11) NOT NULL DEFAULT 0,
  `notes` text DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `corporate_stay_rules`
--

CREATE TABLE `corporate_stay_rules` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `authorized_representative_required` tinyint(1) NOT NULL DEFAULT 1,
  `guest_list_mandatory` tinyint(1) NOT NULL DEFAULT 1,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `corporate_stay_rules`
--

INSERT INTO `corporate_stay_rules` (`id`, `authorized_representative_required`, `guest_list_mandatory`, `is_active`, `created_at`, `updated_at`) VALUES
(1, 1, 1, 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `damage_categories`
--

CREATE TABLE `damage_categories` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `severity_level` varchar(255) NOT NULL DEFAULT 'minor',
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `damage_categories`
--

INSERT INTO `damage_categories` (`id`, `name`, `slug`, `description`, `severity_level`, `is_active`, `created_at`, `updated_at`) VALUES
(1, 'Smart Access & Smart Locks', 'smart-lock', 'Issues involving digital locks, keycards, or gates.', 'moderate', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(2, 'Appliances & Kitchenware', 'kitchen', 'Damage to microwave, refrigerator, blender, or cooker.', 'minor', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(3, 'Entertainment & Systems', 'entertainment', 'Damage to TV screens, sound systems, or Wi-Fi routers.', 'moderate', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(4, 'Furniture & Fixtures', 'furniture', 'Heavy stains or broken structural elements of furniture.', 'major', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(5, 'Structure & CCTV Common Areas', 'cctv-common-areas', 'Damage to outer surveillance cameras, gates, or walls.', 'critical', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(6, 'Laundry & Dryer Equipment', 'laundry', 'Damage to washing machines, iron, or clothes rack.', 'minor', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(7, 'Other Maintenance Incident', 'other', 'General miscellaneous issues.', 'minor', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `damage_deposit_policies`
--

CREATE TABLE `damage_deposit_policies` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `title` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `summary` text DEFAULT NULL,
  `effective_date` date DEFAULT NULL,
  `last_updated_at` datetime DEFAULT NULL,
  `version` varchar(255) NOT NULL DEFAULT '1.0',
  `status` varchar(255) NOT NULL DEFAULT 'draft',
  `approved_by` varchar(255) DEFAULT NULL,
  `published_at` datetime DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `damage_deposit_policies`
--

INSERT INTO `damage_deposit_policies` (`id`, `title`, `slug`, `summary`, `effective_date`, `last_updated_at`, `version`, `status`, `approved_by`, `published_at`, `created_at`, `updated_at`) VALUES
(1, 'Damage and Security Deposit Policy', 'damage-deposit-policy', 'Understand security deposits, check-in and check-out unit condition checklists, physical damage assessments, excessive cleaning fees, evidence storage, and deduction dispute procedures at Kevron Suites and Apartments, Adeniyi Jones, Ikeja.', '2026-06-01', '2026-06-04 12:23:13', '1.0', 'published', 'Legal & Operations Directorate', '2026-06-04 12:23:13', '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `damage_deposit_policy_acceptances`
--

CREATE TABLE `damage_deposit_policy_acceptances` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `user_id` bigint(20) UNSIGNED DEFAULT NULL,
  `guest_id` bigint(20) UNSIGNED DEFAULT NULL,
  `booking_id` bigint(20) UNSIGNED DEFAULT NULL,
  `booking_reference` varchar(255) DEFAULT NULL,
  `damage_deposit_policy_version_id` varchar(255) NOT NULL,
  `policy_title` varchar(255) NOT NULL,
  `acceptance_context` varchar(255) NOT NULL,
  `checkbox_label` varchar(255) NOT NULL,
  `ip_address` varchar(255) DEFAULT NULL,
  `user_agent` varchar(255) DEFAULT NULL,
  `accepted_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `damage_deposit_policy_sections`
--

CREATE TABLE `damage_deposit_policy_sections` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `damage_deposit_policy_id` bigint(20) UNSIGNED NOT NULL,
  `section_key` varchar(255) NOT NULL,
  `heading` varchar(255) NOT NULL,
  `body` text NOT NULL,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `requires_finance_review` tinyint(1) NOT NULL DEFAULT 0,
  `requires_operations_review` tinyint(1) NOT NULL DEFAULT 0,
  `requires_legal_review` tinyint(1) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `damage_deposit_policy_sections`
--

INSERT INTO `damage_deposit_policy_sections` (`id`, `damage_deposit_policy_id`, `section_key`, `heading`, `body`, `sort_order`, `is_active`, `requires_finance_review`, `requires_operations_review`, `requires_legal_review`, `created_at`, `updated_at`) VALUES
(1, 1, 'deposit_purpose', '1. Purpose of the Security Deposit', '<p>The refundable security deposit serves as a protective measure to ensure the preservation of our luxury suites and the comfort of all guests. It is collected to safeguard against physical property damage, missing en-suite inventory, excessive post-departure cleaning requirements, lost smart access keys, or major house rule violations.</p>', 1, 1, 0, 0, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(2, 1, 'standard_rates', '2. Standard Security Deposit Amounts', '<p>Unless otherwise pre-authorized in writing by the corporate coordinators or long-stay contracts, the standard security deposit amounts collected at check-in are:\n                <ul>\n                    <li>₦100,000.00 flat rate per stay for standard bookings.</li>\n                    <li>Extended long-stays (30+ days) and corporate stays may be governed by custom rules allowing staged payments or custom amounts.</li>\n                </ul>\n                This deposit is handled separately from nightly room rates and tax invoices.</p>', 2, 1, 0, 0, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(3, 1, 'inspection_workflow', '3. Pre-Arrival & Post-Departure Inspections', '<p>To guarantee fairness, our operations team conducts two key inspections:\n                <ul>\n                    <li><strong>Pre-Arrival Check-In:</strong> A thorough inventory and condition audit to ensure all smart locks, appliances, televisions, and furniture are in good working order before you receive access.</li>\n                    <li><strong>Post-Departure Check-Out:</strong> An inspection conducted within 24 hours of your checkout. Any issues identified are logged with photographs/video evidence.</li>\n                </ul></p>', 3, 1, 0, 0, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(4, 1, 'cleaning_fees', '4. Excessive Cleaning Assessments', '<p>Standard cleaning is included in your booking fee. However, if a suite is left in a state requiring specialized sanitization, heavy stain removal, odor remediation (e.g. from prohibited indoor smoking), or hazardous waste disposal, an excessive cleaning fee starting at ₦20,000.00 will be deducted from your security deposit.</p>', 4, 1, 0, 0, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(5, 1, 'damage_evidence', '5. Secure Operations and Evidence Storage', '<p>All physical damage reports, inspection checklists, and contractor repair invoices are treated as sensitive data. Photographic and video evidence is securely stored in our restricted operations repository. Guests will be provided with an itemized deduction statement alongside the relevant evidence files if any charges are applied.</p>', 5, 1, 0, 0, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(6, 1, 'refund_timeline', '6. Refund Processing and Timelines', '<p>Upon a successful post-checkout inspection with no damages or breaches noted, your security deposit will be automatically processed for refund. Funds are returned to your card or original bank account within 24 to 48 hours. Depending on banking network transits, please allow 3 to 5 business days for the funds to reflect in your account.</p>', 6, 1, 0, 0, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13'),
(7, 1, 'dispute_procedure', '7. Contest and Dispute Procedures', '<p>If you disagree with a security deposit deduction, you have the right to contest it. You must file a dispute using the secure online dispute form on this page within 7 business days of receiving your deduction notice. All disputes are reviewed by our Legal & Operations Directorate, and a final decision will be communicated within 10 business days.</p>', 7, 1, 0, 0, 0, '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `damage_evidence_media`
--

CREATE TABLE `damage_evidence_media` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `damage_report_id` bigint(20) UNSIGNED DEFAULT NULL,
  `file_path` varchar(255) NOT NULL,
  `file_name` varchar(255) NOT NULL,
  `file_size` int(11) NOT NULL,
  `mime_type` varchar(255) NOT NULL,
  `uploaded_by` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `damage_reports`
--

CREATE TABLE `damage_reports` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED NOT NULL,
  `booking_reference` varchar(255) DEFAULT NULL,
  `guest_id` bigint(20) UNSIGNED DEFAULT NULL,
  `location_id` bigint(20) UNSIGNED DEFAULT NULL,
  `unit_id` bigint(20) UNSIGNED DEFAULT NULL,
  `damage_category_id` bigint(20) UNSIGNED DEFAULT NULL,
  `title` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `estimated_cost` decimal(12,2) NOT NULL DEFAULT 0.00,
  `approved_cost` decimal(12,2) NOT NULL DEFAULT 0.00,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `guest_visible_note` text DEFAULT NULL,
  `internal_note` text DEFAULT NULL,
  `reported_by` varchar(255) DEFAULT NULL,
  `reviewed_by` varchar(255) DEFAULT NULL,
  `reviewed_at` datetime DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `deposit_deductions`
--

CREATE TABLE `deposit_deductions` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `security_deposit_transaction_id` bigint(20) UNSIGNED NOT NULL,
  `damage_report_id` bigint(20) UNSIGNED DEFAULT NULL,
  `deduction_type` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `amount` decimal(12,2) NOT NULL,
  `evidence_summary` text DEFAULT NULL,
  `approved_by` varchar(255) DEFAULT NULL,
  `approved_at` timestamp NULL DEFAULT NULL,
  `guest_notified_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `deposit_disputes`
--

CREATE TABLE `deposit_disputes` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `security_deposit_transaction_id` bigint(20) UNSIGNED NOT NULL,
  `deposit_deduction_id` bigint(20) UNSIGNED DEFAULT NULL,
  `guest_id` bigint(20) UNSIGNED DEFAULT NULL,
  `booking_reference` varchar(255) DEFAULT NULL,
  `dispute_reason` text NOT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'submitted',
  `guest_visible_note` text DEFAULT NULL,
  `internal_note` text DEFAULT NULL,
  `submitted_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `reviewed_by` varchar(255) DEFAULT NULL,
  `reviewed_at` timestamp NULL DEFAULT NULL,
  `closed_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `deposit_rules`
--

CREATE TABLE `deposit_rules` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `apartment_type_id` bigint(20) UNSIGNED DEFAULT NULL,
  `deposit_amount` decimal(12,2) NOT NULL DEFAULT 50000.00,
  `inspection_hours_post_checkout` int(11) NOT NULL DEFAULT 24,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `description` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `deposit_rules`
--

INSERT INTO `deposit_rules` (`id`, `apartment_type_id`, `deposit_amount`, `inspection_hours_post_checkout`, `is_active`, `description`, `created_at`, `updated_at`) VALUES
(1, NULL, 100000.00, 24, 1, 'Standard deposit rule', '2026-06-04 11:23:13', '2026-06-04 11:23:13');

-- --------------------------------------------------------

--
-- Table structure for table `digital_checkins`
--

CREATE TABLE `digital_checkins` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED DEFAULT NULL,
  `booking_reference` varchar(255) NOT NULL,
  `guest_id` bigint(20) UNSIGNED DEFAULT NULL,
  `guest_name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `phone` varchar(255) NOT NULL,
  `arrival_time` varchar(255) DEFAULT NULL,
  `guest_count` int(11) NOT NULL DEFAULT 1,
  `document_path` varchar(255) DEFAULT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'new',
  `special_notes` text DEFAULT NULL,
  `submitted_ip` varchar(255) DEFAULT NULL,
  `expected_arrival_time` datetime DEFAULT NULL,
  `id_verification_status` varchar(255) NOT NULL DEFAULT 'not_submitted',
  `smart_lock_pin` varchar(10) DEFAULT NULL,
  `house_rules_accepted_at` timestamp NULL DEFAULT NULL,
  `privacy_acknowledged_at` timestamp NULL DEFAULT NULL,
  `submitted_at` datetime DEFAULT NULL,
  `approved_by` varchar(255) DEFAULT NULL,
  `approved_at` datetime DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `direction_links`
--

CREATE TABLE `direction_links` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `url` text NOT NULL,
  `icon` varchar(255) DEFAULT NULL,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `direction_links`
--

INSERT INTO `direction_links` (`id`, `name`, `url`, `icon`, `sort_order`, `is_active`, `created_at`, `updated_at`) VALUES
(1, 'Google Maps Directions', 'https://maps.google.com/?q=7B+Regina+Coker+Street,+Adeniyi+Jones,+Ikeja,+Lagos', 'map-pin', 1, 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03'),
(2, 'Apple Maps Directions', 'https://maps.apple.com/?address=7B+Regina+Coker+Street,+Adeniyi+Jones,+Ikeja,+Lagos,+Nigeria', 'navigation', 2, 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03');

-- --------------------------------------------------------

--
-- Table structure for table `document_accessibility_records`
--

CREATE TABLE `document_accessibility_records` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `filename` varchar(255) NOT NULL,
  `doc_type` varchar(255) NOT NULL DEFAULT 'pdf',
  `is_tagged` tinyint(1) NOT NULL DEFAULT 0,
  `has_bookmarks` tinyint(1) NOT NULL DEFAULT 0,
  `status` varchar(255) NOT NULL DEFAULT 'review',
  `verified_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `email_attachments`
--

CREATE TABLE `email_attachments` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `email_log_id` bigint(20) UNSIGNED NOT NULL,
  `file_name` varchar(255) NOT NULL,
  `file_path` varchar(255) NOT NULL,
  `mime_type` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `email_logs`
--

CREATE TABLE `email_logs` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED DEFAULT NULL,
  `recipient_email` varchar(255) NOT NULL,
  `subject` varchar(255) NOT NULL,
  `body` longtext NOT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'queued',
  `error_message` text DEFAULT NULL,
  `sent_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `email_recipients`
--

CREATE TABLE `email_recipients` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `email_log_id` bigint(20) UNSIGNED NOT NULL,
  `email` varchar(255) NOT NULL,
  `type` varchar(255) NOT NULL DEFAULT 'to',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `email_templates`
--

CREATE TABLE `email_templates` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `subject` varchar(255) NOT NULL,
  `body` longtext NOT NULL,
  `plain_text` text DEFAULT NULL,
  `variables` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`variables`)),
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `email_templates`
--

INSERT INTO `email_templates` (`id`, `name`, `subject`, `body`, `plain_text`, `variables`, `created_at`, `updated_at`) VALUES
(1, 'guest_booking_received', 'Booking Request Received - Ref: {{booking_reference}}', '<p>Dear {{guest_name}},</p><p>We have received your reservation request for a luxury <strong>{{apartment_type}}</strong>. Your booking reference is <strong>{{booking_reference}}</strong>.</p><p>Check-in: {{check_in_date}}<br>Check-out: {{check_out_date}}</p><p>Please note that your reservation is currently pending and must be secured with a payment.</p>', NULL, '[\"guest_name\",\"booking_reference\",\"apartment_type\",\"check_in_date\",\"check_out_date\"]', '2026-06-04 11:23:15', '2026-06-04 11:23:15'),
(2, 'guest_payment_successful', 'Booking Confirmed! - Ref: {{booking_reference}}', '<p>Dear {{guest_name}},</p><p>Congratulations! Your online payment of <strong>₦{{amount}}</strong> has been verified. Your stay at <strong>{{apartment_type}}</strong> is fully confirmed.</p><p>Booking Reference: <strong>{{booking_reference}}</strong><br>Check-in: {{check_in_date}}<br>Check-out: {{check_out_date}}</p><p>We look forward to welcoming you.</p>', NULL, '[\"guest_name\",\"booking_reference\",\"amount\",\"apartment_type\",\"check_in_date\",\"check_out_date\"]', '2026-06-04 11:23:15', '2026-06-04 11:23:15'),
(3, 'admin_new_booking', '[Admin Alert] New booking request - Ref: {{booking_reference}}', '<p>Admin Alert: A new booking request <strong>{{booking_reference}}</strong> has been created by guest {{guest_name}}.</p>', NULL, '[\"booking_reference\",\"guest_name\"]', '2026-06-04 11:23:15', '2026-06-04 11:23:15'),
(4, 'admin_payment_successful', '[Admin Alert] Payment Successful - Ref: {{booking_reference}}', '<p>Admin Alert: Payment of ₦{{amount}} has been verified for booking <strong>{{booking_reference}}</strong>.</p>', NULL, '[\"booking_reference\",\"amount\"]', '2026-06-04 11:23:15', '2026-06-04 11:23:15');

-- --------------------------------------------------------

--
-- Table structure for table `emergency_alerts`
--

CREATE TABLE `emergency_alerts` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `location_id` bigint(20) UNSIGNED DEFAULT NULL,
  `title` varchar(255) NOT NULL,
  `message` text NOT NULL,
  `severity` varchar(255) NOT NULL DEFAULT 'low',
  `starts_at` datetime DEFAULT NULL,
  `ends_at` datetime DEFAULT NULL,
  `channels` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`channels`)),
  `is_public` tinyint(1) NOT NULL DEFAULT 1,
  `published_by` varchar(255) DEFAULT NULL,
  `published_at` timestamp NULL DEFAULT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `emergency_contacts`
--

CREATE TABLE `emergency_contacts` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `location_id` bigint(20) UNSIGNED DEFAULT NULL,
  `contact_type` varchar(255) NOT NULL,
  `contact_name` varchar(255) NOT NULL,
  `phone` varchar(255) NOT NULL,
  `whatsapp` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `operating_hours` varchar(255) NOT NULL DEFAULT '24/7',
  `instruction` text DEFAULT NULL,
  `is_public` tinyint(1) NOT NULL DEFAULT 1,
  `is_emergency` tinyint(1) NOT NULL DEFAULT 1,
  `verified_at` timestamp NULL DEFAULT NULL,
  `verified_by` varchar(255) DEFAULT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `emergency_contacts`
--

INSERT INTO `emergency_contacts` (`id`, `location_id`, `contact_type`, `contact_name`, `phone`, `whatsapp`, `email`, `operating_hours`, `instruction`, `is_public`, `is_emergency`, `verified_at`, `verified_by`, `is_active`, `sort_order`, `created_at`, `updated_at`) VALUES
(1, 1, 'police', 'Memabod Police Station (Ikeja)', '+2348030000001', NULL, NULL, '24/7', 'Local police precinct for security concerns and emergency responses near Adeniyi Jones.', 1, 1, '2026-06-04 11:23:14', 'Corporate Security Desk', 1, 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14'),
(2, 1, 'medical', 'Reddington Hospital (Ikeja)', '+2348030000002', NULL, NULL, '24/7', 'Nearest premium emergency medical facility, located within 10 minutes of the property.', 1, 1, '2026-06-04 11:23:14', 'Corporate Medical Desk', 1, 2, '2026-06-04 11:23:14', '2026-06-04 11:23:14'),
(3, 1, 'support', 'Kevron Front Desk Concierge', '+2348030000003', '+2348030000003', 'support@kevronapartments.com', '24/7', 'For property concerns, smart lock issues, appliance guidance, and immediate check-in assistance.', 1, 0, '2026-06-04 11:23:14', 'Operations Desk', 1, 3, '2026-06-04 11:23:14', '2026-06-04 11:23:14'),
(4, 1, 'access', 'Kevron Security Command Center', '+2348030000004', '+2348030000004', 'security@kevronapartments.com', '24/7', 'Direct coordinate desk for visitor control, lockouts, gate verification, and CCTV logs.', 1, 1, '2026-06-04 11:23:14', 'HSE Lead', 1, 4, '2026-06-04 11:23:14', '2026-06-04 11:23:14');

-- --------------------------------------------------------

--
-- Table structure for table `emergency_drill_records`
--

CREATE TABLE `emergency_drill_records` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `location_id` bigint(20) UNSIGNED NOT NULL,
  `drill_type` varchar(255) NOT NULL,
  `drill_date` date NOT NULL,
  `participants_count` int(11) NOT NULL DEFAULT 0,
  `performance_score` decimal(5,2) DEFAULT NULL,
  `notes` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `emergency_drill_records`
--

INSERT INTO `emergency_drill_records` (`id`, `location_id`, `drill_type`, `drill_date`, `participants_count`, `performance_score`, `notes`, `created_at`, `updated_at`) VALUES
(1, 1, 'Fire Evacuation Drill', '2026-05-05', 12, 95.50, 'All simulated occupants evacuated building within 2 minutes 45 seconds. Assembly muster procedures executed correctly.', '2026-06-04 11:23:14', '2026-06-04 11:23:14');

-- --------------------------------------------------------

--
-- Table structure for table `enforcement_actions`
--

CREATE TABLE `enforcement_actions` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `rule_breach_report_id` bigint(20) UNSIGNED NOT NULL,
  `action_type` varchar(255) NOT NULL,
  `action_description` text NOT NULL,
  `charge_amount` decimal(12,2) NOT NULL DEFAULT 0.00,
  `deposit_deduction_amount` decimal(12,2) NOT NULL DEFAULT 0.00,
  `approved_by` varchar(255) DEFAULT NULL,
  `actioned_by` varchar(255) DEFAULT NULL,
  `guest_notified_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `enquiry_types`
--

CREATE TABLE `enquiry_types` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `enquiry_types`
--

INSERT INTO `enquiry_types` (`id`, `name`, `slug`, `is_active`, `sort_order`, `created_at`, `updated_at`) VALUES
(1, 'Booking Enquiry', 'booking', 1, 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(2, 'Availability Enquiry', 'availability', 1, 2, '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(3, 'Guest Support', 'guest_support', 1, 3, '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(4, 'Airport Pickup', 'airport_pickup', 1, 4, '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(5, 'Corporate Stay', 'corporate', 1, 5, '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(6, 'Long Stay', 'long_stay', 1, 6, '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(7, 'General Enquiry', 'general', 1, 7, '2026-06-04 11:23:05', '2026-06-04 11:23:05');

-- --------------------------------------------------------

--
-- Table structure for table `evacuation_maps`
--

CREATE TABLE `evacuation_maps` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `location_id` bigint(20) UNSIGNED NOT NULL,
  `unit_id` bigint(20) UNSIGNED DEFAULT NULL,
  `floor_label` varchar(255) DEFAULT NULL,
  `title` varchar(255) NOT NULL,
  `map_file_path` varchar(255) NOT NULL,
  `assembly_point_id` bigint(20) UNSIGNED DEFAULT NULL,
  `is_public` tinyint(1) NOT NULL DEFAULT 1,
  `is_guest_dashboard_visible` tinyint(1) NOT NULL DEFAULT 1,
  `verified_at` timestamp NULL DEFAULT NULL,
  `verified_by` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `evacuation_maps`
--

INSERT INTO `evacuation_maps` (`id`, `location_id`, `unit_id`, `floor_label`, `title`, `map_file_path`, `assembly_point_id`, `is_public`, `is_guest_dashboard_visible`, `verified_at`, `verified_by`, `created_at`, `updated_at`) VALUES
(1, 1, NULL, 'Ground Floor', 'Block A Ground Floor Evacuation Plan', 'pictures/evacuation-map-block-a.png', 1, 1, 1, '2026-06-04 11:23:14', 'HSE Compliance Lead', '2026-06-04 11:23:14', '2026-06-04 11:23:14');

-- --------------------------------------------------------

--
-- Table structure for table `excessive_cleaning_reports`
--

CREATE TABLE `excessive_cleaning_reports` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `booking_id` bigint(20) UNSIGNED NOT NULL,
  `cleaning_type` varchar(255) NOT NULL,
  `estimated_cost` decimal(12,2) NOT NULL DEFAULT 0.00,
  `description` text NOT NULL,
  `status` varchar(255) NOT NULL DEFAULT 'pending',
  `guest_visible_note` text DEFAULT NULL,
  `internal_note` text DEFAULT NULL,
  `reported_by` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `expansion_plans`
--

CREATE TABLE `expansion_plans` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `title` varchar(255) NOT NULL,
  `body` text NOT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `expansion_plans`
--

INSERT INTO `expansion_plans` (`id`, `title`, `body`, `is_active`, `sort_order`, `created_at`, `updated_at`) VALUES
(1, 'Flagship Launch - Adeniyi Jones, Ikeja', 'Establishing our brand standard with premium 1, 2, 3 and 4 bedroom smart serviced suites, laying the foundation of high-speed Wi-Fi, snooker/PS5 leisure, and security-conscious access near Lagos airports.', 1, 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(2, 'Scalable Reservation & Multi-Property Infrastructure', 'Optimizing our digital booking platform, dynamic corporate billing profiles, sitemaps, and database schemas to scale effortlessly as additional physical sites are brought online.', 1, 2, '2026-06-04 11:23:05', '2026-06-04 11:23:05'),
(3, 'Future Branch Expansion', 'Extending the Kevron Suites and Apartments hospitality standard to high-density executive and commercial transit hubs as the brand grows, strictly adhering to our core positioning.', 1, 3, '2026-06-04 11:23:05', '2026-06-04 11:23:05');

-- --------------------------------------------------------

--
-- Table structure for table `failed_jobs`
--

CREATE TABLE `failed_jobs` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `uuid` varchar(255) NOT NULL,
  `connection` text NOT NULL,
  `queue` text NOT NULL,
  `payload` longtext NOT NULL,
  `exception` longtext NOT NULL,
  `failed_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `faqs`
--

CREATE TABLE `faqs` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `category_id` bigint(20) UNSIGNED NOT NULL,
  `question` text NOT NULL,
  `answer` text NOT NULL,
  `active` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  `slug` varchar(255) DEFAULT NULL,
  `summary` text DEFAULT NULL,
  `is_featured` tinyint(1) NOT NULL DEFAULT 0,
  `is_popular` tinyint(1) NOT NULL DEFAULT 0,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `visibility` varchar(255) NOT NULL DEFAULT 'public',
  `last_reviewed_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `faqs`
--

INSERT INTO `faqs` (`id`, `category_id`, `question`, `answer`, `active`, `created_at`, `updated_at`, `slug`, `summary`, `is_featured`, `is_popular`, `sort_order`, `visibility`, `last_reviewed_at`) VALUES
(1, 1, 'What is the check-in and check-out time?', 'Check-in is at 2:00 PM, and check-out is at 11:00 AM. Early check-in or late check-out is subject to availability and may attract a nominal charge. Please coordinate with our concierge.', 1, '2026-06-04 11:23:00', '2026-06-04 11:23:00', NULL, NULL, 0, 0, 0, 'public', NULL),
(2, 1, 'Do you require a security deposit?', 'Yes, a refundable security deposit of ₦100,000 is required upon check-in to cover any potential damages. This is fully refunded within 24 hours of checkout following a room inspection.', 1, '2026-06-04 11:23:00', '2026-06-04 11:23:00', NULL, NULL, 0, 0, 0, 'public', NULL),
(3, 2, 'How close are you to the Lagos airports?', 'We are approximately 8 minutes to the Local Airport (MM1/MM2) and 15 minutes to the Murtala Muhammed International Airport (MMIA), subject to traffic conditions. We provide airport pickups on request.', 1, '2026-06-04 11:23:00', '2026-06-04 11:23:00', NULL, NULL, 0, 0, 0, 'public', NULL),
(4, 3, 'What security measures are in place?', 'Your safety is our top priority. We feature secured gate controls, keyless entry smart locks, 24/7 CCTV surveillance of external areas, smart intercom doorbells, and are located approximately 3 minutes from the Memabod Police Station.', 1, '2026-06-04 11:23:00', '2026-06-04 11:23:00', NULL, NULL, 0, 0, 0, 'public', NULL),
(5, 4, 'Which apartment is best for a solo traveller?', 'The 1 Bedroom Master Suite is highly recommended for solo business executives or couples seeking premium luxury at a starting nightly price of ₦150,000.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(6, 4, 'Which apartment is best for a small family?', 'The 2 Bedroom Luxury Apartment offers a spacious en-suite family layout, private balconies, fully fitted kitchen, and laundry combo at ₦200,000/night.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(7, 4, 'Which apartment is best for a larger group?', 'The 3 Bedroom and 4 Bedroom Luxury Apartments are best suited for groups, large families, and corporate teams. They include in-suite PS5 console zones and slate-bed snooker tables.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(8, 4, 'Do all apartments have Wi-Fi and 24-hour power?', 'Yes! Every serviced suite at Kevron Suites and Apartments includes uninterrupted 24-hour power backed by dual gen networks and unlimited corporate-grade high-speed Wi-Fi.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(9, 4, 'Is airport pickup available for all apartment types?', 'Absolutely. Airport transit pickup (covering MM1, MM2, and International terminals) can be requested on demand for any apartment type during your reservation process.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(10, 4, 'Can I request a recommendation before booking?', 'Yes. You can use our interactive Ask for Recommendation form on the Compare page to get an instant recommendation or contact our desk on WhatsApp.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(11, 5, 'What can I see in the virtual tour?', 'The virtual tour allows you to inspect en-suite master bedrooms, open-plan lounges, dining setups, fully fitted kitchens, private balconies, and entertainment spaces like the snooker area and PS5 zone.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(12, 5, 'Can I view a specific apartment type?', 'Yes. Simply use our interactive Apartment Selector cards or the clickable interactive floor plan vector to switch directly between different layouts and rooms.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(13, 5, 'What if the 3D tour does not load on my device?', 'We provide a high-fidelity Room Category Fallback Gallery immediately below the tour screen. You can browse high-resolution category photography for all rooms seamlessly.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(14, 5, 'Can I book directly from the virtual tour page?', 'Absolutely. Simply click \"Book Now\" or \"Book This Apartment\" inside any selector card or the media stage overlays to pre-fill that room layout straight into our Booking and Reservation desk.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(15, 5, 'Does the virtual tour work on mobile devices?', 'Yes, our media stage and video controls are completely mobile-responsive. We automatically load specialized compressed walkthrough videos for smooth cellular network loads.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(16, 5, 'Can I reduce animations and heavy rotational camera movements?', 'Yes. Toggle the \"Reduced Motion\" switch in the selector bar to disable active panoramic panning, background zooms, and video auto-plays for maximum readability and visual comfort.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(17, 6, 'What can I see in the photo gallery?', 'Our visual gallery provides high-resolution, database-verified photos of Kevron Suites and Apartments, including exterior facades, open-plan smart lounges, orthopaedic en-suite bedrooms, quartz kitchens, private balconies, and smart lock setups.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(18, 6, 'Are the gallery photos authentic and recent?', 'Yes. All visual media in this gallery displays real, verified, and unedited photography taken at our Adeniyi Jones, Ikeja location, giving you an accurate picture of what to expect.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(19, 6, 'Can I filter photos by a specific suite layout?', 'Yes, our media cards are tagged by suite type. You can click on specific tags or filter by room categories (like Bedrooms, Lounges, and Kitchens) to see custom visual arrangements.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(20, 6, 'Are walk-through video tours available?', 'Yes! Reroute filters to the \"Videos\" category or click video thumbnails inside the gallery grid to load cinema-style HD walk-through guides detailing en-suite comfort.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(21, 6, 'Can I launch a 360° virtual tour from here?', 'Absolutely. Go to the \"360° Tours\" category and click any card to transition directly into our fully interactive en-suite virtual-tour system.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(22, 6, 'Can I book a specific suite directly from the gallery card?', 'Yes. Ranging from grids to lightbox overlays, every media card has dynamic \"Book Now\" links that will pre-fill your chosen suite layout straight into our reservation desk.', 1, '2026-06-04 11:23:01', '2026-06-04 11:23:01', NULL, NULL, 0, 0, 0, 'public', NULL),
(23, 7, 'Does Kevron Suites and Apartments have 24-hour power?', 'Yes! We feature continuous 24-hour power supply. This is fully backed by stable grid connections, a dual-load industrial auto-generator network, and high-capacity inverter setups to make sure you never experience power interruptions.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(24, 7, 'Is Wi-Fi available, and what are the internet speeds?', 'Absolutely! Unlimited corporate-grade high-speed Wi-Fi is included in all rooms and lounges. Our fiber broadband backbone is optimized for remote work, streaming, Zoom meetings, and multi-device connection.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(25, 7, 'Are modern kitchen and private laundry facilities available inside the units?', 'Yes. Every luxury apartment (1 to 4 bedrooms) comes with a fully fitted gourmet kitchen (refrigerator, microwave, gas cooker, extractor, plates, and pots) and private, automatic front-load washing machines and clothes dryers.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(26, 7, 'Is airport pickup transit available?', 'Yes. Airport pickup and drop-off can be arranged on request for a seamless arrival. Chauffeur transit can cover both the local terminals (MM1/MM2) and Murtala Muhammed International Airport (MMIA). You can request this during booking or via our concierge.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(27, 7, 'Is local car rental available?', 'Yes. Chauffeur-driven luxury sedans and premium SUVs are available for daily hire to explore Lagos or attend corporate engagements securely.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(28, 7, 'Are PlayStation 5 consoles and snooker tables available in all apartments?', 'Our professional 8ft slate-bed snooker tables and PlayStation 5 consoles are fully provided inside the 3 Bedroom and 4 Bedroom Luxury Apartments as dedicated in-suite entertainment setups. Guests in other apartments can enjoy smart entertainment platforms.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(29, 7, 'What security features protect guests?', 'Guest safety is our priority. Our facility features secure gated perimeters, contactless keyless entry codes, high-security smart door deadbolts, 24/7 active external CCTV surveillance, and indoor video doorbells to monitor arrivals.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(30, 7, 'Is the property suitable for extended long-term stays?', 'Kevron Suites and Apartments is highly suited for long stays. With fully equipped kitchens, private laundry machines, backup power, unlimited internet, concierge support, and premium security, it delivers a comfortable home-away-from-home experience.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(31, 8, 'How can I request airport pickup transit?', 'You can request airport pickup (covering MM1, MM2, or International terminals) during your reservation checkout or via our dynamic form on this page. Our concierge team will review arrival parameters and allocate an executive vehicle.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(32, 8, 'How does the digital check-in work?', 'Before arriving in Adeniyi Jones, submit your booking reference, guest details, and ID verification on this page. Pre-registering guest details allows us to compile your keyless door PINs in advance, letting you skip front desk checks.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(33, 8, 'Are returning loyalty stay discounts offered?', 'Yes. Returning executives benefit from custom corporate promo codes. Verify your previous reservation reference using our repeat stay form to request discounts on subsequent stays.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(34, 8, 'How quickly are maintenance and housekeeping requests resolved?', 'Concierge and housekeeping services are attended to promptly. Routine maintenance or technical connection issues are resolved by on-site engineers within an hour of submission.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(35, 9, 'Can I request pickup from MM1 or MM2?', 'Yes. We provide dedicated airport transit pickups from both MM1 and MM2 local terminals. Our vetted security drivers will park at terminal parking areas and meet you at the arrival exit corridors.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(36, 9, 'Can I request pickup from Murtala Muhammed International Airport?', 'Absolutely. We provide premium international airport transfer services. Our chauffeurs monitor arriving flights and will hold a personalized nameboard paging sign at the MMIA arrival gate exit terminal.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(37, 9, 'Do I need to provide my flight number?', 'Yes. Providing your exact flight number (e.g. EK 783, QR 1407) is highly recommended. It allows our dispatcher desk to track landing schedules in real-time and coordinate the driver around delays.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(38, 9, 'How is the pickup price calculated?', 'Pricing for airport pickups is competitive and depends on parameters such as terminal type (local vs international), passenger counts, luggage volume, landing hour, and vehicle model choices.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(39, 9, 'Is car rental available with a driver?', 'Yes. All car rental hire packages are fully chauffeur-driven by security-trained local drivers to ensure premium safety and navigation around Lagos routes.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(40, 9, 'Can I request a car for multiple days?', 'Yes. You can hire a vehicle for a single day, several days, or for the entire duration of your Lagos trip. Corporate discount rates apply for long-term car rental terms.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(41, 9, 'How do I know my request is confirmed?', 'After submitting your pickup or car rental request form, our logistics officers will review fleet availability and email a tailored pricing agreement. The service is confirmed once the terms are finalized.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(42, 9, 'Can I request pickup without a booking reference?', 'Yes, you can request transit pickups even before finalizing a reservation. However, linking requests to an active booking reference helps speed up room allocation checks.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(43, 10, 'Can companies book apartments for staff?', 'Yes, companies can book serviced apartments for staff, consultants, executives, and relocation guests. We support flexible single bookings or block group reservations tailored to company requirements.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(44, 10, 'Can we request negotiated corporate rates?', 'Yes. Repeat clients, companies booking regularly, and long-stay guests may request negotiated corporate rates. Rates depend on room nights, stay duration, and volume frequency.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(45, 10, 'Can we book for multiple guests?', 'Absolutely. We coordinate group stays and project teams easily. Our portal enables uploading a group guest roster file to assign individual rooms and prepare terminal transfers.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(46, 10, 'Is company invoice billing available?', 'Company invoice billing is available for approved corporate clients. Direct invoicing is subject to review and credit approval. Bank transfer and card payments are accepted by default.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(47, 10, 'Can airport pickup be arranged for staff?', 'Yes. We coordinate airport pickups from MM1, MM2, and Murtala Muhammed International Airport. Group pickups and professional car rental services with drivers can also be requested.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(48, 10, 'Are long-stay corporate rates available?', 'Yes. Highly competitive extended stay corporate packages are available for weekly or monthly durations, providing substantial savings for relocation guests and project teams.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(49, 10, 'Can we upload a guest list?', 'Yes. The group booking request form supports secure uploads of guest list files in CSV, Excel, or PDF formats. These files are stored in a private directory accessible only to authorized admins.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(50, 10, 'Is there dedicated corporate support?', 'Yes. Verified companies and high-volume corporate accounts are assigned a dedicated relations coordinator to handle reservation tweaks, priority billing, and arrival assistance.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(51, 11, 'Are weekly or monthly stays available?', 'Yes. Weekly, monthly, and extended stays are fully supported at Kevron Suites and Apartments, Adeniyi Jones, Ikeja. We provide substantial savings for guests staying longer than a week.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(52, 11, 'Are weekly/monthly rates displayed?', 'Approved weekly and monthly rates are displayed dynamically or are available on request, depending on apartment type, stay duration, season, and guest volume.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(53, 11, 'Is a deposit required for long stays?', 'Yes, a deposit and a refundable security deposit are standard requirements to secure extended stay bookings and cover any eventual unit maintenance.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(54, 11, 'Are cleaning and housekeeping included?', 'Regular cleaning, fresh linen and towel replacement, and maintenance check-ups are included in long-stay agreements, with flexible frequencies.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(55, 11, 'Can I extend my stay?', 'Stay extensions are supported but are subject to unit availability. We recommend informing your coordinator at least 7 to 10 days before checkout.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(56, 11, 'Can companies book long stays for staff?', 'Absolutely. We regularly manage extended relocations, engineering project teams, and consultants for registered companies, supporting consolidated billing.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(57, 11, 'Are visitors allowed?', 'Visitors are allowed subject to security clearance and house rules regarding noise, parking, and maximum overnight occupancy limits.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(58, 11, 'Is airport pickup available for long-stay guests?', 'Yes, professional airport transit and private chauffeur car rental services can be easily added to your extended stay request.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(59, 11, 'Can I request car rental during my stay?', 'Yes, executive sedan or SUV rentals with dedicated drivers can be coordinated through our transit concierge.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(60, 11, 'Is Wi-Fi and 24-hour power available?', 'Yes, unlimited broadband Wi-Fi and 24-hour power backed by heavy-duty dual generators are fully guaranteed in all suites.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(61, 12, 'Are offers and packages always available?', 'Offers and packages are subject to apartment availability and strict season guidelines. Certain promotions may have blackout periods or minimum stay limits.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(62, 12, 'Can I combine multiple stay offers?', 'No. Unless explicitly approved by Kevron management in writing, promotional rates and discount codes cannot be combined for a single reservation.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(63, 12, 'Are weekly/monthly long-stay discounts available?', 'Yes. Extended stay monthly plans can be configured dynamically. Please submit a request on our Long Stay page or contact our whatsapp stays desk.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(64, 12, 'How do I claim a repeat guest offer?', 'Simply select the Repeat Guest Loyalty package on the form and enter your previous booking reference (e.g., KEV-B-123456). Our coordinator will verify it and apply your discount.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(65, 12, 'Do seasonal offers have blackout dates?', 'Yes. High-demand holiday periods (like Christmas Eve, Christmas Day, or New Year Eve) may be flagged as blackout blocks, where standard corporate pricing rules apply.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(66, 12, 'How do promo codes work at Kevron Suites?', 'You can validate your active coupon code directly on our detail offers screen. Once validated, the discount is automatically applied to your direct booking invoice.', 1, '2026-06-04 11:23:02', '2026-06-04 11:23:02', NULL, NULL, 0, 0, 0, 'public', NULL),
(67, 13, 'Where is Kevron Suites and Apartments located?', 'We are located at 7B Regina Coker Street, Adeniyi Jones, Ikeja / No. 8 Ogunlowo Street, Adeniyi Jones, Ikeja, Lagos 100271, Nigeria. This premium location sits within a highly secure residential perimeter on the Lagos mainland.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(68, 13, 'How far is it from MM1 and MM2?', 'We are approximately 8 minutes away from the local airport terminals (MM1 and MM2), subject to traffic conditions.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(69, 13, 'How far is it from Murtala Muhammed International Airport?', 'We are approximately 15 minutes away from the Murtala Muhammed International Airport (MMIA), subject to traffic conditions.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(70, 13, 'Is the property close to Ikeja City Mall?', 'Yes. The premium Ikeja City Mall (containing Shoprite, major international brands, cinemas, and food courts) is located approximately 8 minutes away, subject to traffic.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(71, 13, 'Are there restaurants nearby?', 'Absolutely. Sitting along the upscale Adeniyi Jones boulevard, our apartments are close to numerous continental and local restaurants, eateries, bars, and cafes.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(72, 13, 'Is it suitable for business travellers?', 'Yes, our serviced suites are exceptionally configured for solo executives, consultants, corporate project teams, and relocation guests. We provide 24-hour stable power, high-speed Wi-Fi, laundry utilities, private balconies, and dedicated workspaces.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(73, 13, 'Is airport pickup available?', 'Yes. Premium chauffeur airport pickup from both local (MM1/MM2) and international (MMIA) terminals can be coordinated on request.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(74, 13, 'Can I rent a car during my stay?', 'Yes. Chauffeur-driven executive car rentals (complete with security-trained professional local drivers) are available on request to facilitate your movements across Lagos.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(75, 13, 'What security features are available?', 'Security-controlled access, keyless smart locks, 24/7 CCTV perimeter camera coverage, and intercom video doorbell systems support a controlled guest environment. We are also located approximately 3 minutes away from the Memabod Police Station.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(76, 3, 'Does the property have smart locks?', 'Yes, Kevron Suites and Apartments features advanced keyless smart locks on every apartment door. Guests receive unique digital access codes upon check-in, which expire automatically at checkout.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(77, 3, 'Is there CCTV coverage?', 'Yes, we maintain active CCTV coverage in relevant access gates, perimeters, common corridors, and parking areas to support a secure and controlled property environment.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(78, 3, 'Are private rooms monitored by CCTV?', 'Absolutely not. Guest privacy remains paramount. CCTV monitoring strictly covers relevant common, parking, gate, and access areas, and is never installed inside private apartment suites, bedrooms, or private quarters.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(79, 3, 'Is visitor management available?', 'Yes. To maintain a quiet, secure, and family-friendly environment, all non-resident visitors are logged at the entrance security gate and must be authorized by resident guests.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(80, 3, 'Is the property suitable for families?', 'Yes, our combination of controlled facility access, quiet hours, keyless apartment deadbolts, and secure smart video doorbells makes the property highly suitable and reassuring for families.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(81, 3, 'Is it suitable for executives and corporate travellers?', 'Undoubtedly. Corporate guests benefit from 24-hour backup stable power, unlimited broadband Wi-Fi, secure keyless entry, and transport pickup configurations that support high-productivity business travel.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(82, 3, 'Is there a nearby police station?', 'Yes, Memabod Police Station is located approximately 3 minutes away from the Adeniyi Jones facility branch, subject to traffic parameters.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(83, 3, 'How do guests report issues?', 'Guests can log check-in concerns, smart lock updates, or maintenance requests directly through their guest portal check-in tool, or contact our 24-hour support coordinators via the WhatsApp Concierge Desk.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(84, 14, 'Does Kevron Suites and Apartments use LED lighting?', 'Yes, Kevron Suites and Apartments utilizes energy-efficient LED lighting where installed across our Adeniyi Jones, Ikeja branch to support practical energy resource management.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(85, 14, 'Are the appliances energy-efficient?', 'Yes, we equip our serviced apartments with modern kitchen, laundry, and climate appliances selected for balanced, energy-conscious consumption where available.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(86, 14, 'How can guests support responsible utility use?', 'Guests can contribute to utility conservation by switching off split air conditioning units when leaving, turning off unused lights, and ensuring taps are fully closed after use.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(87, 14, 'Is solar power available?', 'Solar energy backup arrays are part of our future sustainability plan and may be introduced in upcoming facility expansions where operationally feasible.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(88, 14, 'Is waste management available?', 'Structured waste separation and recycling streams are under review as a future sustainability plan subject to local management adoption.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(89, 14, 'Can guests report leaks or faulty appliances?', 'Absolutely. We encourage guests to report any leaking taps, running toilets, or appliance concerns immediately through our dynamic online Guest Services maintenance ticketing hub or via the WhatsApp support desk.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(90, 14, 'Is sustainability part of future expansion?', 'Yes, as Kevron Suites and Apartments grows, additional responsible resource initiatives—including smart energy controls and water-saving fixtures—will be reviewed for implementation.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(91, 15, 'Are reviews on this page genuine?', 'Yes. All reviews published on our website are submitted by genuine guests who have checked out of Kevron Suites and Apartments. We do not seed or display fake guest feedback as approved public reviews.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(92, 15, 'Can I leave a review after checkout?', 'Absolutely. Checked-out guests are encouraged to share their feedback after their stay using our online submission form or by clicking the review link sent to their registered email.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(93, 15, 'Do I need a booking reference to review?', 'While providing a booking reference is highly recommended to confirm authenticity and obtain a \"Verified Stay\" badge, you can submit a review with basic booking details for administrative verification.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(94, 15, 'Can I submit category ratings?', 'Yes, our guest review form allows you to submit individual ratings across key categories including cleanliness, comfort, location, security, service, and value.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(95, 15, 'Are reviews published immediately?', 'No. All submitted reviews are reviewed before publication to prevent spam, offensive content, or private information from appearing publicly. Approved reviews are displayed using the guest’s public display name or initials.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(96, 15, 'Can I submit a video testimonial?', 'Yes. If you wish to submit a video testimonial, please let our team know. Approved video testimonials are featured in our media section and includes transcripts for accessibility.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(97, 15, 'Can Google reviews be displayed?', 'Yes, when official integration is active and configured, verified Google reviews from our Google Business Profile are displayed alongside our direct website guest feedback.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(98, 15, 'Can I request that my name is hidden?', 'Absolutely. You can request to publish your review under an initials format or custom display name to protect your private booking details.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', NULL, NULL, 0, 0, 0, 'public', NULL),
(99, 16, 'How do I book an apartment?', 'You can secure your booking directly through our secure online reservation portal by navigating to the <a href=\"/booking\" class=\"text-royal-blue hover:underline\">booking page</a>. Alternatively, you can contact our reservation desk via telephone or WhatsApp. Confirmation is immediate once payment is processed and verified by our management team.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'how-do-i-book-an-apartment', 'You can secure your booking directly through our secure online reservation portal by navigating to t...', 1, 1, 0, 'public', '2026-06-04 11:23:03'),
(100, 16, 'Can I check availability before booking?', 'Yes, our online system provides real-time calendar updates for all suites. Simply select your check-in and check-out dates on our <a href=\"/apartments\" class=\"text-royal-blue hover:underline\">Apartments page</a> to view active availability. You can also message our front desk to query customized combinations or specific block bookings.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-check-availability-before-booking', 'Yes, our online system provides real-time calendar updates for all suites. Simply select your check-...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(101, 16, 'Can I book a specific apartment type?', 'Absolutely. We offer several beautifully configured units including our 1 Bedroom Master Suite, 2 Bedroom Luxury, 3 Bedroom Luxury, and 4 Bedroom Luxury apartments. Your reservation guarantees the selected apartment category, subject to policy and final management confirmation.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-book-a-specific-apartment-type', 'Absolutely. We offer several beautifully configured units including our 1 Bedroom Master Suite, 2 Be...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(102, 16, 'Can I book through WhatsApp?', 'Yes, we provide direct WhatsApp booking assistance for your convenience. You can initiate a chat with our guest relations team to discuss availability, request special layouts, and secure your booking invoice directly via instant messaging.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-book-through-whatsapp', 'Yes, we provide direct WhatsApp booking assistance for your convenience. You can initiate a chat wit...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(103, 16, 'Do I receive a booking confirmation?', 'Yes, once your booking request is successfully submitted and payment is received, an automated confirmation email containing your booking reference, summary invoice, and arrival instructions is generated. Please retain this email for checking-in on arrival.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'do-i-receive-a-booking-confirmation', 'Yes, once your booking request is successfully submitted and payment is received, an automated confi...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(104, 17, 'What payment methods are accepted?', 'We accept direct bank transfers, credit/debit cards (via our Flutterwave secure gateway), and corporate invoicing billing. All bank transfers require proof of payment upload and verified host confirmations.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:13', 'what-payment-methods-are-accepted', 'Accepted payment methods at Kevron.', 1, 1, 1, 'public', '2026-06-04 11:23:13'),
(105, 17, 'Can I pay a deposit?', 'Yes, a reservation deposit is required to secure block bookings or extended stays, subject to our booking policies. The balance payment must be fully settled prior to check-in. For standard daily rentals, full prepayment is required.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-pay-a-deposit', 'Yes, a reservation deposit is required to secure block bookings or extended stays, subject to our bo...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(106, 17, 'Can I upload proof of bank transfer?', 'Yes. If you make a direct bank transfer, you can upload your proof of payment through our portal or send it directly to our reservation WhatsApp channel. Once our finance department verifies the receipt, your reservation status will be updated to confirmed.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-upload-proof-of-bank-transfer', 'Yes. If you make a direct bank transfer, you can upload your proof of payment through our portal or...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(107, 17, 'Do I receive an invoice or receipt?', 'Yes, an official VAT invoice and receipt are issued electronically for every booking. If you require a specialized corporate billing invoice, please provide your company details during the booking process or contact our finance team.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'do-i-receive-an-invoice-or-receipt', 'Yes, an official VAT invoice and receipt are issued electronically for every booking. If you require...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(108, 17, 'Are there extra charges?', 'No hidden charges apply. Our base rates include utility costs, 24-hour backup power, high-speed Wi-Fi, and standard housekeeping. Optional add-ons such as airport pickup, car rentals, or laundry services are billed separately on request.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-there-extra-charges', 'No hidden charges apply. Our base rates include utility costs, 24-hour backup power, high-speed Wi-F...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(109, 18, 'What time is check-in and check-out?', 'Our standard check-in time is from 2:00 PM, and standard check-out is by 12:00 PM (noon). These timings ensure our housekeeping team has sufficient time to sanitize and prepare the apartments to our premium standards. Early check-in or late check-out is subject to availability and prior management approval.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'what-time-is-check-in-and-check-out', 'Our standard check-in time is from 2:00 PM, and standard check-out is by 12:00 PM (noon). These timi...', 1, 1, 0, 'public', '2026-06-04 11:23:03'),
(110, 18, 'Can I share my arrival time before check-in?', 'Yes, we highly encourage all guests to communicate their estimated arrival time at least 24 hours in advance. This helps our guest relations officers coordinate a seamless greeting, key handover, and smart-lock setup.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-share-my-arrival-time-before-check-in', 'Yes, we highly encourage all guests to communicate their estimated arrival time at least 24 hours in...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(111, 18, 'Is digital check-in available?', 'Yes, where configured, digital check-in can be completed prior to your arrival by uploading your valid identification documents. Upon arrival, you will receive your smart access codes or physical keys directly from the duty supervisor.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'is-digital-check-in-available', 'Yes, where configured, digital check-in can be completed prior to your arrival by uploading your val...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(112, 18, 'What information is required before arrival?', 'All checking-in guests must present a valid government-issued photo identity card, passport, or driver’s license. In compliance with security standards, primary guest registration details must be completed before apartment access is granted.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'what-information-is-required-before-arrival', 'All checking-in guests must present a valid government-issued photo identity card, passport, or driv...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(113, 18, 'Can I request early check-in or late checkout?', 'Early check-in and late check-out requests are subject to availability and cannot be guaranteed in advance. To guarantee early access or extended departures, guests are advised to book an additional night. Additional fees may apply based on hours requested.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-request-early-check-in-or-late-checkout', 'Early check-in and late check-out requests are subject to availability and cannot be guaranteed in a...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(114, 19, 'Can I cancel my booking?', 'Yes, bookings can be cancelled in accordance with the specific terms outlined during reservation. Cancellations made within our free-cancellation window qualify for refunds, subject to policy guidelines. Please refer to our <a href=\"/policies\" class=\"text-royal-blue hover:underline\">Policies page</a> for precise cancellation terms.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-cancel-my-booking', 'Yes, bookings can be cancelled in accordance with the specific terms outlined during reservation. Ca...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(115, 19, 'Can I modify my booking dates?', 'Modifications to booking dates can be requested, subject to availability and seasonal rate adjustments. Any change requests should be submitted at least 48 hours prior to check-in. Date modifications are not fully guaranteed and require official management confirmation.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-modify-my-booking-dates', 'Modifications to booking dates can be requested, subject to availability and seasonal rate adjustmen...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(116, 19, 'Can I extend my stay?', 'Stay extensions are welcome and are subject to apartment availability and current rates. We recommend notifying our reception desk as early as possible if you wish to extend your stay to prevent your suite from being booked by another guest.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-extend-my-stay', 'Stay extensions are welcome and are subject to apartment availability and current rates. We recommen...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(117, 19, 'Can I upgrade my apartment?', 'Yes, upgrades to larger suites (e.g. from a 1 Bedroom to a 2 or 3 Bedroom Luxury Apartment) can be requested at check-in or during your stay, subject to availability. Guests must cover the rate difference as outlined in our pricing structure.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-upgrade-my-apartment', 'Yes, upgrades to larger suites (e.g. from a 1 Bedroom to a 2 or 3 Bedroom Luxury Apartment) can be r...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(118, 19, 'How do refunds work?', 'Eligible refunds are processed using the original payment channel where possible or via bank transfer, subject to bank clearance times. Administrative charges may apply depending on the booking platform and cancellation timeline. Refunds are executed within 7 to 14 business days.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'how-do-refunds-work', 'Eligible refunds are processed using the original payment channel where possible or via bank transfe...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(119, 29, 'Where is Kevron Suites and Apartments located?', 'We are located in Adeniyi Jones, Ikeja, Lagos, Nigeria at 7B Regina Coker Street / No. 8 Ogunlowo Street, Lagos 100271.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:05', 'where-is-kevron-suites-and-apartments-located', 'We are situated in the premium residential and commercial hub of Adeniyi Jones, Ikeja, Lagos, Nigeri...', 1, 0, 5, 'public', '2026-06-04 11:23:03'),
(120, 20, 'How far is the apartment from Lagos airport?', 'The property is centrally located in Ikeja, approximately 15 to 25 minutes drive from the Murtala Muhammed International Airport (LOS) and the Domestic Terminal. Travel times may vary depending on local traffic conditions. We recommend planning your airport transit ahead of time.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'how-far-is-the-apartment-from-lagos-airport', 'The property is centrally located in Ikeja, approximately 15 to 25 minutes drive from the Murtala Mu...', 1, 1, 0, 'public', '2026-06-04 11:23:03'),
(121, 20, 'Is it close to Ikeja City Mall?', 'Yes, Kevron Suites and Apartments is within close proximity to Ikeja City Mall (Shoprite), which is about a 10 to 15-minute drive away. The mall offers excellent access to shopping, supermarkets, cinemas, restaurants, and various lifestyle brands.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'is-it-close-to-ikeja-city-mall', 'Yes, Kevron Suites and Apartments is within close proximity to Ikeja City Mall (Shoprite), which is...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(122, 20, 'Are there eateries nearby?', 'Yes, Adeniyi Jones is renowned for a diverse range of restaurants, fast-food chains, cafes, and local dining options. Most eateries are within short walking distance or a brief drive, and standard food delivery services operate actively in our area.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-there-eateries-nearby', 'Yes, Adeniyi Jones is renowned for a diverse range of restaurants, fast-food chains, cafes, and loca...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(123, 20, 'Is the location suitable for business travellers?', 'Absolutely. Being in Ikeja, the capital city of Lagos, our apartments offer seamless access to government offices, corporate headquarters, business hubs, and transport links. Coupled with our high-speed Wi-Fi, it is the ideal setup for executives.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'is-the-location-suitable-for-business-travellers', 'Absolutely. Being in Ikeja, the capital city of Lagos, our apartments offer seamless access to gover...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(124, 21, 'Is the property secure?', 'Security is our utmost priority at Kevron. We employ robust smart living structures, including 24/7 uniformed guards, controlled facility access, perimeter protection, and high-level structural integrity. Our location is in a highly secure residential pocket of Adeniyi Jones. Learn more on our <a href=\"/security-smart-living\" class=\"text-royal-blue hover:underline\">smart security page</a>.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'is-the-property-secure', 'Security is our utmost priority at Kevron. We employ robust smart living structures, including 24/7...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(125, 21, 'Are smart locks available?', 'Yes, all our luxury apartments are equipped with high-grade electronic smart locks. Guests receive unique access codes upon verification, ensuring secure keyless entry and complete peace of mind during their stay.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-smart-locks-available', 'Yes, all our luxury apartments are equipped with high-grade electronic smart locks. Guests receive u...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(126, 21, 'Is there CCTV coverage?', 'Yes, we maintain 24-hour CCTV camera surveillance in public access points, corridors, parking zones, and external perimeters. In strict compliance with privacy standards, no cameras are located inside any private apartment rooms or bathrooms.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'is-there-cctv-coverage', 'Yes, we maintain 24-hour CCTV camera surveillance in public access points, corridors, parking zones,...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(127, 21, 'Are private rooms monitored by CCTV?', 'No. CCTV surveillance is strictly limited to common outdoor spaces, corridors, and entrance points to protect facility safety. Your private suite, bedrooms, and bathrooms have absolute privacy and are never monitored.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-private-rooms-monitored-by-cctv', 'No. CCTV surveillance is strictly limited to common outdoor spaces, corridors, and entrance points t...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(128, 21, 'Is there a nearby police station?', 'Yes, our properties are located within close reach of local security forces, including the Ikeja Police Command. We also maintain active tie-ins with private security response services to handle any rare security escalations.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'is-there-a-nearby-police-station', 'Yes, our properties are located within close reach of local security forces, including the Ikeja Pol...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(129, 22, 'Is there 24-hour power and Wi-Fi?', 'Yes, we provide uninterrupted 24-hour power backup supported by solar systems, soundproof backup generators, and inverter setups. Complimentary high-speed fiber-optic Wi-Fi is active throughout the entire building and available to all checked-in guests.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'is-there-24-hour-power-and-wi-fi', 'Yes, we provide uninterrupted 24-hour power backup supported by solar systems, soundproof backup gen...', 1, 1, 0, 'public', '2026-06-04 11:23:03'),
(130, 22, 'Is high-speed internet available?', 'Yes, we host high-speed, multi-provider broadband internet in every apartment. The system is designed to support remote working, high-definition video conferencing, corporate VPNs, and streaming services smoothly.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'is-high-speed-internet-available', 'Yes, we host high-speed, multi-provider broadband internet in every apartment. The system is designe...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(131, 22, 'Are kitchen and laundry facilities available?', 'Yes, each apartment features a fully equipped kitchen complete with a refrigerator, microwave oven, gas stove, and essential cookware. Washing machines or professional dry-cleaning arrangements are also available on request.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-kitchen-and-laundry-facilities-available', 'Yes, each apartment features a fully equipped kitchen complete with a refrigerator, microwave oven,...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(132, 22, 'Are PS5 and snooker available?', 'Yes, where configured or requested, we offer access to recreational amenities such as a snooker table and PlayStation 5 (PS5) setups in designated entertainment zones. Please check availability with our front desk.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-ps5-and-snooker-available', 'Yes, where configured or requested, we offer access to recreational amenities such as a snooker tabl...', 0, 0, 0, 'public', '2026-06-04 11:23:03');
INSERT INTO `faqs` (`id`, `category_id`, `question`, `answer`, `active`, `created_at`, `updated_at`, `slug`, `summary`, `is_featured`, `is_popular`, `sort_order`, `visibility`, `last_reviewed_at`) VALUES
(133, 22, 'Are balconies available?', 'Yes, several of our premium 2, 3, and 4-bedroom apartments feature lovely private balconies. These spaces offer peaceful views of the residential Adeniyi Jones neighborhood and are perfect for morning coffee or fresh air.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-balconies-available', 'Yes, several of our premium 2, 3, and 4-bedroom apartments feature lovely private balconies. These s...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(134, 23, 'Can I request airport pickup?', 'Yes, we offer premium airport pickup and drop-off services on request. To guarantee this service, please share your flight details, passenger count, and arrival time with our guest relations officers at least 48 hours prior to your landing.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-request-airport-pickup', 'Yes, we offer premium airport pickup and drop-off services on request. To guarantee this service, pl...', 1, 1, 0, 'public', '2026-06-04 11:23:03'),
(135, 23, 'Can I request car rental?', 'Yes, we can coordinate professional car rental services with experienced drivers for your daily commutes in Lagos. You can select from standard sedans, luxury SUVs, or larger utility vans to match your travel needs.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-request-car-rental', 'Yes, we can coordinate professional car rental services with experienced drivers for your daily comm...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(136, 23, 'Is airport pickup included in the apartment price?', 'Airport pickup is billed as an optional add-on service and is not included in the base nightly apartment rental price, unless explicitly specified in a promotional packages deal. Pricing is determined on request based on car selection.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'is-airport-pickup-included-in-the-apartment-price', 'Airport pickup is billed as an optional add-on service and is not included in the base nightly apart...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(137, 23, 'What details are needed for airport pickup?', 'We require your complete flight number, airline name, estimated landing time, primary guest name, and the number of luggage items. This information allows our professional driver to track your flight and time the greeting perfectly.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'what-details-are-needed-for-airport-pickup', 'We require your complete flight number, airline name, estimated landing time, primary guest name, an...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(138, 23, 'Can corporate guests request staff pickup?', 'Yes, we specialize in organizing group transit or executive shuttles for corporate teams arriving in Lagos. Let our booking manager coordinate multiple airport arrivals or dedicated daily routes for your staff.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-corporate-guests-request-staff-pickup', 'Yes, we specialize in organizing group transit or executive shuttles for corporate teams arriving in...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(139, 24, 'Are parties allowed?', 'In order to preserve the serene, secure, and professional environment of Kevron Suites and Apartments, strictly no parties, loud social gatherings, or loud musical setups are permitted inside the apartments or common spaces. Violation of this rule may lead to immediate eviction without refund.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-parties-allowed', 'In order to preserve the serene, secure, and professional environment of Kevron Suites and Apartment...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(140, 24, 'Is smoking allowed?', 'All our indoor apartments are strictly smoke-free. Guests who wish to smoke are requested to use designated outdoor spaces or private balconies, ensuring all doors and windows to the apartment interior remain closed.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'is-smoking-allowed', 'All our indoor apartments are strictly smoke-free. Guests who wish to smoke are requested to use des...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(141, 24, 'Are visitors allowed?', 'Registered guests are permitted to host visitors within reasonable hours, subject to security verification at the main gate. In compliance with safety regulations, visitors staying overnight must register formally with the front desk and present valid ID.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-visitors-allowed', 'Registered guests are permitted to host visitors within reasonable hours, subject to security verifi...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(142, 24, 'Are pets allowed?', 'To maintain an allergen-free environment for all our guests, pets are generally not permitted on the premises. Special exceptions for service dogs may be considered, subject to prior administrative approval and house rules.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-pets-allowed', 'To maintain an allergen-free environment for all our guests, pets are generally not permitted on the...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(143, 24, 'Are quiet hours enforced?', 'Yes, quiet hours are observed between 10:00 PM and 7:00 AM daily. We ask all guests to keep television and music volumes at considerate levels to ensure all residents enjoy a peaceful and restful stay.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-quiet-hours-enforced', 'Yes, quiet hours are observed between 10:00 PM and 7:00 AM daily. We ask all guests to keep televisi...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(144, 25, 'Can I book weekly or monthly?', 'Yes, we provide highly flexible extended stay programs for guests looking to stay weekly, monthly, or longer. We offer premium serviced living with full amenities, ensuring a comfortable home-away-from-home experience in Ikeja. Read more on our <a href=\"/long-stay-serviced-apartments-ikeja\" class=\"text-royal-blue hover:underline\">long stay page</a>.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-book-weekly-or-monthly', 'Yes, we provide highly flexible extended stay programs for guests looking to stay weekly, monthly, o...', 1, 1, 0, 'public', '2026-06-04 11:23:03'),
(145, 25, 'Are weekly/monthly rates available?', 'Yes, we offer discounted, negotiated tier rates for extended bookings. Weekly and monthly discount parameters depend on the season and suite choice. Please connect with our sales team to receive a tailored long-stay invoice.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-weeklymonthly-rates-available', 'Yes, we offer discounted, negotiated tier rates for extended bookings. Weekly and monthly discount p...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(146, 25, 'Is a deposit required for long stays?', 'Yes, a refundable security deposit and a partial upfront booking payment are required to lock in extended long-term rentals. This security deposit is held against damages and fully refunded upon checkout inspection.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'is-a-deposit-required-for-long-stays', 'Yes, a refundable security deposit and a partial upfront booking payment are required to lock in ext...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(147, 25, 'Can I extend my long stay?', 'Yes, stay extensions are welcome, but we require a minimum of 7 days notice prior to your scheduled check-out date. Extensions are subject to suite availability and current seasonal rates.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-i-extend-my-long-stay', 'Yes, stay extensions are welcome, but we require a minimum of 7 days notice prior to your scheduled...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(148, 25, 'Are housekeeping and maintenance support available?', 'Yes, all long-stay reservations include regular housekeeping service, sheet changes, and 24/7 maintenance response. Our on-site supervisors ensure your apartment remains in top-tier condition throughout your residency.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'are-housekeeping-and-maintenance-support-available', 'Yes, all long-stay reservations include regular housekeeping service, sheet changes, and 24/7 mainte...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(149, 26, 'Can a company book for staff?', 'Yes, corporate organizations can reserve suites for staff, business partners, or relocated executives. We provide corporate-compliant billing, guest lists management, and customized hospitality arrangements. Learn more on our <a href=\"/corporate-stays\" class=\"text-royal-blue hover:underline\">corporate bookings hub</a>.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-a-company-book-for-staff', 'Yes, corporate organizations can reserve suites for staff, business partners, or relocated executive...', 1, 1, 0, 'public', '2026-06-04 11:23:03'),
(150, 26, 'Can we request invoice billing?', 'Yes, we offer official corporate invoice billing options for pre-approved corporate accounts. We require an official purchase order or a letter of authority from your company’s finance director to activate credit/invoice pathways.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-we-request-invoice-billing', 'Yes, we offer official corporate invoice billing options for pre-approved corporate accounts. We req...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(151, 26, 'Can we upload a guest list?', 'Yes, our corporate booking portal enables companies to submit lists of arriving team members. Our front office handles pre-registration, room allocations, and coordinated arrivals for the entire delegation.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-we-upload-a-guest-list', 'Yes, our corporate booking portal enables companies to submit lists of arriving team members. Our fr...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(152, 26, 'Can we request negotiated rates?', 'Yes. For companies with recurring booking volumes or extended project timelines in Lagos, we can draft a Corporate Rate Agreement offering fixed discounted rates throughout the fiscal year.', 1, '2026-06-04 11:23:03', '2026-06-04 11:23:03', 'can-we-request-negotiated-rates', 'Yes. For companies with recurring booking volumes or extended project timelines in Lagos, we can dra...', 0, 0, 0, 'public', '2026-06-04 11:23:03'),
(153, 26, 'Can we book for project teams?', 'Absolutely. We offer multi-room block bookings, allowing your project teams to reside in adjacent units within the same secure building, fostering collaboration while preserving individual privacy.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'can-we-book-for-project-teams', 'Absolutely. We offer multi-room block bookings, allowing your project teams to reside in adjacent un...', 0, 0, 0, 'public', '2026-06-04 11:23:04'),
(154, 27, 'Is there a security deposit?', 'Yes, a refundable security deposit is required at check-in to cover any accidental damages to the property, furniture, or smart appliances. The deposit amount depends on the apartment size and length of stay.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'is-there-a-security-deposit', 'Yes, a refundable security deposit is required at check-in to cover any accidental damages to the pr...', 0, 0, 0, 'public', '2026-06-04 11:23:04'),
(155, 27, 'What happens if there is damage?', 'In the rare event that accidental damage occurs, please notify our front desk immediately. Our maintenance team will assess the repair or replacement cost based on market values, and this cost will be deducted from your deposit.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'what-happens-if-there-is-damage', 'In the rare event that accidental damage occurs, please notify our front desk immediately. Our maint...', 0, 0, 0, 'public', '2026-06-04 11:23:04'),
(156, 27, 'How are damages assessed?', 'Damages are assessed fairly by our facility management team using standard replacement and repair cost schedules. Guests are invited to participate in the inspection and discuss any assessments openly with our supervisor.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'how-are-damages-assessed', 'Damages are assessed fairly by our facility management team using standard replacement and repair co...', 0, 0, 0, 'public', '2026-06-04 11:23:04'),
(157, 27, 'Is the security deposit refundable?', 'Yes, the security deposit is fully refundable upon checkout, following a successful joint inspection of the suite showing no damages, structural issues, or missing inventory. Refunds are typically processed instantly at checkout.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'is-the-security-deposit-refundable', 'Yes, the security deposit is fully refundable upon checkout, following a successful joint inspection...', 0, 0, 0, 'public', '2026-06-04 11:23:04'),
(158, 27, 'Are guests responsible for visitors?', 'Yes. Primary registered guests are fully liable and responsible for the behavior and actions of any visitors they host on the property. Any damages caused by visitors will be charged against the primary guest’s security deposit.', 1, '2026-06-04 11:23:04', '2026-06-04 11:23:04', 'are-guests-responsible-for-visitors', 'Yes. Primary registered guests are fully liable and responsible for the behavior and actions of any...', 0, 0, 0, 'public', '2026-06-04 11:23:04'),
(159, 28, 'What is Kevron Suites and Apartments?', 'Kevron Suites and Apartments is a premium serviced-apartment brand starting from Adeniyi Jones, Ikeja, Lagos, offering luxury 1, 2, 3 and 4 bedroom serviced apartments with smart living, guest support, airport access and a future multi-location expansion structure.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'what-is-kevron-suites-and-apartments', NULL, 0, 1, 0, 'public', NULL),
(160, 28, 'Where is the first location?', 'Our flagship branch is located at 7B Regina Coker Street, Adeniyi Jones, Ikeja and No. 8 Ogunlowo Street, Adeniyi Jones, Ikeja, Lagos, Nigeria. This premium location is highly accessible and strategically positioned close to commercial zones, eateries, police support, and airports.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'where-is-the-first-location', NULL, 0, 1, 1, 'public', NULL),
(161, 28, 'What apartment types are available?', 'We offer four luxury en-suite configurations: 1 Bedroom Master Suites (from ₦150k/night), 2 Bedroom Luxury Apartments (from ₦200k/night), 3 Bedroom Luxury Apartments featuring PlayStation 5 and snooker tables (from ₦250k/night), and 4 Bedroom Luxury Apartments (from ₦300k/night).', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'what-apartment-types-are-available', NULL, 0, 1, 2, 'public', NULL),
(162, 28, 'Who is the accommodation suitable for?', 'Our premium serviced suites are designed to support corporate business executives, families visiting Lagos, project teams, relocation and expatriate guests, long-stay visitors, and travelers desiring more privacy and space than a standard hotel room offers.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'who-is-the-accommodation-suitable-for', NULL, 0, 1, 3, 'public', NULL),
(163, 28, 'Is airport pickup available?', 'Yes, pre-arranged, secure airport pickup transfers covering domestic (MM1/MM2) and international (MMIA) airport terminals can be coordinated with standard sedans or executive SUVs during your booking process.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'is-airport-pickup-available', NULL, 0, 1, 4, 'public', NULL),
(164, 28, 'Can companies book for staff?', 'Absolutely. We offer dedicated corporate accounts, VAT invoicing, corporate rates, and streamlined digital check-in to make staff, expatriate, and business consultant bookings seamless and transparent.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'can-companies-book-for-staff', NULL, 0, 1, 5, 'public', NULL),
(165, 28, 'Is the brand expanding to more locations?', 'Yes. Kevron is engineered as a scalable, multi-location serviced-apartment brand. The Adeniyi Jones, Ikeja property is our premier branch, and our booking systems are built to support future properties and expansion plans as we grow.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'is-the-brand-expanding-to-more-locations', NULL, 0, 1, 6, 'public', NULL),
(166, 28, 'How can I book?', 'You can search live availability and book directly on our website at /booking, or reach out to our guest services team directly on WhatsApp for custom rates or long-stay enquiries.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'how-can-i-book', NULL, 0, 1, 7, 'public', NULL),
(167, 29, 'How can I contact Kevron Suites and Apartments?', 'You can contact our executive concierge desk via the general contact form, by calling +234 813 163 2926, emailing info@kevronapartments.com, or direct WhatsApp quick chat.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'how-can-i-contact-kevron-suites-and-apartments', NULL, 1, 0, 1, 'public', NULL),
(168, 29, 'Can I enquire about availability before booking?', 'Absolutely! Simply navigate to the Booking Enquiry tab on this page, enter your check-in/out dates, guest counts, and preferred suite, and our booking coordinator will verify availability.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'can-i-enquire-about-availability-before-booking', NULL, 1, 0, 2, 'public', NULL),
(169, 29, 'Can I request airport pickup through the Contact page?', 'Yes, our booking enquiry form has a dedicated checkbox for airport pickup requests, or you can message us directly on WhatsApp with your flight details.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'can-i-request-airport-pickup-through-the-contact-page', NULL, 1, 0, 3, 'public', NULL),
(170, 29, 'Can companies enquire through this page?', 'Yes! We provide a dedicated Corporate Enquiry tab for B2B corporate staff stay accounts, VAT invoice billing, and direct guest list spreadsheet uploads.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'can-companies-enquire-through-this-page', NULL, 1, 0, 4, 'public', NULL),
(171, 29, 'Can I get directions from the Contact page?', 'Yes, you can click \"Get Directions\" on this page to view our dynamic coordinates or link to the location and neighborhood guide.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'can-i-get-directions-from-the-contact-page', NULL, 1, 0, 6, 'public', NULL),
(172, 29, 'What are the support hours?', 'General bookings and B2B corporate stay enquiries are processed Monday-Friday (9 AM - 6 PM), while WhatsApp guest support operates 24/7.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'what-are-the-support-hours', NULL, 1, 0, 7, 'public', NULL),
(173, 29, 'Can I message on social media?', 'Yes! You can reach out to us on Instagram, Facebook, TikTok, or LinkedIn company pages.', 1, '2026-06-04 11:23:05', '2026-06-04 11:23:05', 'can-i-message-on-social-media', NULL, 1, 0, 8, 'public', NULL),
(174, 30, 'Can I cancel my booking online?', 'Yes. Direct booking guests can request stay cancellations through their guest dashboard or by contacting our booking host desk with their unique reservation reference.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 0, 'public', NULL),
(175, 30, 'Will I get a full refund if I cancel?', 'Cancellations made 5+ days prior to scheduled check-in qualify for a full base stay refund (excluding security deposits). Cancellations between 2 to 5 days before check-in receive a 50% refund, while cancellations within 48 hours are non-refundable.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 0, 'public', NULL),
(176, 30, 'How is the security deposit refunded?', 'The security deposit (₦100,000.00 standard) is fully separate from stay pricing. It is released within 24 to 48 hours following checkout inspection, provided no damage or policy breaches are recorded.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 0, 'public', NULL),
(177, 30, 'How long does a refund take to process?', 'Approved refunds are processed through the original payment route. Standard gateway validations and corporate sign-offs require between 7 to 14 business days to post successfully.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 0, 'public', NULL),
(178, 30, 'Can I change my stay dates instead of cancelling?', 'Yes. Date modifications, room category upgrades, or guest count adjustments can be filed on your guest dashboard. Modifications are subject to suite availability and base rate differences.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 0, 'public', NULL),
(179, 30, 'Can I cancel an airport pickup or car rental?', 'Airport pickup requests can be cancelled free of charge up to 24 hours prior to scheduled flight landing. Executive car rentals require 48 hours advance notice to waive standby charges.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 0, 'public', NULL),
(180, 31, 'What personal data does Kevron Suites and Apartments collect?', 'We collect identity details (name, official ID), contact credentials (email, phone/WhatsApp), reservation details (booking dates, special requests), financial proofs (transfer screenshots), and technical metadata (cookies, server logs) required to facilitate and secure your stay.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 1, 'public', NULL),
(181, 31, 'Do you store my full credit card details?', 'No. All online credit/debit card transactions are processed directly through authorized, PCI-DSS compliant payment gateways. We never save or store your full card number or CVV on our database.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 2, 'public', NULL),
(182, 31, 'How secure are my uploaded guest identification documents?', 'Extremely secure. All uploaded ID documents (passports, driver\'s licenses) are stored in encrypted, private system directories that are inaccessible to the public. Only high-level administrative supervisors have permission-controlled access to verify these files.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 3, 'public', NULL),
(183, 31, 'Is CCTV used inside the guest rooms?', 'Absolutely not. For guest safety, CCTV surveillance cameras are strictly restricted to external perimeters, gates, hallways, staircases, and common lobby areas. We never monitor private rooms, bedrooms, or suites.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 4, 'public', NULL),
(184, 31, 'How can I submit a privacy request or delete my personal data?', 'You can request data access, correction, or erasure by completing the interactive Data Privacy Request Form on our Privacy Policy page. Our compliance officer will verify your identity and process your request within 30 days.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 5, 'public', NULL),
(185, 32, 'What are cookies and why does Kevron use them?', 'Cookies are small text files placed on your browser. Kevron Suites and Apartments uses them to maintain secure session states (csrf, booking lists), remember luxury preferences (theme, accessibility), and evaluate statistical navigation patterns to keep our systems fast and reliable.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 0, 'public', NULL),
(186, 32, 'Can I reject non-essential cookies?', 'Absolutely. You can click \"Reject Non-Essential\" on our banner or disable preference, analytics, and marketing categories individually inside our Cookie Preference Centre. Your booking capability will remain fully functional.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 0, 'public', NULL),
(187, 32, 'Are necessary cookies always active?', 'Yes. Strictly necessary cookies (like session tokens and CSRF protection) are mandatory to let you complete reservations, secure your accounts, and record your consent choices. They do not store personal details.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 0, 'public', NULL),
(188, 32, 'Do analytics and marketing cookies load automatically?', 'No. Under the Nigeria Data Protection Act (NDPA) 2023, cookies for Google Analytics, Meta Pixels, and third-party tracking scripts remain completely blocked until you explicitly opt-in.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 0, 'public', NULL),
(189, 32, 'How can I change my cookie preferences later?', 'You can change your choices at any time by clicking the \"Manage Cookie Preferences\" link located in the footer of our website. This instantly launches the Preference Centre modal to update your toggles.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 0, 'public', NULL),
(190, 32, 'Can I purge cookies already saved in my browser?', 'Yes. You can clear cookies, local storage, and cached service worker assets through your browser settings panel. Be aware that purging cookies will require you to log back into your guest portal.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', NULL, NULL, 0, 0, 0, 'public', NULL),
(191, 17, 'Is a deposit required?', 'Yes, a refundable security deposit of ₦100,000 is required at check-in to cover potential en-suite damage, missing inventories, or policy breaches, as detailed in our Payment Policy.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', 'is-a-deposit-required', 'Seeding deposit details.', 0, 0, 2, 'public', '2026-06-04 11:23:13'),
(192, 33, 'How long does it take to get my security deposit back?', 'Following a successful checkout inspection with no damages or policy violations detected, refunds are authorized within 24 to 48 hours. Depending on your bank network, it may take 3 to 5 business days to appear on your bank statement.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', 'how-long-does-it-take-to-get-my-security-deposit-back', 'Deposit refund processing timelines.', 1, 1, 1, 'public', '2026-06-04 11:23:13'),
(193, 33, 'What happens if I accidentally break something during my stay?', 'Please report any accidental damage immediately using our secure online reporting form on the policy page. Honest and prompt reports help us resolve repairs quickly, and we only charge the actual repair or replacement cost of the item.', 1, '2026-06-04 11:23:13', '2026-06-04 11:23:13', 'what-happens-if-i-accidentally-break-something-during-my-stay', 'Handling accidental en-suite damage.', 0, 0, 2, 'public', '2026-06-04 11:23:13'),
(194, 34, 'Why do I need to provide government-issued identification?', 'We require identification to protect our guests and community, verify that the check-in matches the payment record, manage keyless access passcodes securely, and comply with standard Nigerian lodging security frameworks.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 1, 'public', NULL),
(195, 34, 'What government identification types are accepted?', 'We accept National ID/NIN slips, Voter\'s Cards, Driver\'s Licences, and valid International Passports. All documents must be original, current, and clear.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 2, 'public', NULL),
(196, 34, 'Can I upload my ID before arriving?', 'Yes! We highly recommend completing our secure digital pre-check-in form on the public policy page or within your Guest Dashboard to receive your lock codes ahead of time.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 3, 'public', NULL),
(197, 34, 'Is my ID document stored securely and privately?', 'Absolutely. Uploaded files are stored in private system directories (`storage/app/secure/guest-ids`) that cannot be accessed from public URLs. Sensitive numbers are fully encrypted using NDPA-compliant database cast features.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 4, 'public', NULL),
(198, 34, 'How long does Kevron retain my ID record?', 'Under our standard data retention rule, private government ID files are automatically deleted 30 days after check-out, ensuring minimal data retention.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 5, 'public', NULL),
(199, 3, 'What numbers should I call in a life-threatening emergency?', 'For immediate life-threatening emergency assistance in Lagos, dial 112 or 767. Once emergency services have been contacted, please immediately notify our concierge desk.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 0, 'public', NULL),
(200, 3, 'What should I do if the fire alarm sounds?', 'Leave your apartment immediately. Do not stop to gather personal belongings. Use the closest emergency staircase. Do not use the lifts or elevators.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 0, 'public', NULL),
(201, 3, 'Where is the safe assembly point located?', 'The designated safe muster assembly point is located in the main open-air parking lot, clearly marked with a green muster sign.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 0, 'public', NULL),
(202, 3, 'What happens if I get locked out of my suite?', 'Please use the video intercom or contact the 24/7 front desk. For safety and compliance reasons, our staff will verify your guest identity matching your check-in records before resetting or overriding your keyless smart lock.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 0, 'public', NULL),
(203, 3, 'Are there CCTV cameras in private rooms?', 'Absolutely not. CCTV cameras are installed exclusively in public common corridors, elevator lobbies, gate perimeters, and common spaces. Your private bedrooms, living quarters, and private suites are strictly CCTV-free.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 0, 'public', NULL),
(204, 35, 'Can I use the website with keyboard navigation?', 'Yes. All interactive links, buttons, date selection tools, and form fields on our website can be fully operated using standard keyboard navigation (Tab, Enter, Space, and Escape keys) with visible focus rings.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 0, 'public', NULL),
(205, 35, 'Are 3D virtual tours required to book a stay?', 'No. All essential reservation steps, suite pricing, layouts, and amenities are fully accessible through standard static views and accessible descriptions. 3D virtual tours are optional interactive media.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 0, 'public', NULL),
(206, 35, 'Can I reduce animations and transition motion?', 'Yes. Our website respects your operating system reduced-motion selections. High-GPU GSAP animations, overlays, and transitions are automatically suppressed if your settings restrict motion.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 0, 'public', NULL),
(207, 35, 'Can I request physical accessibility support before booking?', 'Absolutely. You can submit our pre-booking Accessibility Support Request form to specify wheelchair ramp access, low-floor suites, en-suite grab bars, or elderly arrival assistance. A host officer will verify details for you.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 0, 'public', NULL),
(208, 35, 'Are third-party payment gates fully accessible?', 'Certain third-party checkout gateways may contain keyboard navigation limitations. If you face any barrier completing your payment online, please contact us for alternative bank transfer payment coordinates.', 1, '2026-06-04 11:23:14', '2026-06-04 11:23:14', NULL, NULL, 0, 0, 0, 'public', NULL);

-- --------------------------------------------------------

--
