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

START TRANSACTION;



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

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

CREATE TABLE `categories` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `image_url` varchar(255) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `type` enum('regular','beldi') NOT NULL DEFAULT 'regular'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `categories`
--

INSERT INTO `categories` (`id`, `name`, `slug`, `description`, `image_url`, `created_at`, `type`) VALUES
(14, 'aa', 'aa', 'a', 'CleaverIcon', '2026-02-11 00:17:48', 'regular'),
(15, 'sas asasaas', 'sas-asasaas', 'sa aadasas', 'ChickenIcon', '2026-02-11 00:37:07', 'regular'),
(16, 'Lydia York', 'lydia-york', 'Magni natus vitae ut', 'CleaverIcon', '2026-02-12 00:14:04', 'regular'),
(17, 'Dana Goodman', 'dana-goodman', 'Quas enim accusantiu', 'DrumstickIcon', '2026-02-13 12:31:10', 'beldi');

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

--
-- Table structure for table `messages`
--

CREATE TABLE `messages` (
  `id` int(11) NOT NULL,
  `full_name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `phone` varchar(50) NOT NULL,
  `message` text NOT NULL,
  `status` enum('unread','read','replied') DEFAULT 'unread',
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `messages`
--

INSERT INTO `messages` (`id`, `full_name`, `email`, `phone`, `message`, `status`, `created_at`) VALUES
(3, 'Vera Carey', 'zocam@mailinator.com', '6666666666', 'Vel deserunt modi vemlkknjjbhkb bbjhbbkjb bjbbjkjkbjb', 'replied', '2026-02-12 22:39:53'),
(4, 'Wanda Forbes', 'laxiqabe@mailinator.com', '454545454545454545', '566666666666666666666666666666666666666666661015641', 'replied', '2026-02-12 22:53:26'),
(5, 'August Shaffer', 'huqat@mailinator.com', '156015561561156', 'Dolor consequatur er4556516156516516561111111114566564646', 'read', '2026-02-12 22:54:06'),
(6, 'Vernon Wilder', 'boqyx@mailinator.com', '+212 696-862185', 'Autem nobis odio ut Autem nobis odio ut Autem nobis odio ut Autem nobis odio ut Autem nobis odio ut', 'read', '2026-02-12 23:00:51'),
(7, 'Bree Castaneda', 'ryfo@mailinator.com', '551515112112112', 'Accusantium ad molesDSFFFFFFFFFFFFFDDDDDDD DSFDFDD', 'read', '2026-02-25 01:47:05'),
(8, 'Colby Saunders', 'sedapykile@mailinator.com', '4234324324324422434', 'Itaque cupiditate utSADAD ASDAS DSADSAD SADASDA', 'replied', '2026-02-25 01:50:17'),
(9, 'Test User', 'test@test.com', '0600000000', 'Ceci est un test de notification 01:12:57', 'read', '2026-02-26 00:12:57');

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

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

CREATE TABLE `orders` (
  `id` int(11) NOT NULL,
  `customer_name` varchar(255) NOT NULL,
  `customer_email` varchar(255) NOT NULL,
  `customer_phone` varchar(50) NOT NULL,
  `address` text DEFAULT NULL,
  `city` varchar(100) DEFAULT NULL,
  `zip_code` varchar(20) DEFAULT NULL,
  `total_amount` decimal(10,2) NOT NULL,
  `amount_paid` decimal(10,2) DEFAULT 0.00,
  `amount_due` decimal(10,2) DEFAULT 0.00,
  `payment_method` varchar(50) DEFAULT 'cod',
  `status` varchar(50) NOT NULL DEFAULT 'pending',
  `payment_status` varchar(50) DEFAULT 'unpaid',
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;

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

INSERT INTO `orders` (`id`, `customer_name`, `customer_email`, `customer_phone`, `address`, `city`, `zip_code`, `total_amount`, `amount_paid`, `amount_due`, `payment_method`, `status`, `payment_status`, `created_at`) VALUES
(13, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'completed', 'unpaid', '2026-02-11 23:49:11'),
(14, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'processing', 'unpaid', '2026-02-11 23:49:11'),
(16, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(17, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(18, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(19, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(20, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(21, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(22, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(23, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(24, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(25, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(26, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(27, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(28, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(29, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(30, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(31, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(32, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(33, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(34, 'Althea Hill', 'dyvyxyg@mailinator.com', '+1 (437) 769-3875', 'Dolorum doloremque v', 'Marrakech', '00000', 46.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-11 23:49:11'),
(35, 'Randall Little', 'fafenov@mailinator.com', '+1 (811) 864-9702', 'Nihil quia incidunt', 'Marrakech', '00000', 503.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-12 22:01:51'),
(36, 'Colt Murphy', 'keseqy@mailinator.com', '+1 (101) 681-5338', 'Ut inventore quae do', 'Hors Marrakech', '00000', 503.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-12 22:03:16'),
(37, 'Dean Hicks', 'mogaxyxi@mailinator.com', '+1 (255) 763-9438', 'Dignissimos velit de', 'Marrakech', '00000', 503.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-12 23:11:05'),
(39, 'Alexandra Lester', 'cylyxi@mailinator.com', '+1 (627) 113-9457', 'Officiis sed volupta', 'Marrakech', '00000', 83.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-13 22:33:59'),
(40, 'Barrett Thornton', 'kazikojadi@mailinator.com', '+1 (188) 772-6283', 'Ratione deserunt vol', 'Hors Marrakech', '00000', 125.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-13 22:39:21'),
(42, 'Jayme Puckett', 'saxeza@mailinator.com', '+1 (483) 311-6752', 'Mollit cupidatat dol', 'Hors Marrakech', '00000', 83.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-13 22:47:48'),
(43, 'Anthony Fletcher', 'nuka@mailinator.com', '+1 (208) 919-1155', 'Dolorem occaecat et ', 'Hors Marrakech', '00000', 100.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-13 22:50:35'),
(44, 'Desirae Odom', 'fubumah@mailinator.com', '+1 (111) 285-4665', 'Eaque dolore eveniet', 'Marrakech', '00000', 200.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-13 23:11:32'),
(45, 'Zephania Navarro', 'vokimu@mailinator.com', '+1 (562) 924-9929', 'Sint et eos excepteu', 'Hors Marrakech', '00000', 100.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-13 23:27:56'),
(46, 'Berk Lester', 'qyxiwykoz@mailinator.com', '+1 (688) 858-9893', 'Blanditiis tenetur e', 'Marrakech', '00000', 108.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-16 22:51:46'),
(47, 'Nomlanga Short', 'zahacolap@mailinator.com', '+1 (629) 285-9505', 'Est do consequatur ', 'Hors Marrakech', '00000', 50.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-16 22:53:50'),
(48, 'Maggy Salazar', 'wugoloqi@mailinator.com', '+1 (309) 359-3623', 'Ut dignissimos rem i', 'Hors Marrakech', '00000', 50.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-16 22:54:04'),
(49, 'Leandra Berry', 'nijebazyqe@mailinator.com', '+1 (125) 486-8095', 'Eius asperiores duis', 'Hors Marrakech', '00000', 125.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-16 22:57:04'),
(50, 'Madison Solis', 'negimucagu@mailinator.com', '+1 (539) 499-1795', 'Ipsam minim animi l', 'Marrakech', '00000', 250.00, 0.00, 0.00, 'cod', 'cancelled', 'unpaid', '2026-02-16 23:00:41'),
(51, 'Matthew Reese', 'najag@mailinator.com', '+1 (721) 291-2877', 'Enim natus accusamus', 'Marrakech', '00000', 233.00, 100.00, 133.00, 'cod', 'processing', 'unpaid', '2026-02-16 23:05:25'),
(52, 'Georgia Becker', 'fomajijele@mailinator.com', '+1 (754) 943-4728', 'Animi blanditiis po', 'Hors Marrakech', '00000', 125.00, 0.00, 0.00, 'cod', 'completed', 'unpaid', '2026-02-16 23:06:19'),
(55, 'Emma Bryant', 'bimyxo@mailinator.com', '+1 (753) 318-5479', 'Sunt sequi fugiat un', 'Hors Marrakech', '00000', 108.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-25 23:47:55'),
(56, 'Jesse Cooke', 'zego@mailinator.com', '+1 (271) 603-8492', 'Fugiat veniam non ', 'Marrakech', '00000', 108.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-25 23:54:11'),
(57, 'Madaline Shields', 'rihuwy@mailinator.com', '+1 (919) 816-5985', 'Expedita debitis quo', 'Marrakech', '00000', 125.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-26 00:03:18'),
(58, 'Hanna Small', 'dyrukatux@mailinator.com', '+1 (439) 796-1988', 'Hic reprehenderit a', 'Hors Marrakech', '00000', 100.00, 0.00, 0.00, 'cod', 'pending', 'unpaid', '2026-02-26 21:40:04');

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

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

CREATE TABLE `order_items` (
  `id` int(11) NOT NULL,
  `order_id` int(11) NOT NULL,
  `product_name` varchar(255) NOT NULL,
  `options` text DEFAULT NULL,
  `image` varchar(500) DEFAULT NULL,
  `quantity` int(11) NOT NULL,
  `unit` varchar(50) DEFAULT NULL,
  `price` decimal(10,2) NOT NULL,
  `subtotal` decimal(10,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;

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

INSERT INTO `order_items` (`id`, `order_id`, `product_name`, `options`, `image`, `quantity`, `unit`, `price`, `subtotal`) VALUES
(32, 35, 'Shelby Moore', '[{\"label\":\"Poids souhait\\u00e9\",\"value\":\"1.5 Kg\"},{\"label\":\"Shaeleigh Wyatt\",\"value\":\"sasa\"},{\"label\":\"Ulric Kerr\",\"value\":\"vvvv\"},{\"label\":\"Hollee Knapp\",\"value\":\"qqq\"},{\"label\":\"zxczxc\",\"value\":\"czxcxzxz\"}]', 'http://localhost:8000/uploads/prod_698d2bca96c76.png', 1, '1.5 Kg', 503.00, 503.00),
(33, 36, 'Shelby Moore', '[{\"label\":\"Poids souhait\\u00e9\",\"value\":\"1.5 Kg\"},{\"label\":\"Shaeleigh Wyatt\",\"value\":\"sasa\"},{\"label\":\"Ulric Kerr\",\"value\":\"vvvv\"},{\"label\":\"Hollee Knapp\",\"value\":\"qqq\"},{\"label\":\"zxczxc\",\"value\":\"czxcxzxz\"}]', 'http://localhost:8000/uploads/prod_698d2bca96c76.png', 1, '1.5 Kg', 503.00, 503.00),
(34, 37, 'Shelby Moore', '[{\"label\":\"Poids souhait\\u00e9\",\"value\":\"1.5 Kg\"},{\"label\":\"Shaeleigh Wyatt\",\"value\":\"sasa\"},{\"label\":\"Ulric Kerr\",\"value\":\"asdsadds\"},{\"label\":\"Hollee Knapp\",\"value\":\"xxxx\"},{\"label\":\"zxczxc\",\"value\":\"czxcfaa\"}]', 'http://localhost:8000/uploads/prod_698d2bca96c76.png', 1, '1.5 Kg', 503.00, 503.00),
(35, 39, 'Émincé', '[{\"label\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"value\":\"Nature (Sans marinade)\"}]', 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/emince-1-300x281.jpg', 1, NULL, 83.00, 83.00),
(36, 40, 'Cordon Bleu', '[{\"label\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"value\":\"Nature (Sans marinade)\"}]', 'https://latelier-dupoulet.com/wp-content/uploads/2024/02/Cordon-bleu.jpg', 1, NULL, 125.00, 125.00),
(38, 42, 'Émincé', '[{\"label\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"value\":\"Nature (Sans marinade)\"}]', 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/emince-1-300x281.jpg', 1, NULL, 83.00, 83.00),
(39, 43, 'Nuggets', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/nugget.jpeg', 1, NULL, 100.00, 100.00),
(40, 44, 'Nuggets', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/nugget.jpeg', 2, NULL, 100.00, 200.00),
(41, 45, 'Nuggets', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/nugget.jpeg', 1, NULL, 100.00, 100.00),
(42, 46, 'Émincé', '[{\"label\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"value\":\"Nature (Sans marinade)\"}]', 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/emince-1-300x281.jpg', 1, NULL, 83.00, 83.00),
(43, 47, 'Coquelet', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/coquelet-2-1.jpg', 1, NULL, 25.00, 25.00),
(44, 48, 'Coquelet', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/coquelet-2-1.jpg', 1, NULL, 25.00, 25.00),
(45, 49, 'Nuggets', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/nugget.jpeg', 1, NULL, 100.00, 100.00),
(46, 50, 'Nuggets', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/nugget.jpeg', 1, NULL, 100.00, 100.00),
(47, 50, 'Coquelet', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/coquelet-2-1.jpg', 1, NULL, 25.00, 25.00),
(48, 50, 'VH Burger', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2024/02/VH-burger.jpg', 1, NULL, 100.00, 100.00),
(53, 52, 'Nuggets', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/nugget.jpeg', 1, NULL, 100.00, 100.00),
(59, 51, 'Escalope', '[{\"label\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"value\":\"Nature (Sans marinade)\"}]', 'https://latelier-dupoulet.com/wp-content/uploads/2020/07/original-catalogue-produit-11-12-2013-11-38-08-926-300x300.jpeg', 1, NULL, 83.00, 83.00),
(60, 51, 'Coquelet', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/coquelet-2-1.jpg', 1, NULL, 25.00, 25.00),
(61, 51, 'VH Burger', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2024/02/VH-burger.jpg', 1, NULL, 100.00, 100.00),
(107, 55, 'Émincé', '[{\"label\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"value\":\"Nature (Sans marinade)\"}]', 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/emince-1-300x281.jpg', 1, NULL, 83.00, 83.00),
(108, 56, 'Émincé', '[{\"label\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"value\":\"Nature (Sans marinade)\"}]', 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/emince-1-300x281.jpg', 1, NULL, 83.00, 83.00),
(109, 57, 'Nuggets', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/nugget.jpeg', 1, NULL, 100.00, 100.00),
(110, 58, 'Nuggets', '[]', 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/nugget.jpeg', 1, NULL, 100.00, 100.00);

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

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

CREATE TABLE `products` (
  `id` varchar(50) NOT NULL,
  `name` varchar(255) NOT NULL,
  `category` varchar(100) NOT NULL,
  `category_id` int(11) DEFAULT NULL,
  `type` varchar(50) NOT NULL,
  `base_price` decimal(10,2) NOT NULL,
  `image_url` varchar(1024) DEFAULT NULL,
  `rating` decimal(3,1) DEFAULT 0.0,
  `reviews_count` int(11) DEFAULT 0,
  `current_status` varchar(50) DEFAULT 'In Stock',
  `active` tinyint(1) DEFAULT 1,
  `description` text DEFAULT NULL,
  `options_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`options_json`)),
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `featured` tinyint(1) DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;

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

