-- phpMyAdmin SQL Dump -- version 5.2.1 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 -- Generation Time: Jan 11, 2026 at 12:02 AM -- Server version: 10.4.32-MariaDB -- PHP Version: 8.2.12 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `rovo_estate` -- -- -------------------------------------------------------- -- -- Table structure for table `activity_logs` -- CREATE TABLE `activity_logs` ( `id` bigint(20) UNSIGNED NOT NULL, `user_id` int(10) UNSIGNED DEFAULT NULL, `action` varchar(100) NOT NULL, `entity_type` varchar(50) DEFAULT NULL, `entity_id` int(10) UNSIGNED DEFAULT NULL, `description` text DEFAULT NULL, `ip_address` varchar(45) DEFAULT NULL, `user_agent` text DEFAULT NULL, `metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)), `created_at` timestamp NOT NULL DEFAULT current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Dumping data for table `activity_logs` -- INSERT INTO `activity_logs` (`id`, `user_id`, `action`, `entity_type`, `entity_id`, `description`, `ip_address`, `user_agent`, `metadata`, `created_at`) VALUES (1, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-08 09:38:04'), (2, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-08 12:56:01'), (3, 1, 'create_admin', 'user', 2, 'Admin user created: admin@admin.com', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-08 13:17:39'), (4, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-08 21:30:22'), (5, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-08 21:31:07'), (6, 1, 'create_admin', 'user', 3, 'Admin user created: junior@admin.com', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-08 21:54:16'), (7, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-09 00:27:27'), (8, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-09 00:35:10'), (9, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-09 15:28:43'), (10, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-09 19:20:55'), (11, 1, 'create_admin', 'user', 6, 'Admin user created: mohy@mailinator.com', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-09 19:41:21'), (12, 1, 'create_admin', 'user', 8, 'Admin user created: lamyne@mailinator.com', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-09 19:50:08'), (13, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-09 19:57:30'), (14, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-09 21:02:30'), (15, 2, 'login', 'user', 2, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-09 23:04:34'), (16, 1, 'logout', 'user', 1, 'User logged out', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-09 23:23:33'), (17, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-09 23:37:28'), (18, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-10 11:18:52'), (19, 1, 'logout', 'user', 1, 'User logged out', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-10 22:04:09'), (20, 9, 'register', 'user', 9, 'User registered', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-10 22:05:55'), (21, 9, 'login', 'user', 9, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-10 22:06:11'), (22, 9, 'login', 'user', 9, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-10 22:06:12'), (23, 9, 'logout', 'user', 9, 'User logged out', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-10 22:17:15'), (24, 1, 'login', 'user', 1, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-10 22:17:34'), (25, 1, 'logout', 'user', 1, 'User logged out', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-10 22:36:57'), (26, 9, 'login', 'user', 9, 'User logged in', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', NULL, '2026-01-10 22:37:14'); -- -------------------------------------------------------- -- -- Table structure for table `admin_permissions` -- CREATE TABLE `admin_permissions` ( `id` int(10) UNSIGNED NOT NULL, `admin_id` int(10) UNSIGNED NOT NULL, `can_create` tinyint(1) DEFAULT 0, `can_edit` tinyint(1) DEFAULT 0, `can_delete` tinyint(1) DEFAULT 0, `can_view` tinyint(1) DEFAULT 1, `can_manage_users` tinyint(1) DEFAULT 0, `can_manage_payments` tinyint(1) DEFAULT 0, `can_manage_properties` tinyint(1) DEFAULT 0, `can_verify_documents` tinyint(1) DEFAULT 0, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Dumping data for table `admin_permissions` -- INSERT INTO `admin_permissions` (`id`, `admin_id`, `can_create`, `can_edit`, `can_delete`, `can_view`, `can_manage_users`, `can_manage_payments`, `can_manage_properties`, `can_verify_documents`, `created_at`, `updated_at`) VALUES (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, '2026-01-08 09:23:30', '2026-01-08 09:23:30'), (2, 1, 1, 1, 1, 1, 1, 1, 1, 1, '2026-01-08 09:48:42', '2026-01-08 09:48:42'), (3, 2, 1, 1, 0, 1, 0, 1, 1, 1, '2026-01-08 13:17:39', '2026-01-08 13:17:39'), (4, 3, 0, 0, 0, 1, 0, 0, 0, 0, '2026-01-08 21:54:15', '2026-01-08 21:54:15'), (5, 6, 0, 0, 0, 1, 0, 0, 0, 0, '2026-01-09 19:41:20', '2026-01-09 19:41:20'), (6, 8, 0, 0, 0, 1, 0, 0, 0, 0, '2026-01-09 19:50:08', '2026-01-09 19:50:08'); -- -------------------------------------------------------- -- -- Table structure for table `blog_posts` -- CREATE TABLE `blog_posts` ( `id` int(10) UNSIGNED NOT NULL, `title` varchar(255) NOT NULL, `slug` varchar(255) NOT NULL, `content` text NOT NULL, `excerpt` text DEFAULT NULL, `featured_image` varchar(255) DEFAULT NULL, `category` varchar(100) DEFAULT NULL, `tags` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`tags`)), `author_id` int(10) UNSIGNED NOT NULL, `status` enum('draft','published','archived') DEFAULT 'draft', `published_at` datetime DEFAULT NULL, `views` int(11) DEFAULT 0, `meta_title` varchar(255) DEFAULT NULL, `meta_description` text DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Dumping data for table `blog_posts` -- INSERT INTO `blog_posts` (`id`, `title`, `slug`, `content`, `excerpt`, `featured_image`, `category`, `tags`, `author_id`, `status`, `published_at`, `views`, `meta_title`, `meta_description`, `created_at`, `updated_at`) VALUES (1, 'ttttttttttttttttttt', 'ttttttttttttttttttt', 'Amet ad ut sit sus', 'Et sed commodi lorem', '', 'Rerum eveniet sit', '[\"Ut eveniet ea molli\"]', 1, 'draft', NULL, 0, 'Est nulla veniam a', 'Qui consectetur nece', '2026-01-09 23:47:26', '2026-01-09 23:48:51'); -- -------------------------------------------------------- -- -- Table structure for table `building_materials` -- CREATE TABLE `building_materials` ( `id` int(10) UNSIGNED NOT NULL, `name` varchar(255) NOT NULL, `slug` varchar(255) NOT NULL, `category_id` int(10) UNSIGNED DEFAULT NULL, `description` text DEFAULT NULL, `price` decimal(15,2) DEFAULT NULL, `unit` varchar(50) DEFAULT NULL, `stock_quantity` int(11) DEFAULT 0, `min_order_quantity` int(11) DEFAULT 1, `specifications` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`specifications`)), `images` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`images`)), `status` enum('available','out_of_stock','discontinued','inactive') DEFAULT 'available', `featured` tinyint(1) DEFAULT 0, `views` int(11) DEFAULT 0, `supplier_name` varchar(255) DEFAULT NULL, `supplier_contact` varchar(100) DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `created_by` int(10) UNSIGNED DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `categories` -- CREATE TABLE `categories` ( `id` int(10) UNSIGNED NOT NULL, `name` varchar(100) NOT NULL, `slug` varchar(100) NOT NULL, `type` enum('property','land','material') NOT NULL, `description` text DEFAULT NULL, `icon` varchar(100) DEFAULT NULL, `status` enum('active','inactive') DEFAULT 'active', `display_order` int(11) DEFAULT 0, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Dumping data for table `categories` -- INSERT INTO `categories` (`id`, `name`, `slug`, `type`, `description`, `icon`, `status`, `display_order`, `created_at`, `updated_at`) VALUES (1, 'Houses', 'houses', 'property', 'Residential houses for sale and rent', 'fa-home', 'active', 0, '2026-01-08 09:23:31', '2026-01-08 09:23:31'), (2, 'Apartments', 'apartments', 'property', 'Apartment units', 'fa-building', 'active', 0, '2026-01-08 09:23:31', '2026-01-08 09:23:31'), (3, 'Lands', 'lands', 'land', 'Land parcels for sale', 'fa-map', 'active', 0, '2026-01-08 09:23:31', '2026-01-08 09:23:31'), (4, 'Cement', 'cement', 'material', 'Building cement and related products', 'fa-box', 'active', 0, '2026-01-08 09:23:31', '2026-01-08 09:23:31'), (5, 'Steel', 'steel', 'material', 'Steel rods and construction steel', 'fa-hammer', 'active', 0, '2026-01-08 09:23:31', '2026-01-08 09:23:31'), (6, 'Bricks', 'bricks', 'material', 'Building bricks and blocks', 'fa-th', 'active', 0, '2026-01-08 09:23:31', '2026-01-08 09:23:31'); -- -------------------------------------------------------- -- -- Table structure for table `contact_messages` -- CREATE TABLE `contact_messages` ( `id` int(10) UNSIGNED NOT NULL, `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `phone` varchar(20) DEFAULT NULL, `subject` varchar(255) DEFAULT NULL, `message` text NOT NULL, `status` enum('new','read','replied','archived') DEFAULT 'new', `ip_address` varchar(45) DEFAULT NULL, `replied_by` int(10) UNSIGNED DEFAULT NULL, `replied_at` datetime DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `document_verifications` -- CREATE TABLE `document_verifications` ( `id` int(10) UNSIGNED NOT NULL, `verification_code` varchar(50) NOT NULL, `document_type` enum('survey','deed','coc','building_approval','other') NOT NULL, `property_id` int(10) UNSIGNED DEFAULT NULL, `land_id` int(10) UNSIGNED DEFAULT NULL, `document_path` varchar(255) NOT NULL, `verification_fee` decimal(15,2) NOT NULL DEFAULT 3000.00, `payment_id` int(10) UNSIGNED DEFAULT NULL, `payment_status` enum('unpaid','paid') DEFAULT 'unpaid', `verification_status` enum('pending','verified','failed') DEFAULT 'pending', `verification_notes` text DEFAULT NULL, `verified_by` int(10) UNSIGNED DEFAULT NULL, `verified_at` datetime DEFAULT NULL, `access_count` int(11) DEFAULT 0, `expires_at` datetime DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `lands` -- CREATE TABLE `lands` ( `id` int(10) UNSIGNED NOT NULL, `title` varchar(255) NOT NULL, `slug` varchar(255) NOT NULL, `description` text DEFAULT NULL, `transaction_type` enum('sale','rent','lease') NOT NULL, `price` decimal(15,2) NOT NULL, `size_sqft` int(11) NOT NULL, `address` text NOT NULL, `city` varchar(100) NOT NULL, `state` varchar(100) NOT NULL, `location_area` varchar(255) DEFAULT NULL, `latitude` decimal(10,8) DEFAULT NULL, `longitude` decimal(11,8) DEFAULT NULL, `land_use` varchar(100) DEFAULT NULL, `soil_type` varchar(100) DEFAULT NULL, `topography` varchar(100) DEFAULT NULL, `has_survey` tinyint(1) DEFAULT 0, `survey_number` varchar(100) DEFAULT NULL, `survey_document` varchar(255) DEFAULT NULL, `deed_document` varchar(255) DEFAULT NULL, `coc_document` varchar(255) DEFAULT NULL, `images` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`images`)), `status` enum('available','sold','reserved','inactive') DEFAULT 'available', `featured` tinyint(1) DEFAULT 0, `views` int(11) DEFAULT 0, `verification_status` enum('unverified','pending','verified','rejected') DEFAULT 'unverified', `owner_id` int(10) UNSIGNED DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `created_by` int(10) UNSIGNED DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `notifications` -- CREATE TABLE `notifications` ( `id` int(10) UNSIGNED NOT NULL, `user_id` int(10) UNSIGNED NOT NULL, `type` varchar(50) NOT NULL, `title` varchar(255) NOT NULL, `message` text NOT NULL, `link` varchar(255) DEFAULT NULL, `is_read` tinyint(1) DEFAULT 0, `read_at` datetime DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `password_resets` -- CREATE TABLE `password_resets` ( `id` int(10) UNSIGNED NOT NULL, `user_id` int(10) UNSIGNED NOT NULL, `token` varchar(255) NOT NULL, `expires_at` datetime NOT NULL, `used` tinyint(1) DEFAULT 0, `created_at` timestamp NOT NULL DEFAULT current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `payments` -- CREATE TABLE `payments` ( `id` int(10) UNSIGNED NOT NULL, `transaction_reference` varchar(255) NOT NULL, `user_id` int(10) UNSIGNED NOT NULL, `payment_type` enum('commission','rent','purchase','verification','other') NOT NULL, `related_type` enum('rental_application','property','land','material','document') NOT NULL, `related_id` int(10) UNSIGNED NOT NULL, `amount` decimal(15,2) NOT NULL, `currency` varchar(3) DEFAULT 'NGN', `payment_method` enum('paystack','flutterwave','bank_transfer','ussd','cash') NOT NULL, `gateway_reference` varchar(255) DEFAULT NULL, `gateway_response` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`gateway_response`)), `status` enum('pending','processing','completed','failed','cancelled','refunded') DEFAULT 'pending', `paid_at` datetime DEFAULT NULL, `description` text DEFAULT NULL, `metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)), `ip_address` varchar(45) DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `payrent_applications` -- CREATE TABLE `payrent_applications` ( `id` int(10) UNSIGNED NOT NULL, `application_number` varchar(50) NOT NULL, `user_id` int(10) UNSIGNED NOT NULL, `nin` varchar(11) NOT NULL, `full_name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `phone` varchar(20) NOT NULL, `current_address` text DEFAULT NULL, `property_address` text NOT NULL, `landlord_name` varchar(255) NOT NULL, `annual_rent` decimal(15,2) NOT NULL, `lease_duration` varchar(50) NOT NULL, `payment_frequency` enum('monthly','quarterly','annually') NOT NULL, `comments` text DEFAULT NULL, `status` enum('pending','processing','approved','rejected','active','completed') DEFAULT 'pending', `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `properties` -- CREATE TABLE `properties` ( `id` int(10) UNSIGNED NOT NULL, `title` varchar(255) NOT NULL, `slug` varchar(255) NOT NULL, `description` text DEFAULT NULL, `category_id` int(10) UNSIGNED DEFAULT NULL, `property_type` enum('house','apartment','villa','duplex','bungalow','commercial','other') NOT NULL, `transaction_type` enum('sale','rent','lease') NOT NULL, `price` decimal(15,2) NOT NULL, `yearly_rent` decimal(15,2) DEFAULT NULL, `monthly_rent` decimal(15,2) DEFAULT NULL, `size_sqft` int(11) DEFAULT NULL, `bedrooms` int(11) DEFAULT NULL, `bathrooms` int(11) DEFAULT NULL, `address` text NOT NULL, `city` varchar(100) NOT NULL, `state` varchar(100) NOT NULL, `location_area` varchar(255) DEFAULT NULL, `latitude` decimal(10,8) DEFAULT NULL, `longitude` decimal(11,8) DEFAULT NULL, `features` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`features`)), `amenities` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`amenities`)), `images` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`images`)), `video_url` varchar(255) DEFAULT NULL, `virtual_tour_url` varchar(255) DEFAULT NULL, `floor_plan` varchar(255) DEFAULT NULL, `status` enum('available','sold','rented','pending','inactive') DEFAULT 'available', `featured` tinyint(1) DEFAULT 0, `views` int(11) DEFAULT 0, `verification_status` enum('unverified','pending','verified','rejected') DEFAULT 'unverified', `verification_documents` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`verification_documents`)), `owner_id` int(10) UNSIGNED DEFAULT NULL, `agent_id` int(10) UNSIGNED DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `created_by` int(10) UNSIGNED DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `rental_applications` -- CREATE TABLE `rental_applications` ( `id` int(10) UNSIGNED NOT NULL, `application_number` varchar(50) NOT NULL, `user_id` int(10) UNSIGNED NOT NULL, `package_id` int(10) UNSIGNED DEFAULT NULL, `full_name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `phone` varchar(20) NOT NULL, `date_of_birth` date DEFAULT NULL, `nationality` varchar(100) DEFAULT 'Nigerian', `address` text DEFAULT NULL, `state_of_origin` varchar(100) DEFAULT NULL, `next_of_kin_name` varchar(255) DEFAULT NULL, `next_of_kin_phone` varchar(20) DEFAULT NULL, `bvn` varchar(11) DEFAULT NULL, `nin` varchar(11) DEFAULT NULL, `id_type` varchar(50) DEFAULT NULL, `id_number` varchar(100) DEFAULT NULL, `id_front_image` varchar(255) DEFAULT NULL, `id_back_image` varchar(255) DEFAULT NULL, `passport_photo` varchar(255) DEFAULT NULL, `employment_status` varchar(50) DEFAULT NULL, `company_name` varchar(255) DEFAULT NULL, `company_address` text DEFAULT NULL, `job_title` varchar(255) DEFAULT NULL, `monthly_income` decimal(15,2) DEFAULT NULL, `employment_letter` varchar(255) DEFAULT NULL, `bank_statement` varchar(255) DEFAULT NULL, `business_registration` varchar(255) DEFAULT NULL, `property_id` int(10) UNSIGNED DEFAULT NULL, `property_address` text DEFAULT NULL, `landlord_name` varchar(255) DEFAULT NULL, `annual_rent` decimal(15,2) NOT NULL, `monthly_rent` decimal(15,2) DEFAULT NULL, `commission_amount` decimal(15,2) DEFAULT NULL, `total_monthly_payment` decimal(15,2) DEFAULT NULL, `lease_duration` int(11) DEFAULT NULL, `move_in_date` date DEFAULT NULL, `payment_frequency` enum('monthly','quarterly','annually') DEFAULT NULL, `guarantor1_name` varchar(255) DEFAULT NULL, `guarantor1_relationship` varchar(100) DEFAULT NULL, `guarantor1_phone` varchar(20) DEFAULT NULL, `guarantor1_email` varchar(255) DEFAULT NULL, `guarantor1_address` text DEFAULT NULL, `guarantor1_occupation` varchar(255) DEFAULT NULL, `guarantor1_income` decimal(15,2) DEFAULT NULL, `guarantor2_name` varchar(255) DEFAULT NULL, `guarantor2_relationship` varchar(100) DEFAULT NULL, `guarantor2_phone` varchar(20) DEFAULT NULL, `guarantor2_email` varchar(255) DEFAULT NULL, `guarantor2_address` text DEFAULT NULL, `guarantor2_occupation` varchar(255) DEFAULT NULL, `guarantor2_income` decimal(15,2) DEFAULT NULL, `guarantor_form` varchar(255) DEFAULT NULL, `documents` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`documents`)), `utility_bill` varchar(255) DEFAULT NULL, `status` enum('pending','under_review','documents_requested','approved','rejected','cancelled') DEFAULT 'pending', `payment_status` enum('unpaid','partial','paid','refunded') DEFAULT 'unpaid', `verification_status` enum('unverified','pending','verified','failed') DEFAULT 'unverified', `admin_notes` text DEFAULT NULL, `rejection_reason` text DEFAULT NULL, `terms_accepted` tinyint(1) DEFAULT 0, `bvn_verification_consent` tinyint(1) DEFAULT 0, `data_protection_consent` tinyint(1) DEFAULT 0, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `reviewed_by` int(10) UNSIGNED DEFAULT NULL, `reviewed_at` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `rental_packages` -- CREATE TABLE `rental_packages` ( `id` int(10) UNSIGNED NOT NULL, `name` varchar(100) NOT NULL, `slug` varchar(100) NOT NULL, `description` text DEFAULT NULL, `down_payment_percentage` decimal(5,2) NOT NULL, `commission_percentage` decimal(5,2) NOT NULL DEFAULT 15.00, `duration_months` int(11) NOT NULL, `min_duration` int(11) DEFAULT NULL, `max_duration` int(11) DEFAULT NULL, `features` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`features`)), `eligibility_criteria` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`eligibility_criteria`)), `price_range_min` decimal(15,2) DEFAULT NULL, `price_range_max` decimal(15,2) DEFAULT NULL, `status` enum('active','inactive') DEFAULT 'active', `display_order` int(11) DEFAULT 0, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Dumping data for table `rental_packages` -- INSERT INTO `rental_packages` (`id`, `name`, `slug`, `description`, `down_payment_percentage`, `commission_percentage`, `duration_months`, `min_duration`, `max_duration`, `features`, `eligibility_criteria`, `price_range_min`, `price_range_max`, `status`, `display_order`, `created_at`, `updated_at`) VALUES (1, 'Basic Plan', 'basic-plan', 'Perfect for government officials', 30.00, 15.00, 12, NULL, NULL, '[\"30% Down Payment\", \"6-12 Months Duration\", \"No Agency Fee\", \"Your Job as Guarantor\", \"24/7 Support\"]', '[\"Government employee\", \"Verifiable employment\", \"BVN required\"]', NULL, NULL, 'active', 0, '2026-01-08 09:23:31', '2026-01-08 09:23:31'), (2, 'Standard Plan', 'standard-plan', 'Ideal for private sector workers', 25.00, 15.00, 12, NULL, NULL, '[\"20-30% Down Payment\", \"Flexible Payment Plans\", \"Premium Amenities\", \"Priority Maintenance\", \"24/7 Support\"]', '[\"Private sector employee\", \"Proof of income\", \"BVN required\"]', NULL, NULL, 'active', 0, '2026-01-08 09:23:31', '2026-01-08 09:23:31'), (3, 'Premium Plan', 'premium-plan', 'For executives seeking luxury', 50.00, 15.00, 12, NULL, NULL, '[\"50% Down Payment\", \"Luxury Apartments\", \"Premium Locations\", \"Dedicated Maintenance\", \"24/7 Concierge\"]', '[\"High net worth\", \"Executive level\", \"Excellent credit history\"]', NULL, NULL, 'active', 0, '2026-01-08 09:23:31', '2026-01-08 09:23:31'); -- -------------------------------------------------------- -- -- Table structure for table `rent_payments` -- CREATE TABLE `rent_payments` ( `id` int(10) UNSIGNED NOT NULL, `rental_application_id` int(10) UNSIGNED NOT NULL, `payment_id` int(10) UNSIGNED DEFAULT NULL, `payment_month` varchar(7) NOT NULL, `amount_due` decimal(15,2) NOT NULL, `amount_paid` decimal(15,2) DEFAULT 0.00, `due_date` date NOT NULL, `paid_date` date DEFAULT NULL, `status` enum('pending','paid','overdue','partial') DEFAULT 'pending', `late_fee` decimal(15,2) DEFAULT 0.00, `notes` text DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `sell_applications` -- CREATE TABLE `sell_applications` ( `id` int(10) UNSIGNED NOT NULL, `application_number` varchar(50) NOT NULL, `user_id` int(10) UNSIGNED DEFAULT NULL, `seller_name` varchar(255) NOT NULL, `address` text DEFAULT NULL, `phone` varchar(20) NOT NULL, `email` varchar(255) NOT NULL, `property_status` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`property_status`)), `property_type` varchar(100) NOT NULL, `seller_category` varchar(100) NOT NULL, `price` decimal(15,2) NOT NULL, `survey_document` varchar(255) DEFAULT NULL, `property_photo` varchar(255) DEFAULT NULL, `terms_accepted` tinyint(1) DEFAULT 0, `status` enum('pending','under_review','approved','listed','sold','rejected') DEFAULT 'pending', `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `settings` -- CREATE TABLE `settings` ( `id` int(10) UNSIGNED NOT NULL, `setting_key` varchar(100) NOT NULL, `setting_value` text DEFAULT NULL, `setting_type` varchar(50) DEFAULT NULL, `description` text DEFAULT NULL, `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `updated_by` int(10) UNSIGNED DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Dumping data for table `settings` -- INSERT INTO `settings` (`id`, `setting_key`, `setting_value`, `setting_type`, `description`, `updated_at`, `updated_by`) VALUES (1, 'site_name', 'RoVo Nigeria', 'text', 'Website name', '2026-01-08 22:02:28', 1), (2, 'site_email', 'support@rovo.com', 'email', 'Contact email', '2026-01-08 22:02:28', 1), (3, 'site_phone', '+234 9065635394', 'text', 'Contact phone', '2026-01-09 23:19:26', 1), (4, 'commission_rate', '15', 'number', 'Default commission percentage', '2026-01-08 22:02:28', 1), (5, 'verification_fee', '3000', 'number', 'Document verification fee in Naira', '2026-01-08 22:02:28', 1), (6, 'paystack_public_key', '', 'text', 'Paystack public key', '2026-01-08 22:02:28', 1), (7, 'paystack_secret_key', '', 'text', 'Paystack secret key', '2026-01-08 22:02:28', 1), (8, 'flutterwave_public_key', '', 'text', 'Flutterwave public key', '2026-01-08 22:02:28', 1), (9, 'flutterwave_secret_key', '', 'text', 'Flutterwave secret key', '2026-01-08 22:02:28', 1), (10, 'whatsapp_number', '2349065136669', 'text', 'WhatsApp business number', '2026-01-08 22:02:28', 1), (11, 'currency', 'NGN', 'text', 'Default currency', '2026-01-08 22:02:28', 1), (12, 'timezone', 'Africa/Lagos', 'text', 'System timezone', '2026-01-08 09:23:31', NULL); -- -------------------------------------------------------- -- -- Table structure for table `users` -- CREATE TABLE `users` ( `id` int(10) UNSIGNED NOT NULL, `first_name` varchar(100) NOT NULL, `last_name` varchar(100) NOT NULL, `email` varchar(255) NOT NULL, `phone` varchar(20) NOT NULL, `password_hash` varchar(255) NOT NULL, `role` enum('super_admin','admin','junior_admin','user') DEFAULT 'user', `status` enum('active','suspended','pending','banned') DEFAULT 'pending', `email_verified` tinyint(1) DEFAULT 0, `phone_verified` tinyint(1) DEFAULT 0, `profile_photo` varchar(255) DEFAULT NULL, `address` text DEFAULT NULL, `city` varchar(100) DEFAULT NULL, `state` varchar(100) DEFAULT NULL, `country` varchar(100) DEFAULT 'Nigeria', `bvn` varchar(11) DEFAULT NULL, `nin` varchar(11) DEFAULT NULL, `last_login` datetime DEFAULT NULL, `login_attempts` int(11) DEFAULT 0, `locked_until` datetime DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `created_by` int(10) UNSIGNED DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Dumping data for table `users` -- INSERT INTO `users` (`id`, `first_name`, `last_name`, `email`, `phone`, `password_hash`, `role`, `status`, `email_verified`, `phone_verified`, `profile_photo`, `address`, `city`, `state`, `country`, `bvn`, `nin`, `last_login`, `login_attempts`, `locked_until`, `created_at`, `updated_at`, `created_by`) VALUES (1, 'Super', 'Admin', 'admin@rovo.com', '+2349065635394', '$2y$10$0ltR/KlAT0gAm2kmkdokfOaJSndYmTjDm4MKm8vaHmqxTZzJvY7r2', 'super_admin', 'active', 1, 0, NULL, NULL, NULL, NULL, 'Nigeria', NULL, NULL, '2026-01-10 23:17:34', 0, NULL, '2026-01-08 09:23:30', '2026-01-10 22:17:34', NULL), (2, 'super', 'otega', 'admin@admin.com', '08168648433', '$argon2id$v=19$m=2048,t=4,p=3$MG5KU0pYODNkR1lPaS9ZdA$aEMuDOWn4jtJdUt/hWd0EIPQMvFgU4lElmBxv+PWqSE', 'admin', 'active', 0, 0, NULL, NULL, NULL, NULL, 'Nigeria', NULL, NULL, '2026-01-10 00:04:34', 0, NULL, '2026-01-08 13:17:39', '2026-01-09 23:04:34', 1), (3, 'junior', 'admin', 'junior@admin.com', '08168648433', '$argon2id$v=19$m=2048,t=4,p=3$cW45bnkwUHYvTm95TDVkRQ$3RlmELb4OugtEwlOhYrRhZFjgMRHQG2EpTGOISAvuZQ', 'junior_admin', 'active', 0, 0, NULL, NULL, NULL, NULL, 'Nigeria', NULL, NULL, NULL, 0, NULL, '2026-01-08 21:54:15', '2026-01-08 21:54:15', 1), (6, 'Clayton', 'Rodgers', 'mohy@mailinator.com', '08168648466', '$argon2id$v=19$m=2048,t=4,p=3$TnRwYlEvby9PblNlbkhQNw$XuJlNeA2BeiTsJUeQwBEc0K+unkHq4hZR0Pt/qcY9+o', 'junior_admin', 'active', 0, 0, NULL, NULL, NULL, NULL, 'Nigeria', NULL, NULL, NULL, 0, NULL, '2026-01-09 19:41:20', '2026-01-09 19:41:20', 1), (8, 'junior', 'admin', 'lamyne@mailinator.com', '09168648498', '$argon2id$v=19$m=2048,t=4,p=3$a2ROWDJ5dlQ1QmVBZUdzUQ$vTN64m+wjdgHwQ37aR7GWdZuaBigonZc6SApDo6BqHQ', 'junior_admin', 'active', 0, 0, NULL, NULL, NULL, NULL, 'Nigeria', NULL, NULL, NULL, 0, NULL, '2026-01-09 19:50:08', '2026-01-09 19:50:08', 1), (9, 'otega', 'ijide', 'ijideotega@gmail.com', '08168648499', '$argon2id$v=19$m=2048,t=4,p=3$UWYuaUVGSXloWE5pcFluMA$7EBOzYwEJcj0wWgFCIqVfwKUaxYwhXlL7QorVc26b68', 'user', 'pending', 0, 0, NULL, 'ui', 'ibadan', 'Anambra', 'Nigerian', '12345678987', '45675432578', '2026-01-10 23:37:14', 0, NULL, '2026-01-10 22:05:55', '2026-01-10 22:53:37', NULL); -- -------------------------------------------------------- -- -- Table structure for table `user_profile_data` -- CREATE TABLE `user_profile_data` ( `id` int(10) UNSIGNED NOT NULL, `user_id` int(10) UNSIGNED NOT NULL, `date_of_birth` date DEFAULT NULL, `state_of_origin` varchar(100) DEFAULT NULL, `next_of_kin_name` varchar(255) DEFAULT NULL, `next_of_kin_phone` varchar(20) DEFAULT NULL, `id_type` varchar(50) DEFAULT NULL, `id_number` varchar(100) DEFAULT NULL, `id_front_image` varchar(255) DEFAULT NULL, `id_back_image` varchar(255) DEFAULT NULL, `passport_photo` varchar(255) DEFAULT NULL, `employment_status` varchar(50) DEFAULT NULL, `company_name` varchar(255) DEFAULT NULL, `company_address` text DEFAULT NULL, `job_title` varchar(255) DEFAULT NULL, `monthly_income` decimal(15,2) DEFAULT NULL, `employment_letter` varchar(255) DEFAULT NULL, `business_name` varchar(255) DEFAULT NULL, `business_registration` varchar(255) DEFAULT NULL, `bank_statement` varchar(255) DEFAULT NULL, `guarantor1_name` varchar(255) DEFAULT NULL, `guarantor1_relationship` varchar(100) DEFAULT NULL, `guarantor1_phone` varchar(20) DEFAULT NULL, `guarantor1_email` varchar(255) DEFAULT NULL, `guarantor1_address` text DEFAULT NULL, `guarantor1_occupation` varchar(255) DEFAULT NULL, `guarantor1_income` decimal(15,2) DEFAULT NULL, `guarantor2_name` varchar(255) DEFAULT NULL, `guarantor2_relationship` varchar(100) DEFAULT NULL, `guarantor2_phone` varchar(20) DEFAULT NULL, `guarantor2_email` varchar(255) DEFAULT NULL, `guarantor2_address` text DEFAULT NULL, `guarantor2_occupation` varchar(255) DEFAULT NULL, `guarantor2_income` decimal(15,2) DEFAULT NULL, `guarantor_form` varchar(255) DEFAULT NULL, `verification_status` enum('pending','bvn_verified','admin_approved','rejected') DEFAULT 'pending', `bvn_verification_date` datetime DEFAULT NULL, `admin_verified_by` int(10) UNSIGNED DEFAULT NULL, `admin_verified_at` datetime DEFAULT NULL, `rejection_reason` text DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- -- -- Table structure for table `user_sessions` -- CREATE TABLE `user_sessions` ( `id` int(10) UNSIGNED NOT NULL, `user_id` int(10) UNSIGNED NOT NULL, `session_token` varchar(255) NOT NULL, `ip_address` varchar(45) DEFAULT NULL, `user_agent` text DEFAULT NULL, `expires_at` datetime NOT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Dumping data for table `user_sessions` -- INSERT INTO `user_sessions` (`id`, `user_id`, `session_token`, `ip_address`, `user_agent`, `expires_at`, `created_at`) VALUES (1, 1, '33ed845a5d6b76178593dc9bed41021cd240b582fd4f67144c9a206f9544fcd3', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-09 10:38:04', '2026-01-08 09:38:04'), (2, 1, '03300b640957a599245dbf6cc73f76f85e834bbdd1bce3e30b8cb549def816b8', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-09 13:56:01', '2026-01-08 12:56:01'), (3, 1, '349f2a74706b0ef679dd6ae34a777b1d2b7b316feb1c6096f6677347e97111a5', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-09 22:30:22', '2026-01-08 21:30:22'), (4, 1, '972b63f9b8ecf9764731658056c3e3835fbdf77926114ffa1090d4cfe21595f1', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-09 22:31:07', '2026-01-08 21:31:07'), (5, 1, '53a823d64e5e6975e2d7f9da9809b7a4b5a9d98478ca5c05860c152e863da38b', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-10 01:27:27', '2026-01-09 00:27:27'), (6, 1, 'a191a09c0361b58cb9208b6394190d8a42c8383eed12469298217958a4165e8a', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-10 01:35:09', '2026-01-09 00:35:09'), (7, 1, 'e7d845c163a6e33a16b76e9e18c6a47eaee55076868c6f4a28d749658b8889cf', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-10 16:28:42', '2026-01-09 15:28:42'), (8, 1, '89cc5c31a7a1d2ccf3f7df9ed6429b61c1ceca9b512472ef4aa288d2a338afa0', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-10 20:20:54', '2026-01-09 19:20:54'), (9, 1, 'bfc2228b4c6acc1ad567c55c7910fa53d7ed8fedcb913717b045231ca92476f0', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-10 20:57:30', '2026-01-09 19:57:30'), (10, 1, 'ed31c3cc3b5a5d6bc1673a2e7ac3ea1235642b20ace6f075870c99f62f0a688b', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-10 22:02:30', '2026-01-09 21:02:30'), (11, 2, 'a6570eb9c62a0dc5f0e3dd4cbcb657f3e6e8699e6656ddd389dcef2411bdc140', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-11 00:04:34', '2026-01-09 23:04:34'), (12, 1, '0e60312f174d4301e92f5f7e24b0457fac41fa0f161be12033ab034580b785b0', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-11 00:37:28', '2026-01-09 23:37:28'), (13, 1, '2fce87d842b9b58c251a4af4eeff367f5f84eae8a1920fdcb2e0a696316384b8', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-11 12:18:51', '2026-01-10 11:18:52'), (14, 9, '27786a3652b887d9d0f5652465ef2fbe7ab93a0d76116ae76502d73dcbdddce6', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-11 23:06:11', '2026-01-10 22:06:11'), (15, 9, 'bbae68a73a702c25e64d4eec90c05aa966ca0bec6ccb537921fb255aa1be94de', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-11 23:06:11', '2026-01-10 22:06:11'), (16, 1, 'd9b5c5703b50badc67e0cb216cde1a53773348ba18ce2d37e4957f90e6d2aae0', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-11 23:17:34', '2026-01-10 22:17:34'), (17, 9, 'f7ae737c659843d0f6a670195b763283fbffe348ed93e768bc2e18034d84f341', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', '2026-01-11 23:37:14', '2026-01-10 22:37:14'); -- -- Indexes for dumped tables -- -- -- Indexes for table `activity_logs` -- ALTER TABLE `activity_logs` ADD PRIMARY KEY (`id`), ADD KEY `idx_user_id` (`user_id`), ADD KEY `idx_action` (`action`), ADD KEY `idx_created_at` (`created_at`); -- -- Indexes for table `admin_permissions` -- ALTER TABLE `admin_permissions` ADD PRIMARY KEY (`id`), ADD KEY `admin_id` (`admin_id`); -- -- Indexes for table `blog_posts` -- ALTER TABLE `blog_posts` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `slug` (`slug`), ADD KEY `author_id` (`author_id`), ADD KEY `idx_slug` (`slug`), ADD KEY `idx_status` (`status`), ADD KEY `idx_published_at` (`published_at`); ALTER TABLE `blog_posts` ADD FULLTEXT KEY `idx_search` (`title`,`content`,`excerpt`); -- -- Indexes for table `building_materials` -- ALTER TABLE `building_materials` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `slug` (`slug`), ADD KEY `category_id` (`category_id`), ADD KEY `created_by` (`created_by`), ADD KEY `idx_status` (`status`), ADD KEY `idx_featured` (`featured`); ALTER TABLE `building_materials` ADD FULLTEXT KEY `idx_search` (`name`,`description`); -- -- Indexes for table `categories` -- ALTER TABLE `categories` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `slug` (`slug`), ADD KEY `idx_type` (`type`), ADD KEY `idx_status` (`status`); -- -- Indexes for table `contact_messages` -- ALTER TABLE `contact_messages` ADD PRIMARY KEY (`id`), ADD KEY `replied_by` (`replied_by`), ADD KEY `idx_status` (`status`), ADD KEY `idx_created_at` (`created_at`); -- -- Indexes for table `document_verifications` -- ALTER TABLE `document_verifications` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `verification_code` (`verification_code`), ADD KEY `property_id` (`property_id`), ADD KEY `land_id` (`land_id`), ADD KEY `payment_id` (`payment_id`), ADD KEY `verified_by` (`verified_by`), ADD KEY `idx_verification_code` (`verification_code`), ADD KEY `idx_payment_status` (`payment_status`); -- -- Indexes for table `lands` -- ALTER TABLE `lands` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `slug` (`slug`), ADD KEY `owner_id` (`owner_id`), ADD KEY `created_by` (`created_by`), ADD KEY `idx_transaction_type` (`transaction_type`), ADD KEY `idx_status` (`status`), ADD KEY `idx_price` (`price`), ADD KEY `idx_featured` (`featured`); ALTER TABLE `lands` ADD FULLTEXT KEY `idx_search` (`title`,`description`,`address`); -- -- Indexes for table `notifications` -- ALTER TABLE `notifications` ADD PRIMARY KEY (`id`), ADD KEY `idx_user_id` (`user_id`), ADD KEY `idx_is_read` (`is_read`); -- -- Indexes for table `password_resets` -- ALTER TABLE `password_resets` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `token` (`token`), ADD KEY `user_id` (`user_id`), ADD KEY `idx_token` (`token`); -- -- Indexes for table `payments` -- ALTER TABLE `payments` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `transaction_reference` (`transaction_reference`), ADD KEY `idx_transaction_reference` (`transaction_reference`), ADD KEY `idx_user_id` (`user_id`), ADD KEY `idx_status` (`status`), ADD KEY `idx_payment_type` (`payment_type`); -- -- Indexes for table `payrent_applications` -- ALTER TABLE `payrent_applications` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `application_number` (`application_number`), ADD KEY `user_id` (`user_id`), ADD KEY `idx_application_number` (`application_number`), ADD KEY `idx_status` (`status`); -- -- Indexes for table `properties` -- ALTER TABLE `properties` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `slug` (`slug`), ADD KEY `category_id` (`category_id`), ADD KEY `owner_id` (`owner_id`), ADD KEY `created_by` (`created_by`), ADD KEY `idx_transaction_type` (`transaction_type`), ADD KEY `idx_status` (`status`), ADD KEY `idx_city` (`city`), ADD KEY `idx_state` (`state`), ADD KEY `idx_price` (`price`), ADD KEY `idx_featured` (`featured`); ALTER TABLE `properties` ADD FULLTEXT KEY `idx_search` (`title`,`description`,`address`); -- -- Indexes for table `rental_applications` -- ALTER TABLE `rental_applications` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `application_number` (`application_number`), ADD KEY `package_id` (`package_id`), ADD KEY `property_id` (`property_id`), ADD KEY `reviewed_by` (`reviewed_by`), ADD KEY `idx_application_number` (`application_number`), ADD KEY `idx_user_id` (`user_id`), ADD KEY `idx_status` (`status`), ADD KEY `idx_payment_status` (`payment_status`); -- -- Indexes for table `rental_packages` -- ALTER TABLE `rental_packages` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `slug` (`slug`), ADD KEY `idx_status` (`status`); -- -- Indexes for table `rent_payments` -- ALTER TABLE `rent_payments` ADD PRIMARY KEY (`id`), ADD KEY `payment_id` (`payment_id`), ADD KEY `idx_rental_application` (`rental_application_id`), ADD KEY `idx_status` (`status`), ADD KEY `idx_payment_month` (`payment_month`); -- -- Indexes for table `sell_applications` -- ALTER TABLE `sell_applications` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `application_number` (`application_number`), ADD KEY `user_id` (`user_id`), ADD KEY `idx_application_number` (`application_number`), ADD KEY `idx_status` (`status`); -- -- Indexes for table `settings` -- ALTER TABLE `settings` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `setting_key` (`setting_key`), ADD KEY `updated_by` (`updated_by`), ADD KEY `idx_setting_key` (`setting_key`); -- -- Indexes for table `users` -- ALTER TABLE `users` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `email` (`email`), ADD KEY `idx_email` (`email`), ADD KEY `idx_phone` (`phone`), ADD KEY `idx_role` (`role`), ADD KEY `idx_status` (`status`); -- -- Indexes for table `user_profile_data` -- ALTER TABLE `user_profile_data` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `user_id` (`user_id`), ADD KEY `admin_verified_by` (`admin_verified_by`), ADD KEY `idx_verification_status` (`verification_status`); -- -- Indexes for table `user_sessions` -- ALTER TABLE `user_sessions` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `session_token` (`session_token`), ADD KEY `user_id` (`user_id`), ADD KEY `idx_token` (`session_token`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `activity_logs` -- ALTER TABLE `activity_logs` MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=27; -- -- AUTO_INCREMENT for table `admin_permissions` -- ALTER TABLE `admin_permissions` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; -- -- AUTO_INCREMENT for table `blog_posts` -- ALTER TABLE `blog_posts` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; -- -- AUTO_INCREMENT for table `building_materials` -- ALTER TABLE `building_materials` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `categories` -- ALTER TABLE `categories` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8; -- -- AUTO_INCREMENT for table `contact_messages` -- ALTER TABLE `contact_messages` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `document_verifications` -- ALTER TABLE `document_verifications` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `lands` -- ALTER TABLE `lands` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `notifications` -- ALTER TABLE `notifications` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `password_resets` -- ALTER TABLE `password_resets` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `payments` -- ALTER TABLE `payments` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `payrent_applications` -- ALTER TABLE `payrent_applications` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `properties` -- ALTER TABLE `properties` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `rental_applications` -- ALTER TABLE `rental_applications` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `rental_packages` -- ALTER TABLE `rental_packages` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; -- -- AUTO_INCREMENT for table `rent_payments` -- ALTER TABLE `rent_payments` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `sell_applications` -- ALTER TABLE `sell_applications` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `settings` -- ALTER TABLE `settings` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=68; -- -- AUTO_INCREMENT for table `users` -- ALTER TABLE `users` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10; -- -- AUTO_INCREMENT for table `user_profile_data` -- ALTER TABLE `user_profile_data` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `user_sessions` -- ALTER TABLE `user_sessions` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18; -- -- Constraints for dumped tables -- -- -- Constraints for table `activity_logs` -- ALTER TABLE `activity_logs` ADD CONSTRAINT `activity_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL; -- -- Constraints for table `admin_permissions` -- ALTER TABLE `admin_permissions` ADD CONSTRAINT `admin_permissions_ibfk_1` FOREIGN KEY (`admin_id`) REFERENCES `users` (`id`) ON DELETE CASCADE; -- -- Constraints for table `blog_posts` -- ALTER TABLE `blog_posts` ADD CONSTRAINT `blog_posts_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `users` (`id`) ON DELETE CASCADE; -- -- Constraints for table `building_materials` -- ALTER TABLE `building_materials` ADD CONSTRAINT `building_materials_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE SET NULL, ADD CONSTRAINT `building_materials_ibfk_2` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL; -- -- Constraints for table `contact_messages` -- ALTER TABLE `contact_messages` ADD CONSTRAINT `contact_messages_ibfk_1` FOREIGN KEY (`replied_by`) REFERENCES `users` (`id`) ON DELETE SET NULL; -- -- Constraints for table `document_verifications` -- ALTER TABLE `document_verifications` ADD CONSTRAINT `document_verifications_ibfk_1` FOREIGN KEY (`property_id`) REFERENCES `properties` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `document_verifications_ibfk_2` FOREIGN KEY (`land_id`) REFERENCES `lands` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `document_verifications_ibfk_3` FOREIGN KEY (`payment_id`) REFERENCES `payments` (`id`) ON DELETE SET NULL, ADD CONSTRAINT `document_verifications_ibfk_4` FOREIGN KEY (`verified_by`) REFERENCES `users` (`id`) ON DELETE SET NULL; -- -- Constraints for table `lands` -- ALTER TABLE `lands` ADD CONSTRAINT `lands_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, ADD CONSTRAINT `lands_ibfk_2` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL; -- -- Constraints for table `notifications` -- ALTER TABLE `notifications` ADD CONSTRAINT `notifications_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE; -- -- Constraints for table `password_resets` -- ALTER TABLE `password_resets` ADD CONSTRAINT `password_resets_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE; -- -- Constraints for table `payments` -- ALTER TABLE `payments` ADD CONSTRAINT `payments_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE; -- -- Constraints for table `payrent_applications` -- ALTER TABLE `payrent_applications` ADD CONSTRAINT `payrent_applications_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE; -- -- Constraints for table `properties` -- ALTER TABLE `properties` ADD CONSTRAINT `properties_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE SET NULL, ADD CONSTRAINT `properties_ibfk_2` FOREIGN KEY (`owner_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, ADD CONSTRAINT `properties_ibfk_3` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL; -- -- Constraints for table `rental_applications` -- ALTER TABLE `rental_applications` ADD CONSTRAINT `rental_applications_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `rental_applications_ibfk_2` FOREIGN KEY (`package_id`) REFERENCES `rental_packages` (`id`) ON DELETE SET NULL, ADD CONSTRAINT `rental_applications_ibfk_3` FOREIGN KEY (`property_id`) REFERENCES `properties` (`id`) ON DELETE SET NULL, ADD CONSTRAINT `rental_applications_ibfk_4` FOREIGN KEY (`reviewed_by`) REFERENCES `users` (`id`) ON DELETE SET NULL; -- -- Constraints for table `rent_payments` -- ALTER TABLE `rent_payments` ADD CONSTRAINT `rent_payments_ibfk_1` FOREIGN KEY (`rental_application_id`) REFERENCES `rental_applications` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `rent_payments_ibfk_2` FOREIGN KEY (`payment_id`) REFERENCES `payments` (`id`) ON DELETE SET NULL; -- -- Constraints for table `sell_applications` -- ALTER TABLE `sell_applications` ADD CONSTRAINT `sell_applications_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL; -- -- Constraints for table `settings` -- ALTER TABLE `settings` ADD CONSTRAINT `settings_ibfk_1` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL; -- -- Constraints for table `user_profile_data` -- ALTER TABLE `user_profile_data` ADD CONSTRAINT `user_profile_data_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `user_profile_data_ibfk_2` FOREIGN KEY (`admin_verified_by`) REFERENCES `users` (`id`) ON DELETE SET NULL; -- -- Constraints for table `user_sessions` -- ALTER TABLE `user_sessions` ADD CONSTRAINT `user_sessions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;