-- phpMyAdmin SQL Dump
-- version 5.2.3
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3306
-- Generation Time: Sep 07, 2026 at 04:44 PM
-- Server version: 10.11.19-MariaDB
-- PHP Version: 8.4.24

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: `yourusername_bubblestechs`
--

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

--
-- Table structure for table `admins`
--

CREATE TABLE `admins` (
  `id` int(11) NOT NULL,
  `username` varchar(100) NOT NULL,
  `email` varchar(150) NOT NULL,
  `password` varchar(255) NOT NULL,
  `role` enum('superadmin','admin') DEFAULT 'admin',
  `last_login` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `admins`
--

INSERT INTO `admins` (`id`, `username`, `email`, `password`, `role`, `last_login`, `created_at`) VALUES
(1, 'Admin', 'admin@nextech.com', '$2y$10$OV.38ugVKMM.kXH0N4Sst.r0ZeWXkK4jQW1jwPQ.kNQehaFh99B2K', 'superadmin', '2026-08-28 14:20:57', '2026-05-14 15:58:06');

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

--
-- Table structure for table `carousel`
--

CREATE TABLE `carousel` (
  `id` int(11) NOT NULL,
  `title` varchar(200) DEFAULT NULL,
  `subtitle` varchar(300) DEFAULT NULL,
  `image` varchar(255) NOT NULL,
  `button_text` varchar(100) DEFAULT NULL,
  `button_url` varchar(500) DEFAULT NULL,
  `sort_order` int(11) DEFAULT 0,
  `status` enum('active','inactive') DEFAULT 'active',
  `created_by` int(11) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `carousel`
--

INSERT INTO `carousel` (`id`, `title`, `subtitle`, `image`, `button_text`, `button_url`, `sort_order`, `status`, `created_by`, `created_at`, `updated_at`) VALUES
(1, 'All firmware', '', 'ceb77be16dbd36c1d60e.jpg', 'Shop Now', '', 0, 'active', 1, '2026-05-18 00:32:24', '2026-05-18 00:32:24'),
(2, 'Samsung s24 Ultra', 'K24,000 only', '79fa61d3e7cd49ad7bfd.jpg', 'Shop Now', '', 1, 'active', 1, '2026-05-18 00:40:31', '2026-05-18 00:40:31');

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

--
-- Table structure for table `categories`
--

CREATE TABLE `categories` (
  `id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `slug` varchar(110) NOT NULL,
  `description` text DEFAULT NULL,
  `image` varchar(255) DEFAULT NULL,
  `sort_order` int(11) DEFAULT 0,
  `status` enum('active','inactive') DEFAULT 'active',
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `notifications`
--

CREATE TABLE `notifications` (
  `id` int(11) NOT NULL,
  `recipient_type` enum('user','admin') NOT NULL DEFAULT 'user',
  `recipient_id` int(11) NOT NULL,
  `type` varchar(100) DEFAULT NULL,
  `title` varchar(255) DEFAULT NULL,
  `message` text DEFAULT NULL,
  `data` longtext DEFAULT NULL,
  `is_read` tinyint(1) DEFAULT 0,
  `read_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `notifications`
--

INSERT INTO `notifications` (`id`, `recipient_type`, `recipient_id`, `type`, `title`, `message`, `data`, `is_read`, `read_at`, `created_at`) VALUES
(1, 'user', 1, 'welcome', 'Welcome to Bubblestech!', 'Your account has been created. Start exploring our products.', NULL, 0, NULL, '2026-06-07 10:34:45'),
(2, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-94C004F9BA — K590.00', '{\"order_id\":13}', 0, NULL, '2026-06-07 10:41:20'),
(3, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-2C72C4F839 — K1.00', '{\"order_id\":14}', 0, NULL, '2026-06-07 10:49:24'),
(4, 'user', 1, 'payment_confirmed', 'Payment Confirmed', 'Your payment for order BT-2C72C4F839 has been manually confirmed. Your order is now being processed.', '{\"order_id\":14}', 0, NULL, '2026-06-07 18:52:25'),
(5, 'user', 2, 'welcome', 'Welcome to Bubblestech!', 'Your account has been created. Start exploring our products.', NULL, 0, NULL, '2026-06-12 01:45:52'),
(6, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-8B7A320452 — K300.00', '{\"order_id\":15}', 0, NULL, '2026-06-12 01:46:48'),
(7, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-27327B84E5 — K589.00', '{\"order_id\":16}', 0, NULL, '2026-06-12 01:47:42'),
(8, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-F80604F5D8 — K1.00', '{\"order_id\":17}', 0, NULL, '2026-06-12 02:04:35'),
(9, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-BEA7654755 — K399.00', '{\"order_id\":18}', 0, NULL, '2026-06-14 06:36:41'),
(10, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-CAA976F64A — K300.00', '{\"order_id\":19}', 0, NULL, '2026-06-16 08:33:10'),
(11, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-524522E570 — K1,840.00', '{\"order_id\":20}', 0, NULL, '2026-06-29 12:18:56'),
(12, 'user', 1, 'payment_confirmed', 'Payment Confirmed', 'Your payment for order BT-524522E570 has been manually confirmed. Your order is now being processed.', '{\"order_id\":20}', 0, NULL, '2026-06-30 05:26:50'),
(13, 'user', 3, 'welcome', 'Welcome to Bubblestech!', 'Your account has been created. Start exploring our products.', NULL, 0, NULL, '2026-06-30 21:06:32'),
(14, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-C93E8303EF — K330.00', '{\"order_id\":21}', 0, NULL, '2026-06-30 21:08:53'),
(15, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-704F04712E — K290.00', '{\"order_id\":22}', 0, NULL, '2026-06-30 21:09:33'),
(16, 'user', 4, 'welcome', 'Welcome to Bubblestech!', 'Your account has been created. Start exploring our products.', NULL, 0, NULL, '2026-07-23 18:50:41'),
(17, 'user', 5, 'welcome', 'Welcome to Bubblestech!', 'Your account has been created. Start exploring our products.', NULL, 0, NULL, '2026-07-23 18:51:07'),
(18, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-98F7EC5617 — K0.00', '{\"order_id\":23}', 0, NULL, '2026-08-25 05:09:51'),
(19, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-3794DE2024 — K290.00', '{\"order_id\":24}', 0, NULL, '2026-08-28 04:55:00'),
(20, 'user', 6, 'welcome', 'Welcome to Bubblestech!', 'Your account has been created. Start exploring our products.', NULL, 0, NULL, '2026-08-28 05:36:00'),
(21, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-5904D0BD44 — K1.00', '{\"order_id\":25}', 0, NULL, '2026-08-28 05:36:26'),
(22, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-507A34A727 — K1.00', '{\"order_id\":26}', 0, NULL, '2026-08-28 05:37:04'),
(23, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-9D0C783D1E — K0.00', '{\"order_id\":27}', 0, NULL, '2026-08-28 05:37:36'),
(24, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-520AC8C9A8 — K1.00', '{\"order_id\":28}', 0, NULL, '2026-08-28 05:38:58'),
(25, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-17BFF00DB7 — K1.00', '{\"order_id\":29}', 0, NULL, '2026-08-28 06:49:18'),
(26, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-DAC01D1909 — K0.00', '{\"order_id\":30}', 0, NULL, '2026-08-28 10:18:20'),
(27, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-BC51FB6C05 — K1.00', '{\"order_id\":31}', 0, NULL, '2026-08-28 10:18:45'),
(28, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-2D550E4AC2 — K290.00', '{\"order_id\":32}', 0, NULL, '2026-08-28 10:31:37'),
(29, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-5BBC98109A — K1.00', '{\"order_id\":33}', 0, NULL, '2026-08-28 10:33:18'),
(30, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-6E8980CB7E — K1.00', '{\"order_id\":34}', 0, NULL, '2026-08-28 11:25:46'),
(31, 'user', 6, 'payment_confirmed', 'Payment Confirmed', 'Your payment for order BT-6E8980CB7E has been manually confirmed. Your order is now being processed.', '{\"order_id\":34}', 0, NULL, '2026-08-28 11:32:01'),
(32, 'user', 6, 'payment_confirmed', 'Payment Confirmed', 'Your payment for order BT-5BBC98109A has been manually confirmed. Your order is now being processed.', '{\"order_id\":33}', 0, NULL, '2026-08-28 11:32:27'),
(33, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-8AAF58EACE — K135.00', '{\"order_id\":35}', 0, NULL, '2026-08-28 11:46:25'),
(34, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-6F07A9E501 — K1.00', '{\"order_id\":36}', 0, NULL, '2026-08-28 12:49:27'),
(35, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-443EE49264 — K95.00', '{\"order_id\":37}', 0, NULL, '2026-08-28 13:16:17'),
(36, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-685A69CFA1 — K1.00', '{\"order_id\":38}', 0, NULL, '2026-08-28 13:44:04'),
(37, 'admin', 1, 'order_placed', 'New Order', 'Order #BT-A20CB55942 — K1.00', '{\"order_id\":39}', 0, NULL, '2026-08-28 14:18:30');

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

--
-- Table structure for table `orders`
--

CREATE TABLE `orders` (
  `id` int(11) NOT NULL,
  `user_id` int(11) DEFAULT NULL,
  `reference` varchar(100) DEFAULT NULL,
  `status` enum('Pending','Processing','Completed','Cancelled','Shipped','Refunded') DEFAULT 'Pending',
  `payment_status` enum('unpaid','paid','partially_paid','refunded') DEFAULT 'unpaid',
  `payment_method` varchar(50) DEFAULT NULL COMMENT 'momo | bank | card',
  `payment_reference` varchar(200) DEFAULT NULL,
  `subtotal` decimal(10,2) DEFAULT 0.00,
  `discount` decimal(10,2) DEFAULT 0.00,
  `total` decimal(10,2) DEFAULT NULL,
  `notes` text DEFAULT NULL,
  `address` text DEFAULT NULL,
  `phone` varchar(30) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `orders`
--

INSERT INTO `orders` (`id`, `user_id`, `reference`, `status`, `payment_status`, `payment_method`, `payment_reference`, `subtotal`, `discount`, `total`, `notes`, `address`, `phone`, `created_at`, `updated_at`) VALUES
(13, 1, 'BT-94C004F9BA', 'Pending', 'unpaid', 'lipila', '3e0058f1-c8ba-4385-ae9d-0336900ce27b', 590.00, 0.00, 590.00, '', '', '0760531914', '2026-06-07 10:41:20', '2026-06-07 10:41:40'),
(14, 1, 'BT-2C72C4F839', 'Cancelled', 'paid', 'mobile_money', '71ca9a3b-f3f6-40ae-91f1-02025a009f86', 1.00, 0.00, 1.00, '', '', '0760531914', '2026-06-07 10:49:24', '2026-06-29 08:52:53'),
(15, 2, 'BT-8B7A320452', 'Pending', 'unpaid', 'lipila', NULL, 300.00, 0.00, 300.00, '', 'Chalala', '', '2026-06-12 01:46:48', '2026-06-12 01:46:48'),
(16, 2, 'BT-27327B84E5', 'Pending', 'unpaid', 'lipila', 'b33188fc-a322-4a95-8190-5c0f90ce4ffe', 589.00, 0.00, 589.00, '', 'Chalala', '', '2026-06-12 01:47:42', '2026-06-12 01:49:41'),
(17, 2, 'BT-F80604F5D8', 'Cancelled', 'unpaid', 'lipila', 'a9860a8e-45de-40de-a7c6-0c43db1afcd1', 1.00, 0.00, 1.00, '', 'Chalala', '', '2026-06-12 02:04:35', '2026-06-29 08:53:30'),
(18, 2, 'BT-BEA7654755', 'Cancelled', 'unpaid', 'lipila', '9e62e85c-f0c9-40d3-9349-1f34417f08e8', 399.00, 0.00, 399.00, '', '', '', '2026-06-14 06:36:41', '2026-06-29 08:52:09'),
(19, 1, 'BT-CAA976F64A', 'Cancelled', 'unpaid', 'lipila', '9b9777f5-6e2b-483b-893a-a380751017d6', 300.00, 0.00, 300.00, '', '', '0760531914', '2026-06-16 08:33:10', '2026-06-29 08:51:46'),
(20, 1, 'BT-524522E570', 'Processing', 'paid', 'cash', NULL, 1840.00, 0.00, 1840.00, '', '', '0760531914', '2026-06-29 12:18:56', '2026-06-30 05:26:50'),
(21, 3, 'BT-C93E8303EF', 'Pending', 'unpaid', 'lipila', NULL, 330.00, 0.00, 330.00, '', '', '0771519868', '2026-06-30 21:08:53', '2026-07-01 19:20:39'),
(22, 3, 'BT-704F04712E', 'Pending', 'unpaid', 'lipila', NULL, 290.00, 0.00, 290.00, '', '', '0771519868', '2026-06-30 21:09:33', '2026-06-30 21:09:33'),
(23, 1, 'BT-98F7EC5617', 'Pending', 'unpaid', 'lipila', NULL, 0.00, 0.00, 0.00, '', '', '0760531914', '2026-08-25 05:09:51', '2026-08-25 05:09:51'),
(24, 1, 'BT-3794DE2024', 'Pending', 'unpaid', 'lipila', NULL, 290.00, 0.00, 290.00, '', '', '0760531914', '2026-08-28 04:55:00', '2026-08-28 04:55:00'),
(25, 6, 'BT-5904D0BD44', 'Pending', 'unpaid', 'lipila', NULL, 1.00, 0.00, 1.00, '', '', '0969856220', '2026-08-28 05:36:26', '2026-08-28 05:36:26'),
(26, 6, 'BT-507A34A727', 'Pending', 'unpaid', 'lipila', NULL, 1.00, 0.00, 1.00, '', '', '0969856220', '2026-08-28 05:37:04', '2026-08-28 05:37:04'),
(27, 6, 'BT-9D0C783D1E', 'Pending', 'unpaid', 'lipila', NULL, 0.00, 0.00, 0.00, '', '', '0969856220', '2026-08-28 05:37:36', '2026-08-28 05:37:36'),
(28, 6, 'BT-520AC8C9A8', 'Pending', 'unpaid', 'lipila', NULL, 1.00, 0.00, 1.00, '', '', '0969856220', '2026-08-28 05:38:58', '2026-08-28 05:38:58'),
(29, 6, 'BT-17BFF00DB7', 'Pending', 'unpaid', 'lipila', NULL, 1.00, 0.00, 1.00, '', '', '0969856220', '2026-08-28 06:49:18', '2026-08-28 06:49:18'),
(30, 6, 'BT-DAC01D1909', 'Pending', 'unpaid', 'lipila', NULL, 0.00, 0.00, 0.00, '', '', '0969856220', '2026-08-28 10:18:20', '2026-08-28 10:18:20'),
(31, 6, 'BT-BC51FB6C05', 'Pending', 'unpaid', 'lipila', NULL, 1.00, 0.00, 1.00, '', '', '0969856220', '2026-08-28 10:18:45', '2026-08-28 10:18:45'),
(32, 1, 'BT-2D550E4AC2', 'Pending', 'unpaid', 'lipila_card', '181eee6d-d66a-4cfa-bfdc-dbbddabbfdb8', 290.00, 0.00, 290.00, '', '', '0760531914', '2026-08-28 10:31:37', '2026-08-28 11:23:41'),
(33, 6, 'BT-5BBC98109A', 'Processing', 'paid', 'cash', 'eb2b1af4-37de-4246-9a55-a11e407b8225', 1.00, 0.00, 1.00, '', '', '0969856220', '2026-08-28 10:33:18', '2026-08-28 11:32:27'),
(34, 6, 'BT-6E8980CB7E', 'Processing', 'paid', 'cash', 'e1f8f0ef-77b9-483d-aa92-0977f6194753', 1.00, 0.00, 1.00, '', '', '0969856220', '2026-08-28 11:25:46', '2026-08-28 11:32:01'),
(35, 6, 'BT-8AAF58EACE', 'Pending', 'unpaid', 'lipila_card', '29f79bbd-3b80-431c-b36f-860c7e5791cb', 135.00, 0.00, 135.00, '', '', '0969856220', '2026-08-28 11:46:25', '2026-08-28 11:46:41'),
(36, 6, 'BT-6F07A9E501', 'Pending', 'unpaid', 'lipila', '2b220a20-c684-4527-8600-a2c7e7914762', 1.00, 0.00, 1.00, '', '', '0969856220', '2026-08-28 12:49:27', '2026-08-28 12:50:22'),
(37, 1, 'BT-443EE49264', 'Pending', 'unpaid', 'lipila', 'f49c51dc-52e7-4658-b72f-f0d2a230b090', 95.00, 0.00, 95.00, '', '', '0760531914', '2026-08-28 13:16:17', '2026-08-28 13:16:38'),
(38, 6, 'BT-685A69CFA1', 'Pending', 'unpaid', 'lipila', '4c7f15cd-0c13-4051-89d3-c15972837872', 1.00, 0.00, 1.00, '', '', '0969856220', '2026-08-28 13:44:04', '2026-08-28 13:44:10'),
(39, 6, 'BT-A20CB55942', 'Pending', 'unpaid', 'lipila', 'ca962255-94c2-40a6-ace3-fcc09de8af9b', 1.00, 0.00, 1.00, '', '', '0969856220', '2026-08-28 14:18:30', '2026-08-28 14:19:03');

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

--
-- Table structure for table `order_items`
--

CREATE TABLE `order_items` (
  `id` int(11) NOT NULL,
  `order_id` int(11) DEFAULT NULL,
  `product_id` int(11) DEFAULT NULL,
  `product_name` varchar(150) DEFAULT NULL,
  `product_type` enum('physical_product','software_product','physical_service','software_service') DEFAULT NULL,
  `qty` int(11) DEFAULT 1,
  `quantity` int(11) DEFAULT 1 COMMENT 'alias for qty',
  `price` decimal(10,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `order_items`
--

INSERT INTO `order_items` (`id`, `order_id`, `product_id`, `product_name`, `product_type`, `qty`, `quantity`, `price`) VALUES
(13, 13, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00),
(14, 13, 7, 'Azam decoder Fullkit', 'physical_product', 1, 1, 589.00),
(15, 14, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00),
(16, 15, 8, 'LCD\'s', 'physical_product', 1, 1, 300.00),
(17, 16, 7, 'Azam decoder Fullkit', 'physical_product', 1, 1, 589.00),
(18, 17, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00),
(19, 18, 11, 'DStv Decoder + Dish Kit', 'physical_product', 1, 1, 399.00),
(20, 19, 8, 'LCD\'s', 'physical_product', 1, 1, 300.00),
(21, 20, 13, 'X6831', 'physical_product', 1, 1, 380.00),
(22, 20, 14, 'X6812', 'physical_product', 2, 1, 350.00),
(23, 20, 15, 'X6710', 'physical_product', 2, 1, 380.00),
(24, 21, 18, 'X688', 'physical_product', 1, 1, 330.00),
(25, 22, 19, 'X680', 'physical_product', 1, 1, 290.00),
(26, 23, 20, 'Unlocktool', 'software_service', 2, 1, 0.00),
(27, 24, 19, 'X680', 'physical_product', 1, 1, 290.00),
(28, 25, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00),
(29, 26, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00),
(30, 27, 20, 'Unlocktool', 'software_service', 1, 1, 0.00),
(31, 28, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00),
(32, 29, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00),
(33, 30, 20, 'Unlocktool', 'software_service', 1, 1, 0.00),
(34, 31, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00),
(35, 32, 19, 'X680', 'physical_product', 1, 1, 290.00),
(36, 33, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00),
(37, 34, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00),
(38, 35, 21, 'C to C type USB cable', 'physical_product', 1, 1, 135.00),
(39, 36, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00),
(40, 37, 22, 'Micro USB cable  type', 'physical_product', 1, 1, 95.00),
(41, 38, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00),
(42, 39, 5, 'Spider charging port', 'physical_product', 1, 1, 1.00);

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

--
-- Table structure for table `payment_settings`
--

CREATE TABLE `payment_settings` (
  `id` int(11) NOT NULL,
  `gateway_name` varchar(100) NOT NULL DEFAULT 'ZynlePay',
  `api_key` varchar(500) DEFAULT NULL COMMENT 'ZynlePay API Key',
  `api_id` varchar(255) DEFAULT NULL COMMENT 'ZynlePay API ID',
  `merchant_id` varchar(255) DEFAULT NULL COMMENT 'ZynlePay Merchant ID',
  `service_id` varchar(50) NOT NULL DEFAULT '1002',
  `channel` varchar(50) NOT NULL DEFAULT 'momo',
  `base_url` varchar(500) NOT NULL DEFAULT 'https://sandbox.zynlepay.com/api',
  `callback_url` varchar(500) DEFAULT NULL COMMENT 'Public webhook URL',
  `currency` varchar(10) NOT NULL DEFAULT 'ZMW',
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `lipila_api_key` varchar(500) DEFAULT NULL COMMENT 'Lipila x-api-key',
  `lipila_base_url` varchar(500) DEFAULT 'https://api.lipila.dev' COMMENT 'Lipila API base URL',
  `lipila_callback_url` varchar(500) DEFAULT NULL COMMENT 'Lipila webhook URL',
  `lipila_redirect_url` varchar(500) DEFAULT NULL COMMENT 'Redirect after payment',
  `lipila_back_url` varchar(500) DEFAULT NULL COMMENT 'Cancel / back URL',
  `active_gateway` varchar(30) DEFAULT 'zynlepay' COMMENT 'zynlepay | lipila',
  `lenco_public_key` varchar(500) DEFAULT NULL,
  `lenco_secret_key` varchar(500) DEFAULT NULL,
  `lenco_base_url` varchar(500) DEFAULT 'https://api.lenco.co',
  `binance_api_key` varchar(500) DEFAULT NULL,
  `binance_secret_key` varchar(500) DEFAULT NULL,
  `binance_base_url` varchar(500) DEFAULT 'https://bpay.binanceapi.com',
  `binance_currency` varchar(10) DEFAULT 'USDT'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `payment_settings`
--

INSERT INTO `payment_settings` (`id`, `gateway_name`, `api_key`, `api_id`, `merchant_id`, `service_id`, `channel`, `base_url`, `callback_url`, `currency`, `created_at`, `updated_at`, `lipila_api_key`, `lipila_base_url`, `lipila_callback_url`, `lipila_redirect_url`, `lipila_back_url`, `active_gateway`, `lenco_public_key`, `lenco_secret_key`, `lenco_base_url`, `binance_api_key`, `binance_secret_key`, `binance_base_url`, `binance_currency`) VALUES
(1, 'ZynlePay', NULL, NULL, NULL, '1002', 'momo', 'https://sandbox.zynlepay.com/api', NULL, 'ZMW', '2026-05-14 15:58:06', '2026-08-28 11:09:27', 'lsk_019e2a07-ed85-701e-9c6c-cc80066aa864', 'https://blz.lipila.io', 'https://bubblestechs.com/bubblestechs/api/payments/lipila_webhook.php', '', '', 'lipila', 'febvebve', 'password', 'https://api.lenco.co', '4wema2ONKFtkDH5IAx8NbmkDWPz4w8MPxEGfS1k8Tb0GErRoxGWuSPrvhdHkYMuW', 'Xe7uiUhjOekVL1B8EIEPHfKpmlbfNyRFDludyfcunTWttAFoEsIeqZmAsbKkzs4p', 'https://bpay.binanceapi.com', 'USDT');

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

--
-- Table structure for table `payment_verifications`
--

CREATE TABLE `payment_verifications` (
  `id` int(11) NOT NULL,
  `order_id` int(11) NOT NULL,
  `verified_by` int(11) NOT NULL,
  `method` enum('momo','manual_override') DEFAULT 'manual_override',
  `amount` decimal(10,2) DEFAULT NULL,
  `reference` varchar(200) DEFAULT NULL,
  `proof_image` varchar(255) DEFAULT NULL,
  `notes` text DEFAULT NULL,
  `verified_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `products`
--

CREATE TABLE `products` (
  `id` int(11) NOT NULL,
  `name` varchar(150) NOT NULL,
  `description` text DEFAULT NULL,
  `short_description` varchar(500) DEFAULT NULL,
  `price` decimal(10,2) NOT NULL DEFAULT 0.00,
  `sale_price` decimal(10,2) DEFAULT NULL,
  `is_free` tinyint(1) NOT NULL DEFAULT 0,
  `category` varchar(100) DEFAULT NULL,
  `image` varchar(255) DEFAULT NULL,
  `slug` varchar(200) DEFAULT NULL,
  `type` enum('physical_product','software_product','physical_service','software_service') NOT NULL DEFAULT 'physical_product',
  `sku` varchar(100) DEFAULT NULL,
  `stock_qty` int(11) DEFAULT NULL,
  `download_url` varchar(500) DEFAULT NULL,
  `license_type` varchar(100) DEFAULT NULL,
  `version` varchar(50) DEFAULT NULL,
  `platform` varchar(100) DEFAULT NULL,
  `is_featured` tinyint(1) DEFAULT 0,
  `status` enum('active','inactive','draft') DEFAULT 'draft',
  `created_by` int(11) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `products`
--

INSERT INTO `products` (`id`, `name`, `description`, `short_description`, `price`, `sale_price`, `is_free`, `category`, `image`, `slug`, `type`, `sku`, `stock_qty`, `download_url`, `license_type`, `version`, `platform`, `is_featured`, `status`, `created_by`, `created_at`, `updated_at`) VALUES
(1, 'Limited Stock Available Poco F8 Pro', '', 'Limited Stock Available Poco F8 Pro  Get it in same day', 2940.00, 2499.00, 0, '', 'products/17880f3762800f5a2d49.jpg', 'limited-stock-available-poco-f8-pro', 'physical_service', NULL, 4, '', NULL, NULL, NULL, 0, 'active', 1, '2026-05-14 17:47:50', '2026-05-14 17:47:50'),
(2, 'Starsat Sr5090 extreme', '', '', 1299.00, NULL, 0, '', 'products/a2b4de2e10971717bd41.jpg', 'starsat-sr5090-extreme', 'physical_service', NULL, 10, '', NULL, NULL, NULL, 0, 'active', 1, '2026-05-14 17:51:54', '2026-05-14 17:54:12'),
(3, 'OnePlus 15R', '', 'Product Overview OnePlus 15R Price in Nepal The OnePlus 15R is a high-performance OnePlus mobile designed for users who want flagship features at a slightly lower price. As part of the OnePlus R series, this OnePlus 15R is powered by the Snapdragon 8 Gen 5 processor.  The 6.83-inch AMOLED display with 165Hz refresh rate ensures smooth visuals and high brightness. The OnePlus 15R is ideal for gaming and performance-heavy usage.  With a large 7400mAh battery and fast charging, this OnePlus mobile ', 3900.00, 3720.00, 0, '', 'products/d3d70493e26fc932dda4.png', 'oneplus-15r', 'physical_product', NULL, 1, '', NULL, NULL, NULL, 0, 'active', 1, '2026-05-14 18:15:23', '2026-05-14 18:44:27'),
(4, 'VIVO/REALME/OPPO LCD', '', 'Assembly lcd.', 300.00, NULL, 0, 'LCD', 'products/314116618b9886a498d0.jpg', 'vivo-realme-oppo-lcd', 'physical_service', NULL, 4, '', NULL, NULL, NULL, 0, 'active', 1, '2026-05-14 18:18:58', '2026-05-14 18:30:05'),
(5, 'Spider charging port', '', 'Pcba sub', 1.00, NULL, 0, 'Accessories', 'products/3f7c3791e949b8a18ae8.jpg', 'spider-charging-port', 'physical_product', NULL, NULL, '', NULL, NULL, NULL, 0, 'active', 1, '2026-05-14 19:05:18', '2026-05-15 05:31:06'),
(6, 'Azam decoder', 'In Zambia, an Azam TV Full Kit (decoder, dish, cables, and LNB) costs K589, while the decoder only is K350. They offer 130+ channels across multiple sports, movie, and news packages (including local stations like Prime TV and ZNBC), starting from as low as', 'Enjoy premiere movies from around the world, sports, entertainment, kids and news. All available at the comfort of your home. It\'s easy to use, small and sleek.', 150.00, NULL, 0, 'Hardware', 'products/87a281913430eca607f2.jpg', 'azam-decoder', 'physical_product', NULL, NULL, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-05 12:19:23', '2026-08-28 05:33:47'),
(7, 'Azam decoder Fullkit', 'In Zambia, an Azam TV Full Kit (decoder, dish, cables, and LNB) costs K589, while the decoder only is K350. They offer 130+ channels across multiple sports, movie, and news packages (including local stations like Prime TV and ZNBC), starting from as low as', 'Enjoy premiere movies from around the world, sports, entertainment, kids and news. All available at the comfort of your home. It\'s easy to use, small and sleek.', 450.00, NULL, 0, 'Hardware', 'products/43bdedaca6e4f2da6654.jpg', 'azam-decoder-fullkit', 'physical_product', NULL, NULL, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-05 12:26:58', '2026-08-28 05:33:17'),
(8, 'LCD\'s', '', 'Assorted types of lcds', 1.00, 300.00, 0, 'Lcd\'s', 'products/15ffb0a4c779e4db5779.jpg', 'lcd-s', 'physical_product', NULL, 0, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-07 19:31:28', '2026-06-07 19:31:28'),
(9, 'Note 40 lcd', '', '', 400.00, NULL, 0, 'Lcd', 'products/082f171201ca0d77ae24.jpg', 'note-40-lcd', 'physical_product', NULL, 10, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-09 08:24:36', '2026-06-09 08:25:21'),
(10, 'X6840 Lcd', '', '', 400.00, NULL, 0, '', 'products/0a856f4a4dcae3220873.png', 'x6840-lcd', 'physical_product', NULL, 10, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-09 08:27:09', '2026-06-09 08:27:09'),
(11, 'DStv Decoder + Dish Kit', '', '🎉 Big entertainment. Small price. Massive value! 🔥  For just K399, get a DStv Decoder + Dish Kit and unlock a world of entertainment, from blockbuster movies and hit series to live sports and family favourites.  Why settle for less when you can have it all?  #DStvZambia #UnmatchedEntertainment', 399.00, NULL, 0, 'Decoders', 'products/8b6699f1978e549db08c.jpg', 'dstv-decoder-dish-kit', 'physical_product', NULL, 14, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-09 08:33:30', '2026-06-14 06:36:41'),
(12, 'X6720', '', '', 400.00, 350.00, 0, 'LCD\'S', 'products/0d42dd62ab948250d3bd.jpg', 'x6720', 'physical_product', NULL, 20, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-29 08:42:49', '2026-06-29 08:43:04'),
(13, 'X6831', '', 'For infinix,tecno and itel', 400.00, 380.00, 0, 'LCD\'S', 'products/4d574aa54d5fb211759e.jpg', 'x6831', 'physical_product', NULL, 19, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-29 08:45:29', '2026-06-29 12:18:56'),
(14, 'X6812', '', 'For infinix,tecno and itel', 350.00, NULL, 0, 'LCD\'S', 'products/1ce0345294977857e1fa.jpg', 'x6812', 'physical_product', NULL, 18, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-29 08:48:05', '2026-06-29 12:18:56'),
(15, 'X6710', '', 'For infinix,tecno and itel', 380.00, NULL, 0, 'LCD\'S', 'products/b95a4bad50c4a9a027f6.jpg', 'x6710', 'physical_product', NULL, 3, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-29 08:51:13', '2026-06-29 12:18:56'),
(16, 'X663', '', 'For infinix,tecno and itel', 350.00, NULL, 0, 'LCD\'S', 'products/0de86825680fc9ca6b05.jpg', 'x663', 'physical_product', NULL, 10, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-29 08:54:43', '2026-06-29 09:09:01'),
(17, 'X6850', '', 'For tecno,infinix and itel', 400.00, NULL, 0, 'LCD\'S', 'products/1f22ae722ad754950ac1.jpg', 'x6850', 'physical_product', NULL, 10, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-29 12:45:53', '2026-06-29 12:45:53'),
(18, 'X688', '', 'For tecno infinix and itel', 330.00, NULL, 0, 'LCD\'S', 'products/68bc2bfc7fb299439258.jpg', 'x688', 'physical_product', NULL, 19, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-29 13:13:56', '2026-06-30 21:08:53'),
(19, 'X680', '', 'For tecno infinix and itel', 350.00, 290.00, 0, 'Lcd', 'products/48e78c13a403ae42f013.jpg', 'x680', 'physical_product', NULL, 2, '', NULL, NULL, NULL, 0, 'active', 1, '2026-06-29 13:16:04', '2026-08-28 10:31:37'),
(20, 'Unlocktool', 'How to Buy UnlockTool Activation:\r\nRegister for an UnlockTool Account\r\n\r\nCreate an account on the UnlockTool platform before making a purchase.\r\n\r\nRegister Here: UnlockTool Registration\r\n\r\nPurchase UnlockTool Activation\r\n\r\nProvide the following details during checkout:\r\n\r\nUsername\r\n\r\nEmail Address\r\n\r\nPassword (used for registration)\r\n\r\nProcessing Time:\r\nOrders are processed within 1 hour (during business hours).\r\n\r\nIn some cases, it may take up to 6 hours due to high request volume.\r\n\r\nPC Change Limit:\r\nYou can change your PC every 6 hours.\r\n\r\nDownload UnlockTool:\r\nAfter activation, download the latest version of UnlockTool.', '', 0.00, NULL, 1, 'Software', 'products/d553f6249d618b527d30.png', 'unlocktool', 'software_service', NULL, 0, 'http://www.unlocktool.net', NULL, NULL, NULL, 1, 'active', 1, '2026-08-16 08:28:21', '2026-08-16 08:28:21'),
(21, 'C to C type USB cable', '', '', 150.00, 135.00, 0, 'Accessories', 'products/c623453025c8c65e52c9.jpg', 'c-to-c-type-usb-cable', 'physical_product', NULL, NULL, '', NULL, NULL, NULL, 0, 'active', 1, '2026-08-28 11:44:55', '2026-08-28 11:44:55'),
(22, 'Micro USB cable  type', '', '', 100.00, 95.00, 0, 'Accessories', 'products/bb5925f8cfaaca1174ed.jpg', 'micro-usb-cable-type', 'physical_product', NULL, NULL, '', NULL, NULL, NULL, 0, 'active', 1, '2026-08-28 11:48:17', '2026-08-28 11:48:17');

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

--
-- Table structure for table `product_images`
--

CREATE TABLE `product_images` (
  `id` int(11) NOT NULL,
  `product_id` int(11) NOT NULL,
  `image` varchar(255) NOT NULL,
  `alt_text` varchar(255) DEFAULT NULL,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  `is_primary` tinyint(1) NOT NULL DEFAULT 0,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `product_images`
--

INSERT INTO `product_images` (`id`, `product_id`, `image`, `alt_text`, `sort_order`, `is_primary`, `created_at`) VALUES
(1, 7, 'products/gallery/7f56a234928c149840b0.jpg', NULL, 0, 0, '2026-06-05 12:26:58'),
(2, 11, 'products/gallery/673030d71e4375b9de77.jpg', NULL, 0, 0, '2026-06-09 08:33:30');

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

--
-- Table structure for table `site_settings`
--

CREATE TABLE `site_settings` (
  `id` int(11) NOT NULL,
  `site_name` varchar(150) DEFAULT 'NexTech Store',
  `logo` varchar(255) DEFAULT NULL,
  `favicon` varchar(255) DEFAULT NULL,
  `currency` varchar(10) DEFAULT 'ZMW',
  `currency_symbol` varchar(10) DEFAULT 'K',
  `updated_by` int(11) DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `tagline` varchar(300) DEFAULT NULL,
  `email` varchar(150) DEFAULT NULL,
  `phone` varchar(50) DEFAULT NULL,
  `address` varchar(300) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `primary_color` varchar(20) DEFAULT '#1a56ff'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `site_settings`
--

INSERT INTO `site_settings` (`id`, `site_name`, `logo`, `favicon`, `currency`, `currency_symbol`, `updated_by`, `updated_at`, `tagline`, `email`, `phone`, `address`, `description`, `primary_color`) VALUES
(1, 'Bubblestech', 'logos/69a52f07bd49b7.77516451.jpg', NULL, 'ZMW', 'K', 1, '2026-06-07 19:25:35', '', 'jamessinkamba@gmail.com', '+260973594514', 'Chingola,copperbelt Zambia', '', '#1a56ff');

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

--
-- Table structure for table `social_links`
--

CREATE TABLE `social_links` (
  `id` int(11) NOT NULL,
  `platform` varchar(50) NOT NULL COMMENT 'Facebook | Instagram | WhatsApp | X | TikTok | LinkedIn | YouTube',
  `url` varchar(500) NOT NULL,
  `icon` varchar(50) DEFAULT NULL COMMENT 'Icon identifier',
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `social_links`
--

INSERT INTO `social_links` (`id`, `platform`, `url`, `icon`, `created_at`, `updated_at`) VALUES
(1, 'WhatsApp', 'https://whatsapp.com/channel/0029VbBwgFCC1FuGCpHngw2I', 'whatsapp', '2026-06-29 09:31:38', '2026-06-29 13:26:33'),
(2, 'Facebook', 'https://www.facebook.com/share/1BSC5RwGDy/', 'facebook', '2026-06-29 09:35:46', '2026-06-29 13:26:33'),
(3, 'Telegram', 'https://t.me/+u0UxoLZtBu5jMGZk', 'telegram', '2026-06-29 11:04:18', '2026-06-29 11:57:57'),
(4, 'TikTok', 'http://tiktok.com/@bubbleetechs', 'tiktok', '2026-06-29 13:26:33', '2026-06-29 13:26:33');

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

--
-- Table structure for table `transactions`
--

CREATE TABLE `transactions` (
  `id` int(11) NOT NULL,
  `reference` varchar(100) NOT NULL COMMENT 'Matches orders.reference',
  `order_id` int(11) NOT NULL,
  `amount` decimal(10,2) NOT NULL DEFAULT 0.00,
  `phone` varchar(30) DEFAULT NULL,
  `network` varchar(30) DEFAULT NULL COMMENT 'AIRTEL | MTN | ZAMTEL',
  `status` enum('pending','success','failed') NOT NULL DEFAULT 'pending',
  `provider_transaction_id` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `transactions`
--

INSERT INTO `transactions` (`id`, `reference`, `order_id`, `amount`, `phone`, `network`, `status`, `provider_transaction_id`, `created_at`) VALUES
(26, '3e0058f1-c8ba-4385-ae9d-0336900ce27b', 13, 590.00, '260760954190', 'MOMO', 'pending', 'LPLXC-20260607-104142-051-3293', '2026-06-07 10:41:40'),
(27, '71ca9a3b-f3f6-40ae-91f1-02025a009f86', 14, 1.00, '260760954190', 'MOMO', 'pending', 'LPLXC-20260607-104943-243-7057', '2026-06-07 10:49:42'),
(28, 'MANUAL-69E97370', 14, 1.00, '0760531914', 'MANUAL', 'success', 'manual_by_Admin', '2026-06-07 18:52:25'),
(29, '5043be0d-938b-4e01-b1fc-b5a221887859', 16, 589.00, '260760507752', 'MOMO', 'pending', 'LPLXC-20260612-014831-952-6594', '2026-06-12 01:48:30'),
(30, 'e8483b98-2d59-4a59-9e19-20558727ba51', 16, 589.00, '260760507752', 'MOMO', 'pending', 'LPLXC-20260612-014908-303-5316', '2026-06-12 01:49:07'),
(31, 'b33188fc-a322-4a95-8190-5c0f90ce4ffe', 16, 589.00, '260760507752', 'MOMO', 'pending', 'LPLXC-20260612-014941-544-7194', '2026-06-12 01:49:41'),
(32, 'a9860a8e-45de-40de-a7c6-0c43db1afcd1', 17, 1.00, '260760507752', 'MOMO', 'pending', 'LPLXC-20260612-020453-347-5167', '2026-06-12 02:04:52'),
(33, '9e62e85c-f0c9-40d3-9349-1f34417f08e8', 18, 399.00, '260760507752', 'MOMO', 'pending', 'LPLXC-20260614-063730-944-3266', '2026-06-14 06:37:29'),
(34, '9b9777f5-6e2b-483b-893a-a380751017d6', 19, 300.00, '260760954190', 'MOMO', 'pending', 'LPLXC-20260616-083327-910-8048', '2026-06-16 08:33:26'),
(35, 'MANUAL-3066B28D', 20, 1840.00, '0760531914', 'MANUAL', 'success', 'manual_by_Admin', '2026-06-30 05:26:50'),
(36, '08ed5f21-784e-4deb-b382-aa57852e2660', 33, 1.00, '260969856220', 'MOMO', 'pending', 'LPLXC-20260828-103349-383-5581', '2026-08-28 10:33:47'),
(37, '17331e8c-73db-479e-a4fe-a30eed672385', 33, 1.00, '260969856220', 'MOMO', 'pending', 'LPLXC-20260828-103412-115-3516', '2026-08-28 10:34:11'),
(38, 'eb2b1af4-37de-4246-9a55-a11e407b8225', 33, 1.00, '260969856220', 'MOMO', 'pending', 'LPLXC-20260828-110105-576-3430', '2026-08-28 11:01:03'),
(39, '3b2560c6-8b3b-41c8-9143-ce734f04ac31', 32, 290.00, '260760531914', 'CARD', 'pending', 'LPLXC-20260828-110722-117-5634', '2026-08-28 11:07:21'),
(40, '181eee6d-d66a-4cfa-bfdc-dbbddabbfdb8', 32, 290.00, '260760531914', 'CARD', 'pending', 'LPLXC-20260828-112343-170-7758', '2026-08-28 11:23:41'),
(41, 'e1f8f0ef-77b9-483d-aa92-0977f6194753', 34, 1.00, '260969856220', 'CARD', 'pending', 'LPLXC-20260828-112624-658-5152', '2026-08-28 11:26:24'),
(42, 'MANUAL-56897C0B', 34, 1.00, '0969856220', 'MANUAL', 'success', 'manual_by_Admin', '2026-08-28 11:32:01'),
(43, 'MANUAL-A70D5433', 33, 1.00, '0969856220', 'MANUAL', 'success', 'manual_by_Admin', '2026-08-28 11:32:27'),
(44, '29f79bbd-3b80-431c-b36f-860c7e5791cb', 35, 135.00, '260969856220', 'CARD', 'pending', 'LPLXC-20260828-114641-703-9190', '2026-08-28 11:46:41'),
(45, '2b220a20-c684-4527-8600-a2c7e7914762', 36, 1.00, '260973594514', 'MOMO', 'pending', 'LPLXC-20260828-125023-659-2663', '2026-08-28 12:50:22'),
(46, 'f49c51dc-52e7-4658-b72f-f0d2a230b090', 37, 95.00, '260957963819', 'MOMO', 'pending', 'LPLXC-20260828-131639-350-1645', '2026-08-28 13:16:38'),
(47, '4c7f15cd-0c13-4051-89d3-c15972837872', 38, 1.00, '260969856220', 'MOMO', 'pending', 'LPLXC-20260828-134412-379-6105', '2026-08-28 13:44:10'),
(48, 'ca962255-94c2-40a6-ace3-fcc09de8af9b', 39, 1.00, '260979139810', 'MOMO', 'pending', 'LPLXC-20260828-141905-178-2704', '2026-08-28 14:19:03');

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

--
-- Table structure for table `users`
--

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `email` varchar(150) NOT NULL,
  `password` varchar(255) NOT NULL,
  `first_name` varchar(100) DEFAULT NULL,
  `last_name` varchar(100) DEFAULT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `avatar` varchar(255) DEFAULT NULL,
  `email_verified_at` timestamp NULL DEFAULT NULL,
  `status` enum('active','suspended') DEFAULT 'active',
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`id`, `email`, `password`, `first_name`, `last_name`, `phone`, `avatar`, `email_verified_at`, `status`, `created_at`) VALUES
(1, 'kamuzusilungwe@gmail.com', '$2y$10$mmlcuVkNiEaVnjJEYVqKCuqvxZpLU4ZF4TTIeVR4wKe1gMwcFdVLq', 'Kamuzu', 'Silungwe', '0760531914', NULL, NULL, 'active', '2026-06-07 10:34:45'),
(2, 'jumoonlineshopping@gmail.com', '$2y$10$D1iggGVO4WR5tinoZWxMOeqWv9csQf.lL3REYAPntCIvs0QGfmcvy', 'Jay', 'Moonga', '', NULL, NULL, 'active', '2026-06-12 01:45:52'),
(3, 'samsonbblz8@gmail.com', '$2y$10$1LEqDCZjWlOsIO8eo4gjdOj5Acd3gZybiDifXF6xq92K8iGc0/J46', 'Samson', 'Lisomona', '0771519868', NULL, NULL, 'active', '2026-06-30 21:06:32'),
(6, 'jamessinkamba123@gmail.com', '$2y$10$TTWAjZMTR9xnQajEERsgIeQxLvO8jT/dVgt3H7YRmwcHj7FYQG1Nq', 'James', 'Sinkamba', '0969856220', NULL, NULL, 'active', '2026-08-28 05:36:00');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `admins`
--
ALTER TABLE `admins`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `email` (`email`);

--
-- Indexes for table `carousel`
--
ALTER TABLE `carousel`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `categories`
--
ALTER TABLE `categories`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `slug` (`slug`);

--
-- Indexes for table `notifications`
--
ALTER TABLE `notifications`
  ADD PRIMARY KEY (`id`),
  ADD KEY `recipient` (`recipient_type`,`recipient_id`),
  ADD KEY `is_read` (`is_read`);

--
-- Indexes for table `orders`
--
ALTER TABLE `orders`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `reference` (`reference`),
  ADD KEY `user_id` (`user_id`);

--
-- Indexes for table `order_items`
--
ALTER TABLE `order_items`
  ADD PRIMARY KEY (`id`),
  ADD KEY `order_id` (`order_id`),
  ADD KEY `product_id` (`product_id`);

--
-- Indexes for table `payment_settings`
--
ALTER TABLE `payment_settings`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `payment_verifications`
--
ALTER TABLE `payment_verifications`
  ADD PRIMARY KEY (`id`),
  ADD KEY `order_id` (`order_id`),
  ADD KEY `verified_by` (`verified_by`);

--
-- Indexes for table `products`
--
ALTER TABLE `products`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `slug` (`slug`),
  ADD KEY `status` (`status`),
  ADD KEY `is_featured` (`is_featured`),
  ADD KEY `created_by` (`created_by`);

--
-- Indexes for table `product_images`
--
ALTER TABLE `product_images`
  ADD PRIMARY KEY (`id`),
  ADD KEY `product_id` (`product_id`),
  ADD KEY `sort_order` (`sort_order`);

--
-- Indexes for table `site_settings`
--
ALTER TABLE `site_settings`
  ADD PRIMARY KEY (`id`),
  ADD KEY `updated_by` (`updated_by`);

--
-- Indexes for table `social_links`
--
ALTER TABLE `social_links`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `platform` (`platform`);

--
-- Indexes for table `transactions`
--
ALTER TABLE `transactions`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `reference` (`reference`),
  ADD KEY `order_id` (`order_id`),
  ADD KEY `status` (`status`);

--
-- Indexes for table `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `email` (`email`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `admins`
--
ALTER TABLE `admins`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `carousel`
--
ALTER TABLE `carousel`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT for table `categories`
--
ALTER TABLE `categories`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `notifications`
--
ALTER TABLE `notifications`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=38;

--
-- AUTO_INCREMENT for table `orders`
--
ALTER TABLE `orders`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=40;

--
-- AUTO_INCREMENT for table `order_items`
--
ALTER TABLE `order_items`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=43;

--
-- AUTO_INCREMENT for table `payment_settings`
--
ALTER TABLE `payment_settings`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `payment_verifications`
--
ALTER TABLE `payment_verifications`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `products`
--
ALTER TABLE `products`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=23;

--
-- AUTO_INCREMENT for table `product_images`
--
ALTER TABLE `product_images`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT for table `site_settings`
--
ALTER TABLE `site_settings`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `social_links`
--
ALTER TABLE `social_links`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--
-- AUTO_INCREMENT for table `transactions`
--
ALTER TABLE `transactions`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=49;

--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--
-- Constraints for dumped tables
--

--
-- Constraints for table `orders`
--
ALTER TABLE `orders`
  ADD CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `order_items`
--
ALTER TABLE `order_items`
  ADD CONSTRAINT `order_items_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `order_items_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `payment_verifications`
--
ALTER TABLE `payment_verifications`
  ADD CONSTRAINT `pv_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `pv_ibfk_2` FOREIGN KEY (`verified_by`) REFERENCES `admins` (`id`);

--
-- Constraints for table `products`
--
ALTER TABLE `products`
  ADD CONSTRAINT `products_ibfk_1` FOREIGN KEY (`created_by`) REFERENCES `admins` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `product_images`
--
ALTER TABLE `product_images`
  ADD CONSTRAINT `product_images_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `site_settings`
--
ALTER TABLE `site_settings`
  ADD CONSTRAINT `site_settings_ibfk_1` FOREIGN KEY (`updated_by`) REFERENCES `admins` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `transactions`
--
ALTER TABLE `transactions`
  ADD CONSTRAINT `transactions_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `orders` (`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 */;