INSERT INTO `products` (`id`, `name`, `category`, `category_id`, `type`, `base_price`, `image_url`, `rating`, `reviews_count`, `current_status`, `active`, `description`, `options_json`, `created_at`, `featured`) VALUES
('beldi-assortiments-barbecue-b1', 'Assortiments barbecue', 'Poulet', 16, 'beldi', 65.00, NULL, 5.0, 0, 'Active', 1, 'Assortiments barbecue beldi', '{}', '2026-02-13 00:05:24', 0),
('beldi-blanquette-b16', 'Blanquette', 'Poulet', 16, 'beldi', 35.00, 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/blanquette-1-300x281.jpg', 5.0, 0, 'Active', 1, 'Blanquette beldi', '{}', '2026-02-13 00:05:24', 0),
('beldi-brochettes-blanches-b12', 'Brochettes Blanches', 'Poulet', 16, 'beldi', 83.00, 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/Brochettes-blanches.jpg', 5.0, 0, 'Active', 1, 'Brochettes Blanches beldi', '{\"min_weight\":\"\",\"groups\":[{\"id\":\"prepa\",\"name\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"items\":[{\"name\":\"Nature (Sans marinade)\",\"price\":0},{\"name\":\"Marin\\u00e9 Chermoula\",\"price\":15},{\"name\":\"Ail & Herbes\",\"price\":15},{\"name\":\"\\u00c9pic\\u00e9\",\"price\":15}]}],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('beldi-coquelet-b10', 'Coquelet', 'Poulet', 16, 'beldi', 25.00, 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/coquelet-2-1.jpg', 5.0, 0, 'Active', 1, 'Coquelet beldi', '{}', '2026-02-13 00:05:24', 0),
('beldi-cordon-bleu-b4', 'Cordon Bleu', 'Poulet', 16, 'beldi', 125.00, 'https://latelier-dupoulet.com/wp-content/uploads/2024/02/Cordon-bleu.jpg', 5.0, 0, 'Active', 1, 'Cordon Bleu beldi', '{\"min_weight\":\"\",\"groups\":[{\"id\":\"prepa\",\"name\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"items\":[{\"name\":\"Nature (Sans marinade)\",\"price\":0},{\"name\":\"Marin\\u00e9 Chermoula\",\"price\":15},{\"name\":\"Ail & Herbes\",\"price\":15},{\"name\":\"\\u00c9pic\\u00e9\",\"price\":15}]}],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('beldi-emince-b14', 'Émincé', 'Poulet', 16, 'beldi', 83.00, 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/emince-1-300x281.jpg', 5.0, 0, 'Active', 1, 'Émincé beldi', '{\"min_weight\":\"\",\"groups\":[{\"id\":\"prepa\",\"name\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"items\":[{\"name\":\"Nature (Sans marinade)\",\"price\":0},{\"name\":\"Marin\\u00e9 Chermoula\",\"price\":15},{\"name\":\"Ail & Herbes\",\"price\":15},{\"name\":\"\\u00c9pic\\u00e9\",\"price\":15}]}],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('beldi-escalope-b13', 'Escalope', 'Poulet', 16, 'beldi', 83.00, 'https://latelier-dupoulet.com/wp-content/uploads/2020/07/original-catalogue-produit-11-12-2013-11-38-08-926-300x300.jpeg', 5.0, 0, 'Active', 1, 'Escalope beldi', '{\"min_weight\":\"\",\"groups\":[{\"id\":\"prepa\",\"name\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"items\":[{\"name\":\"Nature (Sans marinade)\",\"price\":0},{\"name\":\"Marin\\u00e9 Chermoula\",\"price\":15},{\"name\":\"Ail & Herbes\",\"price\":15},{\"name\":\"\\u00c9pic\\u00e9\",\"price\":15}]}],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('beldi-filet-entier-b15', 'Filet Entier', 'Poulet', 16, 'beldi', 80.00, 'https://latelier-dupoulet.com/wp-content/uploads/2020/07/Filet-entier.jpg', 5.0, 0, 'Active', 1, 'Filet Entier beldi', '{}', '2026-02-13 00:05:24', 0),
('beldi-huile-dolive-extra-vierge-b2', 'Huile d\'olive extra vierge', 'Epicerie', 16, 'beldi', 70.00, NULL, 5.0, 0, 'Active', 1, 'Huile d\'olive extra vierge beldi', '{\"min_weight\":\"\",\"groups\":[{\"id\":\"volume\",\"name\":\"Volume\",\"items\":[{\"name\":\"0.5 L\",\"price\":0},{\"name\":\"1 L\",\"price\":0},{\"name\":\"2 L\",\"price\":0}]}],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('beldi-nugget-fromage-b6', 'Nugget fromage', 'Poulet', 16, 'beldi', 110.00, 'https://latelier-dupoulet.com/wp-content/uploads/2024/02/Nuggets-fromage.jpg', 5.0, 0, 'Active', 1, 'Nugget fromage beldi', '{}', '2026-02-13 00:05:24', 0),
('beldi-nuggets-b7', 'Nuggets', 'Poulet', 16, 'beldi', 100.00, 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/nugget.jpeg', 5.0, 0, 'Active', 1, 'Nuggets beldi', '{}', '2026-02-13 00:05:24', 0),
('beldi-pot-de-khlii-poulet-b3', 'Pot de khlii poulet', 'Epicerie', 16, 'beldi', 50.00, NULL, 5.0, 0, 'Active', 1, 'Pot de khlii poulet beldi', '{\"min_weight\":\"\",\"groups\":[{\"id\":\"contenance\",\"name\":\"Contenance\",\"items\":[{\"name\":\"250 ml\",\"price\":0},{\"name\":\"500 ml\",\"price\":0},{\"name\":\"1 L\",\"price\":0}]}],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('beldi-poulet-entier-b8', 'Poulet Entier', 'Poulet', 16, 'beldi', 45.00, 'https://latelier-dupoulet.com/wp-content/uploads/2016/10/Poulet-entier.jpg', 5.0, 0, 'Active', 1, 'Poulet Entier beldi', '{\"min_weight\":\"1\",\"groups\":[\r\n{\"id\":\"forme\",\"name\":\"Forme / D\\u00e9coupe\",\"items\":[{\"name\":\"Entier\",\"price\":0},{\"name\":\"D\\u00e9coup\\u00e9\",\"price\":3}]},\r\n{\"id\":\"peau\",\"name\":\"Peau\",\"items\":[{\"name\":\"Avec Peau\",\"price\":0},{\"name\":\"Sans Peau\",\"price\":2}]},\r\n{\"id\":\"abats\",\"name\":\"Abats\",\"items\":[{\"name\":\"Avec Abats\",\"price\":0},{\"name\":\"Sans Abats\",\"price\":0}]},\r\n{\"id\":\"nettoyage\",\"name\":\"Nettoyage\",\"items\":[{\"name\":\"Standard\",\"price\":0},{\"name\":\"Bien nettoy\\u00e9 (Sans plumes ni impuret\\u00e9s)\",\"price\":5}]},\r\n{\"id\":\"prepa\",\"name\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"items\":[{\"name\":\"Nature (Sans marinade)\",\"price\":0},{\"name\":\"Marin\\u00e9 Chermoula\",\"price\":15},{\"name\":\"Ail & Herbes\",\"price\":15},{\"name\":\"\\u00c9pic\\u00e9\",\"price\":15}]}\r\n],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('beldi-poulet-fermier-b9', 'Poulet Fermier', 'Poulet', 16, 'beldi', 90.00, 'https://latelier-dupoulet.com/wp-content/uploads/2020/07/poulets-fermiers-300x281-1.jpeg', 5.0, 0, 'Active', 1, 'Poulet Fermier beldi', '{\"min_weight\":\"1\",\"groups\":[\r\n{\"id\":\"forme\",\"name\":\"Forme / D\\u00e9coupe\",\"items\":[{\"name\":\"Entier\",\"price\":0},{\"name\":\"D\\u00e9coup\\u00e9\",\"price\":3}]},\r\n{\"id\":\"peau\",\"name\":\"Peau\",\"items\":[{\"name\":\"Avec Peau\",\"price\":0},{\"name\":\"Sans Peau\",\"price\":2}]},\r\n{\"id\":\"abats\",\"name\":\"Abats\",\"items\":[{\"name\":\"Avec Abats\",\"price\":0},{\"name\":\"Sans Abats\",\"price\":0}]},\r\n{\"id\":\"nettoyage\",\"name\":\"Nettoyage\",\"items\":[{\"name\":\"Standard\",\"price\":0},{\"name\":\"Bien nettoy\\u00e9 (Sans plumes ni impuret\\u00e9s)\",\"price\":5}]},\r\n{\"id\":\"prepa\",\"name\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"items\":[{\"name\":\"Nature (Sans marinade)\",\"price\":0},{\"name\":\"Marin\\u00e9 Chermoula\",\"price\":15},{\"name\":\"Ail & Herbes\",\"price\":15},{\"name\":\"\\u00c9pic\\u00e9\",\"price\":15}]}\r\n],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('beldi-poussin-pour-potage-b11', 'Poussin pour potage', 'Poulet', 16, 'beldi', 18.00, 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/image-300x300.png', 5.0, 0, 'Active', 1, 'Poussin pour potage beldi', '{}', '2026-02-13 00:05:24', 0),
('beldi-vh-burger-b5', 'VH Burger', 'Poulet', 16, 'beldi', 100.00, 'https://latelier-dupoulet.com/wp-content/uploads/2024/02/VH-burger.jpg', 5.0, 0, 'Active', 1, 'VH Burger beldi', '{}', '2026-02-13 00:05:24', 0),
('forme-decoupe-3swyo', 'forme decoupe', 'Lydia York', 16, 'regular', 14.00, 'http://localhost:8000/uploads/prod_698e66bb2806a.png', 5.0, 0, 'Active', 1, 'Magnam praesentium Magnam praesentium Magnam praesentium Magnam praesentium Magnam praesentium Magnam praesentium Magnam praesentium Magnam praesentium Magnam praesentium ', '{\"min_weight\":\"1.5\",\"groups\":[{\"id\":\"shape\",\"name\":\"Peau\",\"items\":[{\"name\":\"Avec Peau\",\"price\":0},{\"name\":\"Sans Peau\",\"price\":0}]},{\"id\":\"skin\",\"name\":\"Abats\",\"items\":[{\"name\":\"Avec Abats\",\"price\":0},{\"name\":\"Sans Abats\",\"price\":0}]},{\"id\":\"marinade\",\"name\":\"Nettoyage\",\"items\":[{\"name\":\"Bien nettoy\\u00e9\",\"price\":10}]},{\"id\":\"cjw8qefiy\",\"name\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"items\":[{\"name\":\"Nature\",\"price\":0},{\"name\":\"Marin\\u00e9 Chermoula\",\"price\":10},{\"name\":\"Ail & Herbes\",\"price\":10},{\"name\":\"\\u00c9pic\\u00e9\",\"price\":10}]}],\"max_weight\":\"\"}', '2026-02-12 23:48:11', 0),
('reg-assortiments-barbecue-a1', 'Assortiments barbecue', 'Poulet', 16, 'regular', 65.00, NULL, 5.0, 0, 'Active', 1, 'Assortiments barbecue', '{}', '2026-02-13 00:05:24', 0),
('reg-blanquette-a16', 'Blanquette', 'Poulet', 16, 'regular', 35.00, 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/blanquette-1-300x281.jpg', 5.0, 0, 'Active', 1, 'Blanquette', '{}', '2026-02-13 00:05:24', 0),
('reg-brochettes-blanches-a12', 'Brochettes Blanches', 'Poulet', 16, 'regular', 83.00, 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/Brochettes-blanches.jpg', 5.0, 0, 'Active', 1, 'Brochettes Blanches', '{\"min_weight\":\"\",\"groups\":[{\"id\":\"prepa\",\"name\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"items\":[{\"name\":\"Nature (Sans marinade)\",\"price\":0},{\"name\":\"Marin\\u00e9 Chermoula\",\"price\":15},{\"name\":\"Ail & Herbes\",\"price\":15},{\"name\":\"\\u00c9pic\\u00e9\",\"price\":15}]}],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('reg-coquelet-a10', 'Coquelet', 'Poulet', 16, 'regular', 25.00, 'https://latelier-dupoulet.com/wp-content/uploads/2021/12/coquelet-2-1.jpg', 5.0, 0, 'Active', 1, 'Coquelet', '{}', '2026-02-13 00:05:24', 0),
('reg-cordon-bleu-a4', 'Cordon Bleu', 'Poulet', 16, 'regular', 125.00, 'https://latelier-dupoulet.com/wp-content/uploads/2024/02/Cordon-bleu.jpg', 5.0, 0, 'Active', 1, 'Cordon Bleu', '{\"min_weight\":\"\",\"groups\":[{\"id\":\"prepa\",\"name\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"items\":[{\"name\":\"Nature (Sans marinade)\",\"price\":0},{\"name\":\"Marin\\u00e9 Chermoula\",\"price\":15},{\"name\":\"Ail & Herbes\",\"price\":15},{\"name\":\"\\u00c9pic\\u00e9\",\"price\":15}]}],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('reg-escalope-a13', 'Escalope', 'Poulet', 16, 'regular', 83.00, 'https://latelier-dupoulet.com/wp-content/uploads/2020/07/original-catalogue-produit-11-12-2013-11-38-08-926-300x300.jpeg', 5.0, 0, 'Active', 1, 'Escalope', '{\"min_weight\":\"\",\"groups\":[{\"id\":\"prepa\",\"name\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"items\":[{\"name\":\"Nature (Sans marinade)\",\"price\":0},{\"name\":\"Marin\\u00e9 Chermoula\",\"price\":15},{\"name\":\"Ail & Herbes\",\"price\":15},{\"name\":\"\\u00c9pic\\u00e9\",\"price\":15}]}],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('reg-filet-entier-a15', 'Filet Entier', 'Poulet', 16, 'regular', 80.00, 'https://latelier-dupoulet.com/wp-content/uploads/2020/07/Filet-entier.jpg', 5.0, 0, 'Active', 1, 'Filet Entier', '{}', '2026-02-13 00:05:24', 0),
('reg-huile-dolive-extra-vierge-a2', 'Huile d\'olive extra vierge', 'Epicerie', 16, 'regular', 70.00, NULL, 5.0, 0, 'Active', 1, 'Huile d\'olive extra vierge', '{\"min_weight\":\"\",\"groups\":[{\"id\":\"volume\",\"name\":\"Volume\",\"items\":[{\"name\":\"0.5 L\",\"price\":0},{\"name\":\"1 L\",\"price\":0},{\"name\":\"2 L\",\"price\":0}]}],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('reg-nugget-fromage-a6', 'Nugget fromage', 'Poulet', 16, 'regular', 110.00, 'https://latelier-dupoulet.com/wp-content/uploads/2024/02/Nuggets-fromage.jpg', 5.0, 0, 'Active', 1, 'Nugget fromage', '{}', '2026-02-13 00:05:24', 0),
('reg-nuggets-a7', 'Nuggets', 'Poulet', 16, 'regular', 100.00, 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/nugget.jpeg', 5.0, 0, 'Active', 1, 'Nuggets', '{\"min_weight\":\"\",\"groups\":[]}', '2026-02-13 00:05:24', 1),
('reg-pot-de-khlii-poulet-a3', 'Pot de khlii poulet', 'Epicerie', 16, 'regular', 50.00, NULL, 5.0, 0, 'Active', 1, 'Pot de khlii poulet', '{\"min_weight\":\"\",\"groups\":[{\"id\":\"contenance\",\"name\":\"Contenance\",\"items\":[{\"name\":\"250 ml\",\"price\":0},{\"name\":\"500 ml\",\"price\":0},{\"name\":\"1 L\",\"price\":0}]}],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('reg-poulet-entier-a8', 'Poulet Entier', 'Poulet', 16, 'regular', 45.00, 'https://latelier-dupoulet.com/wp-content/uploads/2016/10/Poulet-entier.jpg', 5.0, 0, 'Active', 1, 'Poulet Entier', '{\"min_weight\":\"1\",\"groups\":[\r\n{\"id\":\"forme\",\"name\":\"Forme / D\\u00e9coupe\",\"items\":[{\"name\":\"Entier\",\"price\":0},{\"name\":\"D\\u00e9coup\\u00e9\",\"price\":3}]},\r\n{\"id\":\"peau\",\"name\":\"Peau\",\"items\":[{\"name\":\"Avec Peau\",\"price\":0},{\"name\":\"Sans Peau\",\"price\":2}]},\r\n{\"id\":\"abats\",\"name\":\"Abats\",\"items\":[{\"name\":\"Avec Abats\",\"price\":0},{\"name\":\"Sans Abats\",\"price\":0}]},\r\n{\"id\":\"nettoyage\",\"name\":\"Nettoyage\",\"items\":[{\"name\":\"Standard\",\"price\":0},{\"name\":\"Bien nettoy\\u00e9 (Sans plumes ni impuret\\u00e9s)\",\"price\":5}]},\r\n{\"id\":\"prepa\",\"name\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"items\":[{\"name\":\"Nature (Sans marinade)\",\"price\":0},{\"name\":\"Marin\\u00e9 Chermoula\",\"price\":15},{\"name\":\"Ail & Herbes\",\"price\":15},{\"name\":\"\\u00c9pic\\u00e9\",\"price\":15}]}\r\n],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('reg-poulet-fermier-a9', 'Poulet Fermier', 'Poulet', 16, 'regular', 90.00, 'https://latelier-dupoulet.com/wp-content/uploads/2020/07/poulets-fermiers-300x281-1.jpeg', 5.0, 0, 'Active', 1, 'Poulet Fermier', '{\"min_weight\":\"1\",\"groups\":[\r\n{\"id\":\"forme\",\"name\":\"Forme / D\\u00e9coupe\",\"items\":[{\"name\":\"Entier\",\"price\":0},{\"name\":\"D\\u00e9coup\\u00e9\",\"price\":3}]},\r\n{\"id\":\"peau\",\"name\":\"Peau\",\"items\":[{\"name\":\"Avec Peau\",\"price\":0},{\"name\":\"Sans Peau\",\"price\":2}]},\r\n{\"id\":\"abats\",\"name\":\"Abats\",\"items\":[{\"name\":\"Avec Abats\",\"price\":0},{\"name\":\"Sans Abats\",\"price\":0}]},\r\n{\"id\":\"nettoyage\",\"name\":\"Nettoyage\",\"items\":[{\"name\":\"Standard\",\"price\":0},{\"name\":\"Bien nettoy\\u00e9 (Sans plumes ni impuret\\u00e9s)\",\"price\":5}]},\r\n{\"id\":\"prepa\",\"name\":\"Pr\\u00e9paration sp\\u00e9ciale\",\"items\":[{\"name\":\"Nature (Sans marinade)\",\"price\":0},{\"name\":\"Marin\\u00e9 Chermoula\",\"price\":15},{\"name\":\"Ail & Herbes\",\"price\":15},{\"name\":\"\\u00c9pic\\u00e9\",\"price\":15}]}\r\n],\"max_weight\":\"\"}', '2026-02-13 00:05:24', 0),
('reg-poussin-pour-potage-a11', 'Poussin pour potage', 'Poulet', 16, 'regular', 18.00, 'https://latelier-dupoulet.com/wp-content/uploads/2022/01/image-300x300.png', 5.0, 0, 'Active', 1, 'Poussin pour potage', '{}', '2026-02-13 00:05:24', 0),
('reg-vh-burger-a5', 'VH Burger', 'Poulet', 16, 'regular', 100.00, 'https://latelier-dupoulet.com/wp-content/uploads/2024/02/VH-burger.jpg', 5.0, 0, 'Active', 1, 'VH Burger', '{}', '2026-02-13 00:05:24', 0);

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

--
-- Table structure for table `reviews`
--

CREATE TABLE `reviews` (
  `id` int(11) NOT NULL,
  `product_id` varchar(255) NOT NULL,
  `order_id` int(11) DEFAULT NULL,
  `author_name` varchar(255) NOT NULL DEFAULT 'Anonyme',
  `customer_phone` varchar(50) DEFAULT NULL,
  `rating` tinyint(4) NOT NULL DEFAULT 5 CHECK (`rating` >= 1 and `rating` <= 5),
  `text` text NOT NULL,
  `status` enum('pending','approved','hidden') DEFAULT 'approved',
  `is_testimonial` tinyint(1) DEFAULT 0,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `reviews`
--

INSERT INTO `reviews` (`id`, `product_id`, `order_id`, `author_name`, `customer_phone`, `rating`, `text`, `status`, `is_testimonial`, `created_at`) VALUES
(2, 'shelby-moore-g9j8f', NULL, 'Saad', NULL, 4, 'Aut quibusdam reiciendis incididunt saepe voluptate consequatur commodo a nulla', 'approved', 0, '2026-02-12 21:58:11'),
(3, 'reg-escalope-a13', NULL, 'Molestiae', NULL, 4, 'In pariatur Veniam pariatur Velit non do odit non nulla sequi fugiat', 'approved', 1, '2026-02-13 11:57:28'),
(4, 'reg-nuggets-a7', NULL, 'Saad', NULL, 4, 'Facere libero nisi do nihil', 'approved', 1, '2026-02-13 12:01:56'),
(6, 'reg-emince-a14', NULL, 'Sed delectus ad deserunt itaque culpa magna itaqu', NULL, 4, 'Est do fugit vitae id', 'approved', 1, '2026-02-13 12:09:17'),
(8, 'reg-cordon-bleu-a4', NULL, 'Barrett', NULL, 5, 'When I click \'Confirm Order\', I want the review section to appear so the user can leave a review, and it should automatically appear under the reviews of the products included in the confirmed order.', 'approved', 1, '2026-02-13 22:39:29'),
(9, 'reg-emince-a14', NULL, 'Charles', NULL, 4, 'I want each user to be able to leave a review only once.', 'approved', 1, '2026-02-13 22:43:55'),
(10, 'reg-nuggets-a7', NULL, 'Anthony', NULL, 5, 'OpinionsContext.jsx:95 \n POST http://localhost:8000/api/reviews.php 403 (Forbidden)\n(anonymous)	@	OpinionsContext.jsx:95\nhandleReviewSubmit	@	Checkout.jsx:15\nhandleSubmit	@	Checkout.jsx:104\n<form>		\nProductReviewForm	@	Checkout.jsx:126\n<ProductReviewForm>		\n(anonymous)	@	Checkout.jsx:69\nOrderSuccessWithReviews	@	Checkout.jsx:68\n<OrderSuccessWithReviews>		\nCheckout	@	Checkout.jsx:308', 'approved', 0, '2026-02-13 22:59:30'),
(12, 'reg-nuggets-a7', NULL, 'Desirae', NULL, 4, 'Est sit dolore qui dolorem ullam', 'approved', 0, '2026-02-13 23:11:39'),
(13, 'reg-nuggets-a7', NULL, 'Zephania', NULL, 5, 'Minim nemo facilis aute dolorem nulla ea quia hic esse ipsa quisquam aut assumenda', 'approved', 0, '2026-02-13 23:28:00'),
(14, 'reg-escalope-a13', NULL, 'Matthew', NULL, 5, 'zx', 'hidden', 0, '2026-02-16 23:05:34'),
(15, 'reg-nuggets-a7', NULL, 'Logan', NULL, 5, 'asdasddasdsa', 'hidden', 0, '2026-02-16 23:09:59'),
(16, 'reg-emince-a14', 55, 'Emma', '+1 (753) 318-5479', 3, 'esdf', 'pending', 0, '2026-02-25 23:48:00'),
(17, 'reg-emince-a14', 56, 'Jesse', '+1 (271) 603-8492', 2, 'saddsasa', 'pending', 0, '2026-02-25 23:54:26'),
(18, 'reg-nuggets-a7', 57, 'Madaline', '+1 (919) 816-5985', 4, '200', 'pending', 0, '2026-02-26 00:03:24');

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

--
-- Indexes for table `messages`
--
ALTER TABLE `messages`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_status` (`status`),
  ADD KEY `idx_created_at` (`created_at`);

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

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

--
-- Indexes for table `products`
--
ALTER TABLE `products`
  ADD PRIMARY KEY (`id`),
  ADD KEY `fk_product_category` (`category_id`);

--
-- Indexes for table `reviews`
--
ALTER TABLE `reviews`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_product_id` (`product_id`),
  ADD KEY `idx_created_at` (`created_at`),
  ADD KEY `idx_status` (`status`),
  ADD KEY `idx_order_product` (`order_id`,`product_id`),
  ADD KEY `idx_product_phone` (`product_id`,`customer_phone`);

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

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

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

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

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

--
-- Constraints for dumped tables
--

--
-- Constraints for table `order_items`
--
ALTER TABLE `order_items`
  ADD CONSTRAINT `1` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `products`
--
ALTER TABLE `products`
  ADD CONSTRAINT `fk_product_category` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE SET NULL;
COMMIT;

