CREATE DATABASE IF NOT EXISTS `partsltd_prod` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; USE `partsltd_prod`; -- MySQL dump 10.13 Distrib 8.0.36, for Win64 (x86_64) -- -- Host: localhost Database: partsltd_prod -- ------------------------------------------------------ -- Server version 8.0.35 /*!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 */; /*!50503 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `file_type` -- DROP TABLE IF EXISTS `file_type`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `file_type` ( `id_type` int NOT NULL AUTO_INCREMENT, `code` varchar(50) DEFAULT NULL, `name` varchar(100) DEFAULT NULL, `extension` varchar(50) DEFAULT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `updated_last_on` datetime DEFAULT NULL, `updated_last_by` varchar(100) DEFAULT NULL, PRIMARY KEY (`id_type`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `file_type` -- LOCK TABLES `file_type` WRITE; /*!40000 ALTER TABLE `file_type` DISABLE KEYS */; INSERT INTO `file_type` VALUES (1,'JPEG','Joint Photographic Export Group','jpg','2024-04-28 19:03:07','root@localhost',NULL,NULL),(2,'PNG','Portable Network Graphic','png','2024-04-28 19:03:07','root@localhost',NULL,NULL),(3,'GIF','GIF','gif','2024-04-28 19:03:07','root@localhost',NULL,NULL),(4,'MPEG-4','Multimedia Photographic Export Group 4','mp4','2024-04-28 19:03:07','root@localhost',NULL,NULL); /*!40000 ALTER TABLE `file_type` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_File_Type` BEFORE INSERT ON `file_type` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_File_Type` BEFORE UPDATE ON `file_type` FOR EACH ROW BEGIN INSERT INTO File_Type_Audit ( id_type, name_field, value_prev, value_new ) # Changed code SELECT NEW.id_type, 'code', OLD.code, NEW.code WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_type, 'name', OLD.name, NEW.name WHERE NOT OLD.name <=> NEW.name UNION # Changed extension SELECT NEW.id_type, 'extension', CONVERT(OLD.extension, CHAR), CONVERT(NEW.extension, CHAR) WHERE NOT OLD.extension <=> NEW.extension ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `file_type_audit` -- DROP TABLE IF EXISTS `file_type_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `file_type_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_type` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `updated_last_on` datetime DEFAULT NULL, `updated_last_by` varchar(100) DEFAULT NULL, PRIMARY KEY (`id_audit`), KEY `FK_File_Type_Audit_id_type` (`id_type`), CONSTRAINT `FK_File_Type_Audit_id_type` FOREIGN KEY (`id_type`) REFERENCES `file_type` (`id_type`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `file_type_audit` -- LOCK TABLES `file_type_audit` WRITE; /*!40000 ALTER TABLE `file_type_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `file_type_audit` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_File_Type_Audit` BEFORE INSERT ON `file_type_audit` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_File_Type_Audit` BEFORE UPDATE ON `file_type_audit` FOR EACH ROW BEGIN SET NEW.updated_last_on = NOW(); SET NEW.updated_last_by = CURRENT_USER(); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_access_level` -- DROP TABLE IF EXISTS `shop_access_level`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_access_level` ( `id_access_level` int NOT NULL AUTO_INCREMENT, `code` varchar(50) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `priority` int NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_access_level`), KEY `FK_Shop_Access_Level_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Access_Level_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_access_level` -- LOCK TABLES `shop_access_level` WRITE; /*!40000 ALTER TABLE `shop_access_level` DISABLE KEYS */; INSERT INTO `shop_access_level` VALUES (1,'VIEW','View',3,_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,'EDIT','Edit',2,_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL),(3,'ADMIN','Admin',1,_binary '',3,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_access_level` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Access_Level` BEFORE INSERT ON `shop_access_level` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Access_Level` BEFORE UPDATE ON `shop_access_level` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Access_Level_Audit ( id_access_level, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_access_level, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT (OLD.code <=> NEW.code) UNION # Changed name SELECT NEW.id_access_level, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT (OLD.name <=> NEW.name) UNION # Changed priority SELECT NEW.id_access_level, 'priority', CONVERT(OLD.priority, CHAR), CONVERT(NEW.priority, CHAR), NEW.id_change_set WHERE NOT (OLD.priority <=> NEW.priority) UNION # Changed active SELECT NEW.id_access_level, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_access_level, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT OLD.display_order <=> NEW.display_order ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_access_level_audit` -- DROP TABLE IF EXISTS `shop_access_level_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_access_level_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_access_level` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Access_Level_Audit_id_access_level` (`id_access_level`), KEY `FK_Shop_Access_Level_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Access_Level_Audit_id_access_level` FOREIGN KEY (`id_access_level`) REFERENCES `shop_access_level` (`id_access_level`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Access_Level_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_access_level_audit` -- LOCK TABLES `shop_access_level_audit` WRITE; /*!40000 ALTER TABLE `shop_access_level_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_access_level_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_address` -- DROP TABLE IF EXISTS `shop_address`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_address` ( `id_address` int NOT NULL AUTO_INCREMENT, `id_user` varchar(200) NOT NULL, `id_region` int NOT NULL, `name_full` varchar(255) NOT NULL, `phone_number` varchar(20) NOT NULL, `postcode` varchar(20) NOT NULL, `address_line_1` varchar(100) NOT NULL, `address_line_2` varchar(100) NOT NULL, `city` varchar(50) NOT NULL, `county` varchar(100) NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_address`), KEY `FK_Shop_Address_id_user` (`id_user`), KEY `FK_Shop_Address_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Address_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Address_id_user` FOREIGN KEY (`id_user`) REFERENCES `shop_user` (`id_user`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_address` -- LOCK TABLES `shop_address` WRITE; /*!40000 ALTER TABLE `shop_address` DISABLE KEYS */; INSERT INTO `shop_address` VALUES (1,'auth0|6582b95c895d09a70ba10fef',1,'Teddy','07375 571430','NN6 6EB','The Laurels','Cold Ashby Road','Cold Ashby','Northamptonshire',_binary '','2024-04-28 19:03:07','root@localhost',NULL),(2,'parts_guest',1,'Guest','07375 571430','NN6 6EB','The Laurels','Cold Ashby Road','Cold Ashby','Northamptonshire',_binary '','2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_address` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Address` BEFORE INSERT ON `shop_address` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Address` BEFORE UPDATE ON `shop_address` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Address_Audit ( id_address, name_field, value_prev, value_new, id_change_set ) # Changed region SELECT NEW.id_address, 'id_region', OLD.id_region, NEW.id_region, NEW.id_change_set WHERE NOT OLD.id_region <=> NEW.id_region UNION # Changed name_full SELECT NEW.id_address, 'name_full', OLD.name_full, NEW.name_full, NEW.id_change_set WHERE NOT OLD.name_full <=> NEW.name_full UNION # Changed phone_number SELECT NEW.id_address, 'phone_number', OLD.phone_number, NEW.phone_number, NEW.id_change_set WHERE NOT OLD.phone_number <=> NEW.phone_number UNION # Changed postcode SELECT NEW.id_address, 'postcode', OLD.postcode, NEW.postcode, NEW.id_change_set WHERE NOT OLD.postcode <=> NEW.postcode UNION # Changed address_line_1 SELECT NEW.id_address, 'address_line_1', OLD.address_line_1, NEW.address_line_1, NEW.id_change_set WHERE NOT OLD.address_line_1 <=> NEW.address_line_1 UNION # Changed address_line_2 SELECT NEW.id_address, 'address_line_2', OLD.address_line_2, NEW.address_line_2, NEW.id_change_set WHERE NOT OLD.address_line_2 <=> NEW.address_line_2 UNION # Changed city SELECT NEW.id_address, 'city', OLD.city, NEW.city, NEW.id_change_set WHERE NOT OLD.city <=> NEW.city UNION # Changed county SELECT NEW.id_address, 'county', OLD.county, NEW.county, NEW.id_change_set WHERE NOT OLD.county <=> NEW.county UNION # Changed active SELECT NEW.id_address, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_address_audit` -- DROP TABLE IF EXISTS `shop_address_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_address_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_address` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Address_Audit_id_address` (`id_address`), KEY `FK_Shop_Address_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Address_Audit_id_address` FOREIGN KEY (`id_address`) REFERENCES `shop_address` (`id_address`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Address_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_address_audit` -- LOCK TABLES `shop_address_audit` WRITE; /*!40000 ALTER TABLE `shop_address_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_address_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_category` -- DROP TABLE IF EXISTS `shop_category`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_category` ( `id_category` int NOT NULL AUTO_INCREMENT, `code` varchar(50) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `description` varchar(4000) DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_category`), KEY `FK_Shop_Product_Category_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Category_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_category` -- LOCK TABLES `shop_category` WRITE; /*!40000 ALTER TABLE `shop_category` DISABLE KEYS */; INSERT INTO `shop_category` VALUES (1,'ASS','Assistive Devices','Braille product line and other assistive devices',_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,'MISC','Miscellaneous','Not category allocated products',_binary '',99,'2024-04-28 19:03:07','root@localhost',NULL),(3,'TECH','Technology','Technological devices',_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_category` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Product_Category` BEFORE INSERT ON `shop_category` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Product_Category` BEFORE UPDATE ON `shop_category` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Product_Category_Audit ( id_category, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_category, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_category, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed description SELECT NEW.id_category, 'description', OLD.description, NEW.description, NEW.id_change_set WHERE NOT OLD.description <=> NEW.description UNION # Changed active SELECT NEW.id_category, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_category, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT OLD.display_order <=> NEW.display_order ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_category_audit` -- DROP TABLE IF EXISTS `shop_category_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_category_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_category` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Product_Category_Audit_id_category` (`id_category`), KEY `FK_Shop_Product_Category_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Category_Audit_id_category` FOREIGN KEY (`id_category`) REFERENCES `shop_category` (`id_category`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Category_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_category_audit` -- LOCK TABLES `shop_category_audit` WRITE; /*!40000 ALTER TABLE `shop_category_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_category_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_currency` -- DROP TABLE IF EXISTS `shop_currency`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_currency` ( `id_currency` int NOT NULL AUTO_INCREMENT, `code` varchar(50) NOT NULL, `name` varchar(255) NOT NULL, `symbol` varchar(1) NOT NULL, `factor_from_GBP` float NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_currency`), KEY `FK_Shop_Currency_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Currency_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_currency` -- LOCK TABLES `shop_currency` WRITE; /*!40000 ALTER TABLE `shop_currency` DISABLE KEYS */; INSERT INTO `shop_currency` VALUES (1,'GBP','Great British Pound','£',1,_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,'EUR','Euro','€',1.17,_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_currency` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Currency` BEFORE INSERT ON `shop_currency` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Currency` BEFORE UPDATE ON `shop_currency` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Currency_Audit ( id_currency, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_currency, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_currency, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed symbol SELECT NEW.id_currency, 'symbol', OLD.symbol, NEW.symbol, NEW.id_change_set WHERE NOT OLD.symbol <=> NEW.symbol UNION # Changed ratio_2_GBP SELECT NEW.id_currency, 'factor_from_GBP', OLD.factor_from_GBP, NEW.factor_from_GBP, NEW.id_change_set WHERE NOT OLD.factor_from_GBP <=> NEW.factor_from_GBP UNION # Changed active SELECT NEW.id_currency, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_currency, 'display_order', CONVERT(display_order, CHAR), CONVERT(display_order, CHAR), NEW.id_change_set WHERE NOT (OLD.display_order <=> NEW.display_order) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_currency_audit` -- DROP TABLE IF EXISTS `shop_currency_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_currency_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_currency` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Currency_Audit_id_currency` (`id_currency`), KEY `FK_Shop_Currency_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Currency_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Currency_Audit_id_currency` FOREIGN KEY (`id_currency`) REFERENCES `shop_currency` (`id_currency`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_currency_audit` -- LOCK TABLES `shop_currency_audit` WRITE; /*!40000 ALTER TABLE `shop_currency_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_currency_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_delivery_option` -- DROP TABLE IF EXISTS `shop_delivery_option`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_delivery_option` ( `id_option` int NOT NULL AUTO_INCREMENT, `code` varchar(50) NOT NULL, `name` varchar(100) NOT NULL, `description` varchar(4000) DEFAULT NULL, `latency_delivery_min` int NOT NULL, `latency_delivery_max` int NOT NULL, `quantity_min` int NOT NULL, `quantity_max` int NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_option`), KEY `FK_Shop_Delivery_Option_Type_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Delivery_Option_Type_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_delivery_option` -- LOCK TABLES `shop_delivery_option` WRITE; /*!40000 ALTER TABLE `shop_delivery_option` DISABLE KEYS */; INSERT INTO `shop_delivery_option` VALUES (1,'COLLECT','Collection',NULL,0,0,0,1,_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,'SIGNED_1','First Class Signed-For',NULL,2,4,0,1,_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_delivery_option` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Delivery_Option` BEFORE INSERT ON `shop_delivery_option` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Delivery_Option` BEFORE UPDATE ON `shop_delivery_option` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Delivery_Option_Audit ( id_option, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_option, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_option, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed latency_delivery_min SELECT NEW.id_option, 'latency_delivery_min', CONVERT(OLD.latency_delivery_min, CHAR), CONVERT(NEW.latency_delivery_min, CHAR), NEW.id_change_set WHERE NOT OLD.latency_delivery_min <=> NEW.latency_delivery_min UNION # Changed latency_delivery_max SELECT NEW.id_option, 'latency_delivery_max', CONVERT(OLD.latency_delivery_max, CHAR), CONVERT(NEW.latency_delivery_max, CHAR), NEW.id_change_set WHERE NOT OLD.latency_delivery_max <=> NEW.latency_delivery_max UNION # Changed quantity_min SELECT NEW.id_option, 'quantity_min', CONVERT(OLD.quantity_min, CHAR), CONVERT(NEW.quantity_min, CHAR), NEW.id_change_set WHERE NOT OLD.quantity_min <=> NEW.quantity_min UNION # Changed quantity_max SELECT NEW.id_option, 'quantity_max', CONVERT(OLD.quantity_max, CHAR), CONVERT(NEW.quantity_max, CHAR), NEW.id_change_set WHERE NOT OLD.quantity_max <=> NEW.quantity_max UNION # Changed active SELECT NEW.id_option, 'active', CONVERT(OLD.active, CHAR), CONVERT(NEW.active, CHAR), NEW.id_change_set WHERE NOT OLD.active <=> NEW.active UNION # Changed display_order SELECT NEW.id_option, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT OLD.display_order <=> NEW.display_order ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_delivery_option_audit` -- DROP TABLE IF EXISTS `shop_delivery_option_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_delivery_option_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_option` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Delivery_Option_Audit_id_option` (`id_option`), KEY `FK_Shop_Delivery_Option_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Delivery_Option_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Delivery_Option_Audit_id_option` FOREIGN KEY (`id_option`) REFERENCES `shop_delivery_option` (`id_option`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_delivery_option_audit` -- LOCK TABLES `shop_delivery_option_audit` WRITE; /*!40000 ALTER TABLE `shop_delivery_option_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_delivery_option_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_discount` -- DROP TABLE IF EXISTS `shop_discount`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_discount` ( `id_discount` int NOT NULL AUTO_INCREMENT, `code` varchar(50) NOT NULL, `name` varchar(200) NOT NULL, `id_product` int NOT NULL, `id_permutation` int DEFAULT NULL, `multiplier` float NOT NULL DEFAULT '1', `subtractor` float NOT NULL DEFAULT '0', `apply_multiplier_first` bit(1) DEFAULT b'1', `quantity_min` float NOT NULL DEFAULT '0', `quantity_max` float NOT NULL, `date_start` datetime NOT NULL, `date_end` datetime NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_discount`), KEY `FK_Shop_Discount_id_product` (`id_product`), KEY `FK_Shop_Discount_id_permutation` (`id_permutation`), KEY `FK_Shop_Discount_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Discount_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Discount_id_permutation` FOREIGN KEY (`id_permutation`) REFERENCES `shop_product_permutation` (`id_permutation`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Discount_id_product` FOREIGN KEY (`id_product`) REFERENCES `shop_product` (`id_product`), CONSTRAINT `shop_discount_chk_1` CHECK ((`multiplier` > 0)) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_discount` -- LOCK TABLES `shop_discount` WRITE; /*!40000 ALTER TABLE `shop_discount` DISABLE KEYS */; INSERT INTO `shop_discount` VALUES (1,'CRIMBO50','Christmas 50% off sale!',1,1,0.5,0,_binary '',3,9,'2024-04-28 19:03:07','2023-12-31 23:59:59',_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,'CRIMBO50','Christmas 50% off sale!',1,2,0.5,0,_binary '',3,9,'2024-04-28 19:03:07','2023-12-31 23:59:59',_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_discount` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Discount` BEFORE INSERT ON `shop_discount` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Discount` BEFORE UPDATE ON `shop_discount` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Discount_Audit ( id_discount, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_discount, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_discount, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed multiplier SELECT NEW.id_discount, 'multiplier', OLD.multiplier, NEW.multiplier, NEW.id_change_set WHERE NOT OLD.multiplier <=> NEW.multiplier UNION # Changed subtractor SELECT NEW.id_discount, 'subtractor', OLD.subtractor, NEW.subtractor, NEW.id_change_set WHERE NOT OLD.subtractor <=> NEW.subtractor UNION # Changed apply_multiplier_first SELECT NEW.id_discount, 'apply_multiplier_first', CONVERT(CONVERT(OLD.apply_multiplier_first, SIGNED), CHAR), CONVERT(CONVERT(NEW.apply_multiplier_first, SIGNED), CHAR), NEW.id_change_set WHERE NOT OLD.apply_multiplier_first <=> NEW.apply_multiplier_first UNION # Changed quantity_min SELECT NEW.id_discount, 'quantity_min', OLD.quantity_min, NEW.quantity_min, NEW.id_change_set WHERE NOT OLD.quantity_min <=> NEW.quantity_min UNION # Changed quantity_max SELECT NEW.id_discount, 'quantity_max', OLD.quantity_max, NEW.quantity_max, NEW.id_change_set WHERE NOT OLD.quantity_max <=> NEW.quantity_max UNION # Changed date_start SELECT NEW.id_discount, 'date_start', OLD.date_start, NEW.date_start, NEW.id_change_set WHERE NOT OLD.date_start <=> NEW.date_start UNION # Changed date_end SELECT NEW.id_discount, 'date_end', OLD.date_end, NEW.date_end, NEW.id_change_set WHERE NOT OLD.date_end <=> NEW.date_end UNION # Changed display_order SELECT NEW.id_discount, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT OLD.display_order <=> NEW.display_order UNION # Changed active SELECT NEW.id_discount, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT OLD.active <=> NEW.active ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_discount_audit` -- DROP TABLE IF EXISTS `shop_discount_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_discount_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_discount` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Discount_Audit_id_discount` (`id_discount`), KEY `FK_Shop_Discount_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Discount_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Discount_Audit_id_discount` FOREIGN KEY (`id_discount`) REFERENCES `shop_discount` (`id_discount`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_discount_audit` -- LOCK TABLES `shop_discount_audit` WRITE; /*!40000 ALTER TABLE `shop_discount_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_discount_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_discount_region_currency_link` -- DROP TABLE IF EXISTS `shop_discount_region_currency_link`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_discount_region_currency_link` ( `id_link` int NOT NULL AUTO_INCREMENT, `id_discount` int NOT NULL, `id_region` int NOT NULL, `id_currency` int NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_link`), KEY `FK_Shop_Discount_Region_Currency_Link_id_discount` (`id_discount`), KEY `FK_Shop_Discount_Region_Currency_Link_id_region` (`id_region`), KEY `FK_Shop_Discount_Region_Currency_Link_id_currency` (`id_currency`), KEY `FK_Shop_Discount_Region_Currency_Link_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Discount_Region_Currency_Link_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Discount_Region_Currency_Link_id_currency` FOREIGN KEY (`id_currency`) REFERENCES `shop_currency` (`id_currency`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Discount_Region_Currency_Link_id_discount` FOREIGN KEY (`id_discount`) REFERENCES `shop_discount` (`id_discount`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Discount_Region_Currency_Link_id_region` FOREIGN KEY (`id_region`) REFERENCES `shop_region` (`id_region`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_discount_region_currency_link` -- LOCK TABLES `shop_discount_region_currency_link` WRITE; /*!40000 ALTER TABLE `shop_discount_region_currency_link` DISABLE KEYS */; INSERT INTO `shop_discount_region_currency_link` VALUES (1,1,1,1,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(2,2,1,1,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(3,1,1,2,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(4,2,1,2,_binary '','2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_discount_region_currency_link` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Discount_Region_Currency_Link` BEFORE INSERT ON `shop_discount_region_currency_link` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Discount_Region_Currency_Link` BEFORE UPDATE ON `shop_discount_region_currency_link` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Discount_Region_Currency_Link_Audit ( id_link, name_field, value_prev, value_new, id_change_set ) /* # Changed id_discount SELECT NEW.id_link, 'id_discount', CONVERT(OLD.id_discount, CHAR), CONVERT(NEW.id_discount, CHAR), NEW.id_change_set WHERE NOT OLD.id_discount <=> NEW.id_discount UNION # Changed id_region SELECT NEW.id_link, 'id_region', CONVERT(OLD.id_region, CHAR), CONVERT(NEW.id_region, CHAR), NEW.id_change_set WHERE NOT OLD.id_region <=> NEW.id_region UNION */ # Changed active SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_discount_region_currency_link_audit` -- DROP TABLE IF EXISTS `shop_discount_region_currency_link_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_discount_region_currency_link_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_link` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Discount_Region_Currency_Link_Audit_id_link` (`id_link`), KEY `FK_Shop_Discount_Region_Currency_Link_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Discount_Region_Currency_Link_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Discount_Region_Currency_Link_Audit_id_link` FOREIGN KEY (`id_link`) REFERENCES `shop_discount_region_currency_link` (`id_link`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_discount_region_currency_link_audit` -- LOCK TABLES `shop_discount_region_currency_link_audit` WRITE; /*!40000 ALTER TABLE `shop_discount_region_currency_link_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_discount_region_currency_link_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_general` -- DROP TABLE IF EXISTS `shop_general`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_general` ( `id_general` int NOT NULL AUTO_INCREMENT, `quantity_max` float DEFAULT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_general`), KEY `CHK_Shop_General_id_change_set` (`id_change_set`), CONSTRAINT `CHK_Shop_General_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_general` -- LOCK TABLES `shop_general` WRITE; /*!40000 ALTER TABLE `shop_general` DISABLE KEYS */; INSERT INTO `shop_general` VALUES (1,10,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_general` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_General` BEFORE INSERT ON `shop_general` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_General` BEFORE UPDATE ON `shop_general` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_General_Audit ( id_general, name_field, value_prev, value_new, id_change_set ) # Changed quantity max SELECT NEW.id_general, 'quantity_max', CONVERT(OLD.quantity_max, CHAR), CONVERT(NEW.quantity_max, CHAR), NEW.id_change_set WHERE NOT OLD.quantity_max <=> NEW.quantity_max ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_general_audit` -- DROP TABLE IF EXISTS `shop_general_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_general_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_general` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_General_Audit_id_general` (`id_general`), KEY `FK_Shop_General_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_General_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_General_Audit_id_general` FOREIGN KEY (`id_general`) REFERENCES `shop_general` (`id_general`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_general_audit` -- LOCK TABLES `shop_general_audit` WRITE; /*!40000 ALTER TABLE `shop_general_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_general_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_image` -- DROP TABLE IF EXISTS `shop_image`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_image` ( `id_image` int NOT NULL AUTO_INCREMENT, `id_type_image` int NOT NULL, `id_type_file` int NOT NULL, `id_product` int DEFAULT NULL, `id_permutation` int DEFAULT NULL, `url` varchar(255) DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_image`), KEY `FK_Shop_Image_id_type_image` (`id_type_image`), KEY `FK_Shop_Image_id_type_file` (`id_type_file`), KEY `FK_Shop_Image_id_product` (`id_product`), KEY `FK_Shop_Image_id_permutation` (`id_permutation`), KEY `FK_Shop_Image_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Image_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Image_id_permutation` FOREIGN KEY (`id_permutation`) REFERENCES `shop_product_permutation` (`id_permutation`), CONSTRAINT `FK_Shop_Image_id_product` FOREIGN KEY (`id_product`) REFERENCES `shop_product` (`id_product`), CONSTRAINT `FK_Shop_Image_id_type_file` FOREIGN KEY (`id_type_file`) REFERENCES `file_type` (`id_type`), CONSTRAINT `FK_Shop_Image_id_type_image` FOREIGN KEY (`id_type_image`) REFERENCES `shop_image_type` (`id_type`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_image` -- LOCK TABLES `shop_image` WRITE; /*!40000 ALTER TABLE `shop_image` DISABLE KEYS */; INSERT INTO `shop_image` VALUES (1,1,1,1,1,'/static/images/prod_PB0NUOSEs06ymG.jpg',_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,1,1,1,2,'/static/images/prod_PB0NUOSEs06ymG.jpg',_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL),(3,1,1,2,3,'/static/images/prod_PB0NUOSEs06ymG.jpg',_binary '',3,'2024-04-28 19:03:07','root@localhost',NULL),(4,1,1,3,4,'/static/images/prod_.jpg',_binary '',4,'2024-04-28 19:03:07','root@localhost',NULL),(5,1,1,4,5,'/static/images/prod_1.jpg',_binary '',5,'2024-04-28 19:03:07','root@localhost',NULL),(6,1,1,5,6,'/static/images/prod_2.jpg',_binary '',6,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_image` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Image` BEFORE INSERT ON `shop_image` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Image` BEFORE UPDATE ON `shop_image` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change set ID must be provided.'; END IF; IF ISNULL(NEW.id_product) AND ISNULL(NEW.id_permutation) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Image must NOT have ID for product AND product permutation.'; END IF; INSERT INTO Shop_Image_Audit ( id_image, name_field, value_prev, value_new, id_change_set ) # Changed id_type_image SELECT NEW.id_image, 'id_type_image', CONVERT(OLD.id_type_image, CHAR), CONVERT(NEW.id_type_image, CHAR), NEW.id_change_set WHERE NOT OLD.id_type_image <=> NEW.id_type_image UNION # Changed id_type_file SELECT NEW.id_image, 'id_type_file', CONVERT(OLD.id_type_file, CHAR), CONVERT(NEW.id_type_file, CHAR), NEW.id_change_set WHERE NOT OLD.id_type_file <=> NEW.id_type_file UNION # Changed id_product SELECT NEW.id_image, 'id_product', CONVERT(OLD.id_product, CHAR), CONVERT(NEW.id_product, CHAR), NEW.id_change_set WHERE NOT OLD.id_product <=> NEW.id_product UNION # Changed id_permutation SELECT NEW.id_image, 'id_permutation', CONVERT(OLD.id_permutation, CHAR), CONVERT(NEW.id_permutation, CHAR), NEW.id_change_set WHERE NOT OLD.id_permutation <=> NEW.id_permutation UNION # Changed url SELECT NEW.id_image, 'url', OLD.url, NEW.url, NEW.id_change_set WHERE NOT OLD.url <=> NEW.url UNION # Changed active SELECT NEW.id_image, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_image, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT (OLD.display_order <=> NEW.display_order) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_image_audit` -- DROP TABLE IF EXISTS `shop_image_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_image_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_image` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Image_Audit_id_image` (`id_image`), KEY `FK_Shop_Image_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Image_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Image_Audit_id_image` FOREIGN KEY (`id_image`) REFERENCES `shop_image` (`id_image`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_image_audit` -- LOCK TABLES `shop_image_audit` WRITE; /*!40000 ALTER TABLE `shop_image_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_image_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_image_type` -- DROP TABLE IF EXISTS `shop_image_type`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_image_type` ( `id_type` int NOT NULL AUTO_INCREMENT, `code` varchar(50) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `name_plural` varchar(256) DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_type`), KEY `FK_Shop_Image_Type_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Image_Type_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_image_type` -- LOCK TABLES `shop_image_type` WRITE; /*!40000 ALTER TABLE `shop_image_type` DISABLE KEYS */; INSERT INTO `shop_image_type` VALUES (1,'FULL','Full Quality Image','Full Quality Images',_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,'LOW','Low Quality Image','Low Quality Images',_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL),(3,'THUMBNAIL','Thumbnail Image','Thumbnail Images',_binary '',3,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_image_type` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Image_Type` BEFORE INSERT ON `shop_image_type` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Image_Type` BEFORE UPDATE ON `shop_image_type` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Image_Type_Audit ( id_type, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_type, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_type, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed name_plural SELECT NEW.id_type, 'name_plural', OLD.name_plural, NEW.name_plural, NEW.id_change_set WHERE NOT OLD.name_plural <=> NEW.name_plural UNION # Changed active SELECT NEW.id_type, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_type, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT (OLD.display_order <=> NEW.display_order) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_image_type_audit` -- DROP TABLE IF EXISTS `shop_image_type_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_image_type_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_type` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Image_Type_Audit_id_type` (`id_type`), KEY `FK_Shop_Image_Type_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Image_Type_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Image_Type_Audit_id_type` FOREIGN KEY (`id_type`) REFERENCES `shop_image_type` (`id_type`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_image_type_audit` -- LOCK TABLES `shop_image_type_audit` WRITE; /*!40000 ALTER TABLE `shop_image_type_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_image_type_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_msg_error_type` -- DROP TABLE IF EXISTS `shop_msg_error_type`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_msg_error_type` ( `id_type` int NOT NULL AUTO_INCREMENT, `code` varchar(50) NOT NULL, `name` varchar(500) NOT NULL, `description` varchar(1000) DEFAULT NULL, PRIMARY KEY (`id_type`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_msg_error_type` -- LOCK TABLES `shop_msg_error_type` WRITE; /*!40000 ALTER TABLE `shop_msg_error_type` DISABLE KEYS */; INSERT INTO `shop_msg_error_type` VALUES (1,'BAD_DATA','Invalid data','Rubbish data'),(2,'NO_PERMISSION','No permission','Not authorised'),(3,'PRODUCT_AVAILABILITY','Product not available','Product not available'); /*!40000 ALTER TABLE `shop_msg_error_type` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_permission` -- DROP TABLE IF EXISTS `shop_permission`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_permission` ( `id_permission` int NOT NULL AUTO_INCREMENT, `code` varchar(50) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `id_permission_group` int NOT NULL, `id_access_level_required` int NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_permission`), KEY `FK_Shop_Permission_id_permission_group` (`id_permission_group`), KEY `FK_Shop_Permission_id_access_level_required` (`id_access_level_required`), KEY `FK_Shop_Permission_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Permission_id_access_level_required` FOREIGN KEY (`id_access_level_required`) REFERENCES `shop_access_level` (`id_access_level`), CONSTRAINT `FK_Shop_Permission_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Permission_id_permission_group` FOREIGN KEY (`id_permission_group`) REFERENCES `shop_permission_group` (`id_group`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_permission` -- LOCK TABLES `shop_permission` WRITE; /*!40000 ALTER TABLE `shop_permission` DISABLE KEYS */; INSERT INTO `shop_permission` VALUES (1,'HOME','Home Page',2,1,_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,'STORE_PRODUCT','Store Product Page',3,1,_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL),(3,'STORE_USER','Store User Account Page',4,2,_binary '',3,'2024-04-28 19:03:07','root@localhost',NULL),(4,'STORE_ADMIN','Store Admin Page',1,3,_binary '',4,'2024-04-28 19:03:07','root@localhost',NULL),(5,'CONTACT_US','Contact Us Page',2,1,_binary '',99,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_permission` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Permission` BEFORE INSERT ON `shop_permission` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Permission` BEFORE UPDATE ON `shop_permission` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Permission_Audit ( id_permission, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_permission, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_permission, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed id_permission_group SELECT NEW.id_permission, 'id_permission_group', CONVERT(OLD.id_permission_group, CHAR), CONVERT(NEW.id_permission_group, CHAR), NEW.id_change_set WHERE NOT OLD.id_permission_group <=> NEW.id_permission_group UNION # Changed Id_access_level_required SELECT NEW.id_permission, 'Id_access_level_required', CONVERT(OLD.Id_access_level_required, CHAR), CONVERT(NEW.Id_access_level_required, CHAR), NEW.id_change_set WHERE NOT OLD.Id_access_level_required <=> NEW.Id_access_level_required UNION # Changed active SELECT NEW.id_permission, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_permission, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT OLD.display_order <=> NEW.display_order ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_permission_audit` -- DROP TABLE IF EXISTS `shop_permission_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_permission_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_permission` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Permission_Audit_id_permission` (`id_permission`), KEY `FK_Shop_Permission_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Permission_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Permission_Audit_id_permission` FOREIGN KEY (`id_permission`) REFERENCES `shop_permission` (`id_permission`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_permission_audit` -- LOCK TABLES `shop_permission_audit` WRITE; /*!40000 ALTER TABLE `shop_permission_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_permission_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_permission_group` -- DROP TABLE IF EXISTS `shop_permission_group`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_permission_group` ( `id_group` int NOT NULL AUTO_INCREMENT, `code` varchar(50) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_group`), KEY `FK_Shop_Permission_Group_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Permission_Group_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_permission_group` -- LOCK TABLES `shop_permission_group` WRITE; /*!40000 ALTER TABLE `shop_permission_group` DISABLE KEYS */; INSERT INTO `shop_permission_group` VALUES (1,'ADMIN','Website Admin',_binary '',0,'2024-04-28 19:03:07','root@localhost',NULL),(2,'HOME','Home, Contact Us, and other public information',_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(3,'PRODUCT','Store Products',_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL),(4,'USER','Store User',_binary '',3,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_permission_group` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Permission_Group` BEFORE INSERT ON `shop_permission_group` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Permission_Group` BEFORE UPDATE ON `shop_permission_group` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Permission_Group_Audit ( id_group, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_group, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_group, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed active SELECT NEW.id_group, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_group, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT OLD.display_order <=> NEW.display_order ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_permission_group_audit` -- DROP TABLE IF EXISTS `shop_permission_group_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_permission_group_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_group` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Permission_Group_Audit_id_group` (`id_group`), KEY `FK_Shop_Permission_Group_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Permission_Group_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Permission_Group_Audit_id_group` FOREIGN KEY (`id_group`) REFERENCES `shop_permission_group` (`id_group`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_permission_group_audit` -- LOCK TABLES `shop_permission_group_audit` WRITE; /*!40000 ALTER TABLE `shop_permission_group_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_permission_group_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_product` -- DROP TABLE IF EXISTS `shop_product`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product` ( `id_product` int NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `id_category` int NOT NULL, `has_variations` bit(1) NOT NULL, `id_access_level_required` int NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_product`), KEY `FK_Shop_Product_id_access_level_required` (`id_access_level_required`), KEY `FK_Shop_Product_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_id_access_level_required` FOREIGN KEY (`id_access_level_required`) REFERENCES `shop_access_level` (`id_access_level`), CONSTRAINT `FK_Shop_Product_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product` -- LOCK TABLES `shop_product` WRITE; /*!40000 ALTER TABLE `shop_product` DISABLE KEYS */; INSERT INTO `shop_product` VALUES (1,'Braille Keyboard Translator',1,_binary '',3,_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,'Test product 1',2,_binary '\0',3,_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL),(3,'Phone',3,_binary '\0',1,_binary '',3,'2024-04-28 19:03:07','root@localhost',NULL),(4,'Laptop',3,_binary '\0',1,_binary '',4,'2024-04-28 19:03:07','root@localhost',NULL),(5,'Smart Watch',3,_binary '\0',1,_binary '',5,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_product` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Product` BEFORE INSERT ON `shop_product` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Product` BEFORE UPDATE ON `shop_product` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; /* IF NOT NEW.has_variations THEN IF ISNULL(NEW.price_GBP_full) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Product must have price or variations (with prices).'; END IF; IF ISNULL(NEW.price_GBP_min) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Product must have minimum price or variations (with prices).'; END IF; IF ISNULL(NEW.latency_manuf) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Product must have manufacturing latency or variations (with manufacturing latencies).'; END IF; IF ISNULL(NEW.quantity_min) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Product must have minimum quantity or variations (with minimum quantities).'; END IF; IF ISNULL(NEW.quantity_max) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Product must have maximum quantity or variations (with maximum quantities).'; END IF; IF ISNULL(NEW.quantity_step) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Product must have increment of quantity or variations (with increments of quantities).'; END IF; IF ISNULL(NEW.quantity_stock) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Product must have stock quantity or variations (with stock quantities).'; END IF; IF ISNULL(NEW.is_subscription) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Product must have subscription status or variations (with subscription statuses).'; END IF; IF ISNULL(NEW.id_unit_measurement_interval_recurrence) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Product must have recurrence interval or variations (with recurrence intervals).'; END IF; IF ISNULL(NEW.count_interval_recurrence) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Product must have recurrence interval count or variations (with recurrence interval counts).'; END IF; END IF; */ INSERT INTO Shop_Product_Audit ( id_product, name_field, value_prev, value_new, id_change_set ) # Changed name SELECT NEW.id_product, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name /* UNION # Changed description SELECT NEW.id_product, 'description', OLD.description, NEW.description, NEW.id_change_set WHERE NOT OLD.description <=> NEW.description UNION # Changed price_GBP_full SELECT NEW.id_product, 'price_GBP_full', CONVERT(OLD.price_GBP_full, CHAR), CONVERT(NEW.price_GBP_full, CHAR), NEW.id_change_set WHERE NOT OLD.price_GBP_full <=> NEW.price_GBP_full UNION # Changed price_GBP_min SELECT NEW.id_product, 'price_GBP_min', CONVERT(OLD.price_GBP_min, CHAR), CONVERT(NEW.price_GBP_min, CHAR), NEW.id_change_set WHERE NOT OLD.price_GBP_min <=> NEW.price_GBP_min UNION # Changed has_variations SELECT NEW.id_product, 'has_variations', CONVERT(CONVERT(NEW.has_variations, SIGNED), CHAR), CONVERT(CONVERT(NEW.has_variations, SIGNED), CHAR), NEW.id_change_set WHERE NOT OLD.has_variations <=> NEW.has_variations UNION /* # Changed discount SELECT NEW.id_product, 'discount', CONVERT(OLD.discount, CHAR), CONVERT(NEW.discount, CHAR), NEW.id_change_set WHERE NOT OLD.discount <=> NEW.discount */ UNION # Changed id_category SELECT NEW.id_product, 'id_category', CONVERT(OLD.id_category, CHAR), CONVERT(NEW.id_category, CHAR), NEW.id_change_set WHERE NOT OLD.id_category <=> NEW.id_category /* UNION # Changed latency_manuf SELECT NEW.id_product, 'latency_manuf', CONVERT(OLD.latency_manuf, CHAR), CONVERT(NEW.latency_manuf, CHAR), NEW.id_change_set WHERE NOT OLD.latency_manuf <=> NEW.latency_manuf UNION # Changed quantity_min SELECT NEW.id_product, 'quantity_min', CONVERT(OLD.quantity_min, CHAR), CONVERT(NEW.quantity_min, CHAR), NEW.id_change_set WHERE NOT OLD.quantity_min <=> NEW.quantity_min UNION # Changed quantity_max SELECT NEW.id_product, 'quantity_max', CONVERT(OLD.quantity_max, CHAR), CONVERT(NEW.quantity_max, CHAR), NEW.id_change_set WHERE NOT OLD.quantity_max <=> NEW.quantity_max UNION # Changed quantity_step SELECT NEW.id_product, 'quantity_step', CONVERT(OLD.quantity_step, CHAR), CONVERT(NEW.quantity_step, CHAR), NEW.id_change_set WHERE NOT OLD.quantity_step <=> NEW.quantity_step UNION # Changed quantity_stock SELECT NEW.id_product, 'quantity_stock', CONVERT(OLD.quantity_stock, CHAR), CONVERT(NEW.quantity_stock, CHAR), NEW.id_change_set WHERE NOT OLD.quantity_stock <=> NEW.quantity_stock UNION # Changed is_subscription SELECT NEW.id_product, 'is_subscription', CONVERT(CONVERT(OLD.is_subscription, SIGNED), CHAR), CONVERT(CONVERT(NEW.is_subscription, SIGNED), CHAR), NEW.id_change_set WHERE NOT OLD.is_subscription <=> NEW.is_subscription UNION # Changed id_unit_measurement_interval_recurrence SELECT NEW.id_product, 'id_unit_measurement_interval_recurrence', CONVERT(OLD.id_unit_measurement_interval_recurrence, CHAR), CONVERT(NEW.id_unit_measurement_interval_recurrence, CHAR), NEW.id_change_set WHERE NOT OLD.id_unit_measurement_interval_recurrence <=> NEW.id_unit_measurement_interval_recurrence UNION # Changed count_interval_recurrence SELECT NEW.id_product, 'count_interval_recurrence', CONVERT(OLD.count_interval_recurrence, CHAR), CONVERT(NEW.count_interval_recurrence, CHAR), NEW.id_change_set WHERE NOT OLD.count_interval_recurrence <=> NEW.count_interval_recurrence UNION # Changed id_access_level_required SELECT NEW.id_product, 'id_access_level_required', CONVERT(OLD.id_access_level_required, CHAR), CONVERT(NEW.id_access_level_required, CHAR), NEW.id_change_set WHERE NOT OLD.id_access_level_required <=> NEW.id_access_level_required UNION # Changed id_stripe_product SELECT NEW.id_product, 'id_stripe_product', OLD.id_stripe_product, NEW.id_stripe_product, NEW.id_change_set WHERE NOT OLD.id_stripe_product <=> NEW.id_stripe_product /* UNION # Changed id_stripe_price SELECT NEW.id_product, 'id_stripe_price', OLD.id_stripe_price, NEW.id_stripe_price, NEW.id_change_set WHERE NOT OLD.id_stripe_price <=> NEW.id_stripe_price */ UNION # Changed active SELECT NEW.id_product, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_product, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT OLD.display_order <=> NEW.display_order ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_product_audit` -- DROP TABLE IF EXISTS `shop_product_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_product` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Product_Audit_id_product` (`id_product`), KEY `FK_Shop_Product_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Audit_id_product` FOREIGN KEY (`id_product`) REFERENCES `shop_product` (`id_product`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product_audit` -- LOCK TABLES `shop_product_audit` WRITE; /*!40000 ALTER TABLE `shop_product_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_product_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_product_change_set` -- DROP TABLE IF EXISTS `shop_product_change_set`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product_change_set` ( `id_change_set` int NOT NULL AUTO_INCREMENT, `comment` varchar(500) DEFAULT NULL, `updated_last_on` datetime DEFAULT NULL, `updated_last_by` varchar(100) DEFAULT NULL, PRIMARY KEY (`id_change_set`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product_change_set` -- LOCK TABLES `shop_product_change_set` WRITE; /*!40000 ALTER TABLE `shop_product_change_set` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_product_change_set` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Product_Change_Set` BEFORE INSERT ON `shop_product_change_set` FOR EACH ROW BEGIN IF NEW.updated_last_on <=> NULL THEN SET NEW.updated_last_on = NOW(); END IF; IF NEW.updated_last_by <=> NULL THEN SET NEW.updated_last_by = CURRENT_USER(); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_product_currency_link` -- DROP TABLE IF EXISTS `shop_product_currency_link`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product_currency_link` ( `id_link` int NOT NULL AUTO_INCREMENT, `id_product` int NOT NULL, `id_permutation` int DEFAULT NULL, `id_currency` int NOT NULL, `id_region_purchase` int NOT NULL, `price_local_VAT_incl` float DEFAULT NULL, `price_local_VAT_excl` float DEFAULT NULL, `id_stripe_price` varchar(200) DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_link`), KEY `FK_Shop_Product_Currency_Link_id_product` (`id_product`), KEY `FK_Shop_Product_Currency_Link_id_permutation` (`id_permutation`), KEY `FK_Shop_Product_Currency_Link_id_currency` (`id_currency`), KEY `FK_Shop_Product_Currency_Link_id_region_purchase` (`id_region_purchase`), KEY `FK_Shop_Product_Currency_Link_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Currency_Link_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Currency_Link_id_currency` FOREIGN KEY (`id_currency`) REFERENCES `shop_currency` (`id_currency`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Currency_Link_id_permutation` FOREIGN KEY (`id_permutation`) REFERENCES `shop_product_permutation` (`id_permutation`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Currency_Link_id_product` FOREIGN KEY (`id_product`) REFERENCES `shop_product` (`id_product`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Currency_Link_id_region_purchase` FOREIGN KEY (`id_region_purchase`) REFERENCES `shop_region` (`id_region`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product_currency_link` -- LOCK TABLES `shop_product_currency_link` WRITE; /*!40000 ALTER TABLE `shop_product_currency_link` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_product_currency_link` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Product_Currency_Link` BEFORE INSERT ON `shop_product_currency_link` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; /* SET NEW.price_local = ( SELECT PP.price_GBP_full * C.factor_from_GBP FROM Shop_Product_Permutation PP INNER JOIN Shop_Product P ON PP.id_product = P.id_product INNER JOIN Shop_Currency C ON NEW.id_currency = C.id_currency WHERE NEW.id_product = P.id_product LIMIT 1 ); */ END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Product_Currency_Link` BEFORE UPDATE ON `shop_product_currency_link` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; /* SET NEW.price_local = ( SELECT P.price_GBP_full * C.factor_from_GBP FROM Shop_Product P INNER JOIN Shop_Currency C ON NEW.id_currency = C.id_currency WHERE NEW.id_product = P.id_product LIMIT 1 ); */ INSERT INTO Shop_Product_Currency_Link_Audit ( id_link, name_field, value_prev, value_new, id_change_set ) /* # Changed id_product SELECT NEW.id_link, 'id_product', CONVERT(OLD.id_product, CHAR), CONVERT(NEW.id_product, CHAR), NEW.id_change_set WHERE NOT OLD.id_product <=> NEW.id_product UNION # Changed id_currency SELECT NEW.id_link, 'id_currency', CONVERT(OLD.id_currency, CHAR), CONVERT(NEW.id_currency, CHAR), NEW.id_change_set WHERE NOT OLD.id_currency <=> NEW.id_currency UNION # Changed price_local SELECT NEW.id_link, 'price_local', OLD.price_local, NEW.price_local, NEW.id_change_set WHERE NOT OLD.price_local <=> NEW.price_local UNION */ # Changed price_local_VAT_incl SELECT NEW.id_link, 'price_local_VAT_incl', OLD.price_local_VAT_incl, NEW.price_local_VAT_incl, NEW.id_change_set WHERE NOT OLD.price_local_VAT_incl <=> NEW.price_local_VAT_incl UNION # Changed price_local_VAT_excl SELECT NEW.id_link, 'price_local_VAT_excl', OLD.price_local_VAT_excl, NEW.price_local_VAT_excl, NEW.id_change_set WHERE NOT OLD.price_local_VAT_excl <=> NEW.price_local_VAT_excl UNION # Changed id_stripe_price SELECT NEW.id_link, 'id_stripe_price', OLD.id_stripe_price, NEW.id_stripe_price, NEW.id_change_set WHERE NOT OLD.id_stripe_price <=> NEW.id_stripe_price UNION # Changed active SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_product_currency_link_audit` -- DROP TABLE IF EXISTS `shop_product_currency_link_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product_currency_link_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_link` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Product_Currency_Link_Audit_id_link` (`id_link`), KEY `FK_Shop_Product_Currency_Link_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Currency_Link_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Currency_Link_Audit_id_link` FOREIGN KEY (`id_link`) REFERENCES `shop_product_currency_link` (`id_link`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product_currency_link_audit` -- LOCK TABLES `shop_product_currency_link_audit` WRITE; /*!40000 ALTER TABLE `shop_product_currency_link_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_product_currency_link_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_product_currency_region_link` -- DROP TABLE IF EXISTS `shop_product_currency_region_link`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product_currency_region_link` ( `id_link` int NOT NULL AUTO_INCREMENT, `id_product` int NOT NULL, `id_permutation` int DEFAULT NULL, `id_currency` int NOT NULL, `id_region_purchase` int NOT NULL, `price_local_VAT_incl` float DEFAULT NULL, `price_local_VAT_excl` float DEFAULT NULL, `id_stripe_price` varchar(200) DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_link`), KEY `FK_Shop_Product_Currency_Region_Link_id_product` (`id_product`), KEY `FK_Shop_Product_Currency_Region_Link_id_permutation` (`id_permutation`), KEY `FK_Shop_Product_Currency_Region_Link_id_currency` (`id_currency`), KEY `FK_Shop_Product_Currency_Region_Link_id_region_purchase` (`id_region_purchase`), KEY `FK_Shop_Product_Currency_Region_Link_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Currency_Region_Link_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Currency_Region_Link_id_currency` FOREIGN KEY (`id_currency`) REFERENCES `shop_currency` (`id_currency`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Currency_Region_Link_id_permutation` FOREIGN KEY (`id_permutation`) REFERENCES `shop_product_permutation` (`id_permutation`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Currency_Region_Link_id_product` FOREIGN KEY (`id_product`) REFERENCES `shop_product` (`id_product`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Currency_Region_Link_id_region_purchase` FOREIGN KEY (`id_region_purchase`) REFERENCES `shop_region` (`id_region`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product_currency_region_link` -- LOCK TABLES `shop_product_currency_region_link` WRITE; /*!40000 ALTER TABLE `shop_product_currency_region_link` DISABLE KEYS */; INSERT INTO `shop_product_currency_region_link` VALUES (1,1,1,1,1,24,20,NULL,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(2,1,1,2,1,48,40,NULL,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(3,1,2,1,1,96,80,NULL,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(4,2,3,1,1,144,120,NULL,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(5,3,4,1,1,600,500,NULL,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(6,4,5,1,1,1500,1200,NULL,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(7,5,6,1,1,180,150,NULL,_binary '','2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_product_currency_region_link` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Product_Currency_Region_Link` BEFORE INSERT ON `shop_product_currency_region_link` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; /* SET NEW.price_local = ( SELECT PP.price_GBP_full * C.factor_from_GBP FROM Shop_Product_Permutation PP INNER JOIN Shop_Product P ON PP.id_product = P.id_product INNER JOIN Shop_Currency C ON NEW.id_currency = C.id_currency WHERE NEW.id_product = P.id_product LIMIT 1 ); */ END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Product_Currency_Region_Link` BEFORE UPDATE ON `shop_product_currency_region_link` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; /* SET NEW.price_local = ( SELECT P.price_GBP_full * C.factor_from_GBP FROM Shop_Product P INNER JOIN Shop_Currency C ON NEW.id_currency = C.id_currency WHERE NEW.id_product = P.id_product LIMIT 1 ); */ INSERT INTO Shop_Product_Currency_Region_Link_Audit ( id_link, name_field, value_prev, value_new, id_change_set ) /* # Changed id_product SELECT NEW.id_link, 'id_product', CONVERT(OLD.id_product, CHAR), CONVERT(NEW.id_product, CHAR), NEW.id_change_set WHERE NOT OLD.id_product <=> NEW.id_product UNION # Changed id_currency SELECT NEW.id_link, 'id_currency', CONVERT(OLD.id_currency, CHAR), CONVERT(NEW.id_currency, CHAR), NEW.id_change_set WHERE NOT OLD.id_currency <=> NEW.id_currency UNION # Changed price_local SELECT NEW.id_link, 'price_local', OLD.price_local, NEW.price_local, NEW.id_change_set WHERE NOT OLD.price_local <=> NEW.price_local UNION */ # Changed price_local_VAT_incl SELECT NEW.id_link, 'price_local_VAT_incl', OLD.price_local_VAT_incl, NEW.price_local_VAT_incl, NEW.id_change_set WHERE NOT OLD.price_local_VAT_incl <=> NEW.price_local_VAT_incl UNION # Changed price_local_VAT_excl SELECT NEW.id_link, 'price_local_VAT_excl', OLD.price_local_VAT_excl, NEW.price_local_VAT_excl, NEW.id_change_set WHERE NOT OLD.price_local_VAT_excl <=> NEW.price_local_VAT_excl UNION # Changed id_stripe_price SELECT NEW.id_link, 'id_stripe_price', OLD.id_stripe_price, NEW.id_stripe_price, NEW.id_change_set WHERE NOT OLD.id_stripe_price <=> NEW.id_stripe_price UNION # Changed active SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_product_currency_region_link_audit` -- DROP TABLE IF EXISTS `shop_product_currency_region_link_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product_currency_region_link_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_link` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Product_Currency_Region_Link_Audit_id_link` (`id_link`), KEY `FK_Shop_Product_Currency_Region_Link_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Currency_Region_Link_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Currency_Region_Link_Audit_id_link` FOREIGN KEY (`id_link`) REFERENCES `shop_product_currency_region_link` (`id_link`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product_currency_region_link_audit` -- LOCK TABLES `shop_product_currency_region_link_audit` WRITE; /*!40000 ALTER TABLE `shop_product_currency_region_link_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_product_currency_region_link_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_product_delivery_option_link` -- DROP TABLE IF EXISTS `shop_product_delivery_option_link`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product_delivery_option_link` ( `id_link` int NOT NULL AUTO_INCREMENT, `id_product` int NOT NULL, `id_permutation` int DEFAULT NULL, `id_delivery_option` int NOT NULL, `id_region` int NOT NULL, `id_currency` int NOT NULL, `price_local` float NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_link`), KEY `FK_Shop_Product_Delivery_Option_Link_id_product` (`id_product`), KEY `FK_Shop_Product_Delivery_Option_Link_id_permutation` (`id_permutation`), KEY `FK_Shop_Product_Delivery_Option_Link_id_delivery_option` (`id_delivery_option`), KEY `FK_Shop_Product_Delivery_Option_Link_id_region` (`id_region`), KEY `FK_Shop_Product_Delivery_Option_Link_id_currency` (`id_currency`), KEY `FK_Shop_Product_Delivery_Option_Link_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Delivery_Option_Link_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Delivery_Option_Link_id_currency` FOREIGN KEY (`id_currency`) REFERENCES `shop_currency` (`id_currency`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Delivery_Option_Link_id_delivery_option` FOREIGN KEY (`id_delivery_option`) REFERENCES `shop_delivery_option` (`id_option`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Delivery_Option_Link_id_permutation` FOREIGN KEY (`id_permutation`) REFERENCES `shop_product_permutation` (`id_permutation`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Delivery_Option_Link_id_product` FOREIGN KEY (`id_product`) REFERENCES `shop_product` (`id_product`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Delivery_Option_Link_id_region` FOREIGN KEY (`id_region`) REFERENCES `shop_region` (`id_region`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product_delivery_option_link` -- LOCK TABLES `shop_product_delivery_option_link` WRITE; /*!40000 ALTER TABLE `shop_product_delivery_option_link` DISABLE KEYS */; INSERT INTO `shop_product_delivery_option_link` VALUES (1,1,1,1,1,1,5,_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,1,2,1,1,1,9,_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL),(3,2,NULL,1,1,1,10,_binary '',3,'2024-04-28 19:03:07','root@localhost',NULL),(4,3,4,1,1,1,10,_binary '',4,'2024-04-28 19:03:07','root@localhost',NULL),(5,4,5,1,1,1,10,_binary '',5,'2024-04-28 19:03:07','root@localhost',NULL),(6,5,6,1,1,1,10,_binary '',6,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_product_delivery_option_link` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Product_Delivery_Option_Link` BEFORE INSERT ON `shop_product_delivery_option_link` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Product_Delivery_Option_Link` BEFORE UPDATE ON `shop_product_delivery_option_link` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Product_Delivery_Option_Link_Audit ( id_link, name_field, value_prev, value_new, id_change_set ) /* # Changed id_product SELECT NEW.id_link, 'id_product', CONVERT(OLD.id_product, CHAR), CONVERT(NEW.id_product, CHAR), NEW.id_change_set WHERE NOT OLD.id_product <=> NEW.id_product UNION # Changed id_permutation SELECT NEW.id_link, 'id_permutation', CONVERT(OLD.id_permutation, CHAR), CONVERT(NEW.id_permutation, CHAR), NEW.id_change_set WHERE NOT OLD.id_permutation <=> NEW.id_permutation UNION # Changed id_option SELECT NEW.id_link, 'id_option', CONVERT(OLD.id_option, CHAR), CONVERT(NEW.id_option, CHAR), NEW.id_change_set WHERE NOT OLD.id_option <=> NEW.id_option UNION # Changed id_region SELECT NEW.id_link, 'id_region', CONVERT(OLD.id_region, CHAR), CONVERT(NEW.id_region, CHAR), NEW.id_change_set WHERE NOT OLD.id_region <=> NEW.id_region UNION */ # Changed price_local SELECT NEW.id_link, 'price_local', CONVERT(OLD.price_local, CHAR), CONVERT(NEW.price_local, CHAR), NEW.id_change_set WHERE NOT OLD.price_local <=> NEW.price_local UNION # Changed active SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_link, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT (OLD.display_order <=> NEW.display_order) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_product_delivery_option_link_audit` -- DROP TABLE IF EXISTS `shop_product_delivery_option_link_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product_delivery_option_link_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_link` int NOT NULL, `name_field` varchar(64) NOT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Product_Delivery_Option_Link_Audit_id_link` (`id_link`), KEY `FK_Shop_Product_Delivery_Option_Link_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Delivery_Option_Link_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Delivery_Option_Link_Audit_id_link` FOREIGN KEY (`id_link`) REFERENCES `shop_product_delivery_option_link` (`id_link`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product_delivery_option_link_audit` -- LOCK TABLES `shop_product_delivery_option_link_audit` WRITE; /*!40000 ALTER TABLE `shop_product_delivery_option_link_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_product_delivery_option_link_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_product_permutation` -- DROP TABLE IF EXISTS `shop_product_permutation`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product_permutation` ( `id_permutation` int NOT NULL AUTO_INCREMENT, `id_product` int NOT NULL, `description` varchar(4000) NOT NULL, `cost_local_manufacturing` float NOT NULL, `id_currency_cost_manufacturing` int NOT NULL, `profit_local_min` float NOT NULL, `id_currency_profit_min` int NOT NULL, `latency_manufacture` int NOT NULL, `quantity_min` float NOT NULL, `quantity_max` float NOT NULL, `quantity_step` float NOT NULL, `quantity_stock` float NOT NULL, `is_subscription` bit(1) NOT NULL, `id_unit_measurement_interval_recurrence` int DEFAULT NULL, `count_interval_recurrence` int DEFAULT NULL, `id_access_level_required` int NOT NULL, `id_stripe_product` varchar(100) DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_permutation`), KEY `FK_Shop_Product_Variation_Link_id_product` (`id_product`), KEY `FK_Shop_Product_Permutation_id_unit_measurement_interval_recurrence` (`id_unit_measurement_interval_recurrence`), KEY `FK_Shop_Product_Permutation_id_access_level_required` (`id_access_level_required`), KEY `FK_Shop_Product_Variation_Link_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Permutation_id_access_level_required` FOREIGN KEY (`id_access_level_required`) REFERENCES `shop_access_level` (`id_access_level`), CONSTRAINT `FK_Shop_Product_Permutation_id_unit_measurement_interval_recurrence` FOREIGN KEY (`id_unit_measurement_interval_recurrence`) REFERENCES `shop_interval_recurrence` (`id_interval`), CONSTRAINT `FK_Shop_Product_Variation_Link_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Variation_Link_id_product` FOREIGN KEY (`id_product`) REFERENCES `shop_product` (`id_product`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product_permutation` -- LOCK TABLES `shop_product_permutation` WRITE; /*!40000 ALTER TABLE `shop_product_permutation` DISABLE KEYS */; INSERT INTO `shop_product_permutation` VALUES (1,1,'Good Red',5,1,3,1,14,1,3,1,99,_binary '\0',NULL,NULL,1,NULL,_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,1,'Good Blue',6,1,4,1,14,1,3,1,99,_binary '\0',NULL,NULL,1,NULL,_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL),(3,2,'Test product describes good',10,1,5,1,14,1,2,1,99,_binary '\0',NULL,NULL,1,NULL,_binary '',3,'2024-04-28 19:03:07','root@localhost',NULL),(4,3,'Phone describes good',10,1,5,1,14,1,2,1,99,_binary '\0',NULL,NULL,1,NULL,_binary '',4,'2024-04-28 19:03:07','root@localhost',NULL),(5,4,'Laptop describes good',10,1,5,1,14,1,2,1,99,_binary '\0',NULL,NULL,1,NULL,_binary '',5,'2024-04-28 19:03:07','root@localhost',NULL),(6,5,'Smart watch describes good',10,1,5,1,14,1,2,1,99,_binary '\0',NULL,NULL,1,NULL,_binary '',6,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_product_permutation` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Product_Permutation` BEFORE INSERT ON `shop_product_permutation` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Product_Permutation` BEFORE UPDATE ON `shop_product_permutation` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Product_Permutation_Audit ( id_permutation, name_field, value_prev, value_new, id_change_set ) /* # Changed id_product SELECT NEW.id_permutation, 'id_product', OLD.id_product, NEW.id_product, NEW.id_change_set WHERE NOT OLD.id_product <=> NEW.id_product UNION # Changed id_variation SELECT NEW.id_permutation, 'id_variation', OLD.id_variation, NEW.id_variation, NEW.id_change_set WHERE NOT OLD.id_variation <=> NEW.id_variation UNION # Changed name SELECT NEW.id_permutation, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT (OLD.name <=> NEW.name) UNION */ # Changed description SELECT NEW.id_permutation, 'description', OLD.description, NEW.description, NEW.id_change_set WHERE NOT (OLD.description <=> NEW.description) UNION # Changed cost_local_manufacturing SELECT NEW.id_permutation, 'cost_local_manufacturing', CONVERT(OLD.cost_local_manufacturing, CHAR), CONVERT(NEW.cost_local_manufacturing, CHAR), NEW.id_change_set WHERE NOT (OLD.cost_local_manufacturing <=> NEW.cost_local_manufacturing) UNION # Changed id_currency_cost_manufacturing SELECT NEW.id_permutation, 'id_currency_cost_manufacturing', CONVERT(OLD.id_currency_cost_manufacturing, CHAR), CONVERT(NEW.id_currency_cost_manufacturing, CHAR), NEW.id_change_set WHERE NOT (OLD.id_currency_cost_manufacturing <=> NEW.id_currency_cost_manufacturing) UNION # Changed profit_local_min SELECT NEW.id_permutation, 'profit_local_min', CONVERT(OLD.profit_local_min, CHAR), CONVERT(NEW.profit_local_min, CHAR), NEW.id_change_set WHERE NOT (OLD.profit_local_min <=> NEW.profit_local_min) UNION # Changed id_currency_profit_min SELECT NEW.id_permutation, 'id_currency_profit_min', CONVERT(OLD.id_currency_profit_min, CHAR), CONVERT(NEW.id_currency_profit_min, CHAR), NEW.id_change_set WHERE NOT (OLD.id_currency_profit_min <=> NEW.id_currency_profit_min) UNION /* # Changed price_GBP_min SELECT NEW.id_permutation, 'price_GBP_min', CONVERT(OLD.price_GBP_min, CHAR), CONVERT(NEW.price_GBP_min, CHAR), NEW.id_change_set WHERE NOT (OLD.price_GBP_min <=> NEW.price_GBP_min) UNION */ # Changed latency_manufacture SELECT NEW.id_product, 'latency_manufacture', CONVERT(OLD.latency_manufacture, CHAR), CONVERT(NEW.latency_manufacture, CHAR), NEW.id_change_set WHERE NOT OLD.latency_manufacture <=> NEW.latency_manufacture UNION # Changed quantity_min SELECT NEW.id_product, 'quantity_min', CONVERT(OLD.quantity_min, CHAR), CONVERT(NEW.quantity_min, CHAR), NEW.id_change_set WHERE NOT OLD.quantity_min <=> NEW.quantity_min UNION # Changed quantity_max SELECT NEW.id_product, 'quantity_max', CONVERT(OLD.quantity_max, CHAR), CONVERT(NEW.quantity_max, CHAR), NEW.id_change_set WHERE NOT OLD.quantity_max <=> NEW.quantity_max UNION # Changed quantity_step SELECT NEW.id_product, 'quantity_step', CONVERT(OLD.quantity_step, CHAR), CONVERT(NEW.quantity_step, CHAR), NEW.id_change_set WHERE NOT OLD.quantity_step <=> NEW.quantity_step UNION # Changed quantity_stock SELECT NEW.id_product, 'quantity_stock', CONVERT(OLD.quantity_stock, CHAR), CONVERT(NEW.quantity_stock, CHAR), NEW.id_change_set WHERE NOT OLD.quantity_stock <=> NEW.quantity_stock UNION # Changed is_subscription SELECT NEW.id_product, 'is_subscription', CONVERT(CONVERT(OLD.is_subscription, SIGNED), CHAR), CONVERT(CONVERT(NEW.is_subscription, SIGNED), CHAR), NEW.id_change_set WHERE NOT OLD.is_subscription <=> NEW.is_subscription UNION # Changed id_unit_measurement_interval_recurrence SELECT NEW.id_product, 'id_unit_measurement_interval_recurrence', CONVERT(OLD.id_unit_measurement_interval_recurrence, CHAR), CONVERT(NEW.id_unit_measurement_interval_recurrence, CHAR), NEW.id_change_set WHERE NOT OLD.id_unit_measurement_interval_recurrence <=> NEW.id_unit_measurement_interval_recurrence UNION # Changed count_interval_recurrence SELECT NEW.id_product, 'count_interval_recurrence', CONVERT(OLD.count_interval_recurrence, CHAR), CONVERT(NEW.count_interval_recurrence, CHAR), NEW.id_change_set WHERE NOT OLD.count_interval_recurrence <=> NEW.count_interval_recurrence UNION # Changed id_stripe_product SELECT NEW.id_permutation, 'id_stripe_product', OLD.id_stripe_product, NEW.id_stripe_product, NEW.id_change_set WHERE NOT (OLD.id_stripe_product <=> NEW.id_stripe_product) UNION # Changed active SELECT NEW.id_permutation, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_permutation, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT (OLD.display_order <=> NEW.display_order) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_product_permutation_audit` -- DROP TABLE IF EXISTS `shop_product_permutation_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product_permutation_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_permutation` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Product_Permutation_Audit_id_permutation` (`id_permutation`), KEY `FK_Shop_Product_Permutation_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Permutation_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Permutation_Audit_id_permutation` FOREIGN KEY (`id_permutation`) REFERENCES `shop_product_permutation` (`id_permutation`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product_permutation_audit` -- LOCK TABLES `shop_product_permutation_audit` WRITE; /*!40000 ALTER TABLE `shop_product_permutation_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_product_permutation_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_product_permutation_variation_link` -- DROP TABLE IF EXISTS `shop_product_permutation_variation_link`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product_permutation_variation_link` ( `id_link` int NOT NULL AUTO_INCREMENT, `id_permutation` int NOT NULL, `id_variation` int NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_link`), KEY `FK_Shop_Product_Permutation_Variation_Link_id_permutation` (`id_permutation`), KEY `FK_Shop_Product_Permutation_Variation_Link_id_variation` (`id_variation`), KEY `FK_Shop_Product_Permutation_Variation_Link_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Permutation_Variation_Link_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Permutation_Variation_Link_id_permutation` FOREIGN KEY (`id_permutation`) REFERENCES `shop_product_permutation` (`id_permutation`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Permutation_Variation_Link_id_variation` FOREIGN KEY (`id_variation`) REFERENCES `shop_variation` (`id_variation`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product_permutation_variation_link` -- LOCK TABLES `shop_product_permutation_variation_link` WRITE; /*!40000 ALTER TABLE `shop_product_permutation_variation_link` DISABLE KEYS */; INSERT INTO `shop_product_permutation_variation_link` VALUES (1,1,1,_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,2,2,_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_product_permutation_variation_link` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Product_Permutation_Variation_Link` BEFORE INSERT ON `shop_product_permutation_variation_link` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Product_Permutation_Variation_Link` BEFORE UPDATE ON `shop_product_permutation_variation_link` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Product_Permutation_Variation_Link_Audit ( id_link, name_field, value_prev, value_new, id_change_set ) /* # Changed id_product SELECT NEW.id_link, 'id_product', OLD.id_product, NEW.id_product, NEW.id_change_set WHERE NOT OLD.id_product <=> NEW.id_product UNION # Changed id_variation SELECT NEW.id_link, 'id_variation', OLD.id_variation, NEW.id_variation, NEW.id_change_set WHERE NOT OLD.id_variation <=> NEW.id_variation UNION */ # Changed active SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_link, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT (OLD.display_order <=> NEW.display_order) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_product_permutation_variation_link_audit` -- DROP TABLE IF EXISTS `shop_product_permutation_variation_link_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_product_permutation_variation_link_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_link` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Product_Permutation_Variation_Link_Audit_id_link` (`id_link`), KEY `FK_Shop_Product_Permutation_Variation_Link_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Product_Permutation_Variation_Link_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Product_Permutation_Variation_Link_Audit_id_link` FOREIGN KEY (`id_link`) REFERENCES `shop_product_permutation_variation_link` (`id_link`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_product_permutation_variation_link_audit` -- LOCK TABLES `shop_product_permutation_variation_link_audit` WRITE; /*!40000 ALTER TABLE `shop_product_permutation_variation_link_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_product_permutation_variation_link_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_interval_recurrence` -- DROP TABLE IF EXISTS `shop_interval_recurrence`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_interval_recurrence` ( `id_interval` int NOT NULL AUTO_INCREMENT, `code` varchar(50) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `name_plural` varchar(256) DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_interval`), KEY `FK_Shop_Interval_Recurrence_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Interval_Recurrence_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_interval_recurrence` -- LOCK TABLES `shop_interval_recurrence` WRITE; /*!40000 ALTER TABLE `shop_interval_recurrence` DISABLE KEYS */; INSERT INTO `shop_interval_recurrence` VALUES (1,'WEEK','Week','Weeks',_binary '','2024-04-28 19:03:07','root@localhost',NULL),(2,'MONTH','Month','Months',_binary '','2024-04-28 19:03:07','root@localhost',NULL),(3,'YEAR','Year','Years',_binary '','2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_interval_recurrence` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Interval_Recurrence` BEFORE INSERT ON `shop_interval_recurrence` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Interval_Recurrence` BEFORE UPDATE ON `shop_interval_recurrence` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Interval_Recurrence_Audit ( id_interval, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_interval, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_interval, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed name_plural SELECT NEW.id_interval, 'name_plural', OLD.name_plural, NEW.name_plural, NEW.id_change_set WHERE NOT OLD.name_plural <=> NEW.name_plural UNION # Changed name SELECT NEW.id_interval, 'active', OLD.active, NEW.active, NEW.id_change_set WHERE NOT OLD.active <=> NEW.active ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_interval_recurrence_audit` -- DROP TABLE IF EXISTS `shop_interval_recurrence_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_interval_recurrence_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_interval` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(256) DEFAULT NULL, `value_new` varchar(256) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Interval_Recurrence_Audit_id_interval` (`id_interval`), KEY `FK_Shop_Interval_Recurrence_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Interval_Recurrence_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Interval_Recurrence_Audit_id_interval` FOREIGN KEY (`id_interval`) REFERENCES `shop_interval_recurrence` (`id_interval`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_interval_recurrence_audit` -- LOCK TABLES `shop_interval_recurrence_audit` WRITE; /*!40000 ALTER TABLE `shop_interval_recurrence_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_interval_recurrence_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_region` -- DROP TABLE IF EXISTS `shop_region`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_region` ( `id_region` int NOT NULL AUTO_INCREMENT, `code` varchar(50) NOT NULL, `name` varchar(200) NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_region`), KEY `FK_Shop_Region_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Region_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_region` -- LOCK TABLES `shop_region` WRITE; /*!40000 ALTER TABLE `shop_region` DISABLE KEYS */; INSERT INTO `shop_region` VALUES (1,'UK','United Kingdom',_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_region` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Region` BEFORE INSERT ON `shop_region` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Region` BEFORE UPDATE ON `shop_region` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Region_Audit ( id_region, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_region, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_region, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed active SELECT NEW.id_region, 'active', CONVERT(OLD.active, CHAR), CONVERT(NEW.active, CHAR), NEW.id_change_set WHERE NOT OLD.active <=> NEW.active UNION # Changed display_order SELECT NEW.id_region, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT OLD.display_order <=> NEW.display_order ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_region_audit` -- DROP TABLE IF EXISTS `shop_region_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_region_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_region` int NOT NULL, `name_field` varchar(64) NOT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Region_Audit_id_region` (`id_region`), KEY `FK_Shop_Region_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Region_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Region_Audit_id_region` FOREIGN KEY (`id_region`) REFERENCES `shop_region` (`id_region`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_region_audit` -- LOCK TABLES `shop_region_audit` WRITE; /*!40000 ALTER TABLE `shop_region_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_region_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_region_branch` -- DROP TABLE IF EXISTS `shop_region_branch`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_region_branch` ( `id_branch` int NOT NULL AUTO_INCREMENT, `id_region_parent` int NOT NULL, `id_region_child` int NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_branch`), KEY `FK_Shop_Region_Branch_id_region_parent` (`id_region_parent`), KEY `FK_Shop_Region_Branch_id_region_child` (`id_region_child`), KEY `FK_Shop_Region_Branch_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Region_Branch_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Region_Branch_id_region_child` FOREIGN KEY (`id_region_child`) REFERENCES `shop_region` (`id_region`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Region_Branch_id_region_parent` FOREIGN KEY (`id_region_parent`) REFERENCES `shop_region` (`id_region`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_region_branch` -- LOCK TABLES `shop_region_branch` WRITE; /*!40000 ALTER TABLE `shop_region_branch` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_region_branch` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Region_Branch` BEFORE INSERT ON `shop_region_branch` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Region_Branch` BEFORE UPDATE ON `shop_region_branch` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Region_Branch_Audit ( id_branch, name_field, value_prev, value_new, id_change_set ) /* # Changed depth SELECT NEW.id_branch, 'depth', CONVERT(OLD.depth, CHAR), CONVERT(NEW.depth, CHAR), NEW.id_change_set WHERE NOT OLD.depth <=> NEW.depth UNION */ # Changed active SELECT NEW.id_branch, 'active', CONVERT(OLD.active, CHAR), CONVERT(NEW.active, CHAR), NEW.id_change_set WHERE NOT OLD.active <=> NEW.active UNION # Changed display_order SELECT NEW.id_branch, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT OLD.display_order <=> NEW.display_order ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_region_branch_audit` -- DROP TABLE IF EXISTS `shop_region_branch_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_region_branch_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_branch` int NOT NULL, `name_field` varchar(64) NOT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Region_Branch_Audit_id_branch` (`id_branch`), KEY `FK_Shop_Region_Branch_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Region_Branch_Audit_id_branch` FOREIGN KEY (`id_branch`) REFERENCES `shop_region_branch` (`id_branch`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Region_Branch_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_region_branch_audit` -- LOCK TABLES `shop_region_branch_audit` WRITE; /*!40000 ALTER TABLE `shop_region_branch_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_region_branch_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_role` -- DROP TABLE IF EXISTS `shop_role`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_role` ( `id_role` int NOT NULL AUTO_INCREMENT, `code` varchar(50) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_role`), KEY `FK_Shop_Role_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Role_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_role` -- LOCK TABLES `shop_role` WRITE; /*!40000 ALTER TABLE `shop_role` DISABLE KEYS */; INSERT INTO `shop_role` VALUES (1,'DIRECTOR','Director',_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,'USER','User',_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_role` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Role` BEFORE INSERT ON `shop_role` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Role` BEFORE UPDATE ON `shop_role` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Role_Audit ( id_role, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_role, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_role, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed active SELECT NEW.id_role, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_role, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT OLD.display_order <=> NEW.display_order ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_role_audit` -- DROP TABLE IF EXISTS `shop_role_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_role_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_role` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Role_Audit_id_role` (`id_role`), KEY `FK_Shop_Role_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Role_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Role_Audit_id_role` FOREIGN KEY (`id_role`) REFERENCES `shop_role` (`id_role`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_role_audit` -- LOCK TABLES `shop_role_audit` WRITE; /*!40000 ALTER TABLE `shop_role_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_role_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_role_permission_link` -- DROP TABLE IF EXISTS `shop_role_permission_link`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_role_permission_link` ( `id_link` int NOT NULL AUTO_INCREMENT, `id_role` int DEFAULT NULL, `id_permission` int DEFAULT NULL, `id_access_level` int DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_link`), KEY `FK_Shop_Role_Permission_Link_id_role` (`id_role`), KEY `FK_Shop_Role_Permission_Link_id_permission` (`id_permission`), KEY `FK_Shop_Role_Permission_Link_id_access_level` (`id_access_level`), KEY `FK_Shop_Role_Permission_Link_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Role_Permission_Link_id_access_level` FOREIGN KEY (`id_access_level`) REFERENCES `shop_access_level` (`id_access_level`), CONSTRAINT `FK_Shop_Role_Permission_Link_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Role_Permission_Link_id_permission` FOREIGN KEY (`id_permission`) REFERENCES `shop_permission` (`id_permission`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Role_Permission_Link_id_role` FOREIGN KEY (`id_role`) REFERENCES `shop_role` (`id_role`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_role_permission_link` -- LOCK TABLES `shop_role_permission_link` WRITE; /*!40000 ALTER TABLE `shop_role_permission_link` DISABLE KEYS */; INSERT INTO `shop_role_permission_link` VALUES (1,1,1,3,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(2,1,2,3,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(3,1,3,3,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(4,1,4,3,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(5,1,5,3,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(6,2,1,1,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(7,2,2,1,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(8,2,3,1,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(9,2,4,1,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(10,2,5,1,_binary '','2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_role_permission_link` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Role_Permission_Link` BEFORE INSERT ON `shop_role_permission_link` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Role_Permission_Link` BEFORE UPDATE ON `shop_role_permission_link` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Role_Permission_Link_Audit ( id_link, name_field, value_prev, value_new, id_change_set ) /* # Changed id_role SELECT NEW.id_link, 'id_role', CONVERT(OLD.id_role, CHAR), CONVERT(NEW.id_role, CHAR), NEW.id_change_set WHERE NOT OLD.id_role <=> NEW.id_role UNION # Changed id_permission SELECT NEW.id_link, 'id_permission', CONVERT(OLD.id_permission, CHAR), CONVERT(NEW.id_permission, CHAR), NEW.id_change_set WHERE NOT OLD.id_permission <=> NEW.id_permission UNION */ # Changed id_access_level SELECT NEW.id_link, 'id_access_level', CONVERT(OLD.id_access_level, CHAR), CONVERT(NEW.id_access_level, CHAR), NEW.id_change_set WHERE NOT OLD.id_access_level <=> NEW.id_access_level UNION # Changed active SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_role_permission_link_audit` -- DROP TABLE IF EXISTS `shop_role_permission_link_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_role_permission_link_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_link` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Role_Permission_Link_Audit_id_link` (`id_link`), KEY `FK_Shop_Role_Permission_Link_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Role_Permission_Link_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Role_Permission_Link_Audit_id_link` FOREIGN KEY (`id_link`) REFERENCES `shop_role_permission_link` (`id_link`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_role_permission_link_audit` -- LOCK TABLES `shop_role_permission_link_audit` WRITE; /*!40000 ALTER TABLE `shop_role_permission_link_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_role_permission_link_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_tax_or_surcharge` -- DROP TABLE IF EXISTS `shop_tax_or_surcharge`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_tax_or_surcharge` ( `id_tax` int NOT NULL AUTO_INCREMENT, `code` varchar(50) NOT NULL, `name` varchar(200) NOT NULL, `id_region_buyer` int NOT NULL, `id_region_seller` int NOT NULL, `id_currency` int DEFAULT NULL, `fixed_fee` float NOT NULL DEFAULT '0', `multiplier` float NOT NULL DEFAULT '1', `apply_fixed_fee_before_multiplier` bit(1) DEFAULT b'1', `quantity_min` float NOT NULL DEFAULT '0', `quantity_max` float NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_tax`), KEY `FK_Shop_Tax_Or_Surcharge_id_region_buyer` (`id_region_buyer`), KEY `FK_Shop_Tax_Or_Surcharge_id_region_seller` (`id_region_seller`), KEY `FK_Shop_Tax_Or_Surcharge_id_currency` (`id_currency`), KEY `FK_Shop_Tax_Or_Surcharge_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Tax_Or_Surcharge_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Tax_Or_Surcharge_id_currency` FOREIGN KEY (`id_currency`) REFERENCES `shop_currency` (`id_currency`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Tax_Or_Surcharge_id_region_buyer` FOREIGN KEY (`id_region_buyer`) REFERENCES `shop_region` (`id_region`), CONSTRAINT `FK_Shop_Tax_Or_Surcharge_id_region_seller` FOREIGN KEY (`id_region_seller`) REFERENCES `shop_region` (`id_region`), CONSTRAINT `shop_tax_or_surcharge_chk_1` CHECK ((`multiplier` > 0)) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_tax_or_surcharge` -- LOCK TABLES `shop_tax_or_surcharge` WRITE; /*!40000 ALTER TABLE `shop_tax_or_surcharge` DISABLE KEYS */; INSERT INTO `shop_tax_or_surcharge` VALUES (1,'VAT','Value Added Tax',1,1,NULL,0,0.2,_binary '',0,1,_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_tax_or_surcharge` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Tax_Or_Surcharge` BEFORE INSERT ON `shop_tax_or_surcharge` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Tax_Or_Surcharge` BEFORE UPDATE ON `shop_tax_or_surcharge` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Tax_Or_Surcharge_Audit ( id_tax, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_tax, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_tax, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed fixed_fee SELECT NEW.id_tax, 'fixed_fee', OLD.fixed_fee, NEW.fixed_fee, NEW.id_change_set WHERE NOT OLD.fixed_fee <=> NEW.fixed_fee UNION # Changed multiplier SELECT NEW.id_tax, 'multiplier', OLD.multiplier, NEW.multiplier, NEW.id_change_set WHERE NOT OLD.multiplier <=> NEW.multiplier UNION # Changed apply_fixed_fee_before_multiplier SELECT NEW.id_tax, 'apply_fixed_fee_before_multiplier', CONVERT(CONVERT(OLD.apply_fixed_fee_before_multiplier, SIGNED), CHAR), CONVERT(CONVERT(NEW.apply_fixed_fee_before_multiplier, SIGNED), CHAR), NEW.id_change_set WHERE NOT OLD.apply_fixed_fee_before_multiplier <=> NEW.apply_fixed_fee_before_multiplier UNION # Changed quantity_min SELECT NEW.id_tax, 'quantity_min', OLD.quantity_min, NEW.quantity_min, NEW.id_change_set WHERE NOT OLD.quantity_min <=> NEW.quantity_min UNION # Changed quantity_max SELECT NEW.id_tax, 'quantity_max', OLD.quantity_max, NEW.quantity_max, NEW.id_change_set WHERE NOT OLD.quantity_max <=> NEW.quantity_max UNION # Changed display_order SELECT NEW.id_tax, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT OLD.display_order <=> NEW.display_order UNION # Changed active SELECT NEW.id_tax, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT OLD.active <=> NEW.active ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_tax_or_surcharge_audit` -- DROP TABLE IF EXISTS `shop_tax_or_surcharge_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_tax_or_surcharge_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_tax` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Tax_Or_Surcharge_Audit_id_discount` (`id_tax`), KEY `FK_Shop_Tax_Or_Surcharge_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Tax_Or_Surcharge_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_Tax_Or_Surcharge_Audit_id_discount` FOREIGN KEY (`id_tax`) REFERENCES `shop_tax_or_surcharge` (`id_tax`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_tax_or_surcharge_audit` -- LOCK TABLES `shop_tax_or_surcharge_audit` WRITE; /*!40000 ALTER TABLE `shop_tax_or_surcharge_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_tax_or_surcharge_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_user` -- DROP TABLE IF EXISTS `shop_user`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user` ( `id_user` varchar(200) NOT NULL, `name` varchar(255) NOT NULL, `email` varchar(254) NOT NULL, `email_verified` bit(1) NOT NULL DEFAULT b'0', `is_super_user` bit(1) NOT NULL DEFAULT b'0', `active` bit(1) NOT NULL DEFAULT b'1', `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_user`), KEY `FK_Shop_User_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user` -- LOCK TABLES `shop_user` WRITE; /*!40000 ALTER TABLE `shop_user` DISABLE KEYS */; INSERT INTO `shop_user` VALUES ('auth0|6582b95c895d09a70ba10fef','Teddy','edward.middletonsmith@gmail.com',_binary '\0',_binary '',_binary '','2024-04-28 19:03:07','root@localhost',NULL),('parts_guest','Guest','',_binary '\0',_binary '\0',_binary '','2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_user` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_User` BEFORE INSERT ON `shop_user` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_User` BEFORE UPDATE ON `shop_user` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_User_Audit ( id_user, name_field, value_prev, value_new, id_change_set ) # Changed name SELECT NEW.id_user, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT (OLD.name <=> NEW.name) UNION # Changed is_super_user SELECT NEW.id_user, 'is_super_user', CONVERT(CONVERT(OLD.is_super_user, SIGNED), CHAR), CONVERT(CONVERT(NEW.is_super_user, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.is_super_user <=> NEW.is_super_user) UNION # Changed active SELECT NEW.id_user, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_user_audit` -- DROP TABLE IF EXISTS `shop_user_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_user` varchar(200) NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_User_Audit_id_user` (`id_user`), KEY `FK_Shop_User_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_User_Audit_id_user` FOREIGN KEY (`id_user`) REFERENCES `shop_user` (`id_user`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user_audit` -- LOCK TABLES `shop_user_audit` WRITE; /*!40000 ALTER TABLE `shop_user_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_user_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_user_basket` -- DROP TABLE IF EXISTS `shop_user_basket`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user_basket` ( `id_item` int NOT NULL AUTO_INCREMENT, `id_user` varchar(200) NOT NULL, `id_product` int NOT NULL, `id_permutation` int DEFAULT NULL, `quantity` int NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set_user` int DEFAULT NULL, PRIMARY KEY (`id_item`), KEY `FK_Shop_User_Basket_id_user` (`id_user`), KEY `FK_Shop_User_Basket_id_product` (`id_product`), KEY `FK_Shop_User_Basket_id_permutation` (`id_permutation`), KEY `FK_Shop_User_Basket_id_change_set_user` (`id_change_set_user`), CONSTRAINT `FK_Shop_User_Basket_id_change_set_user` FOREIGN KEY (`id_change_set_user`) REFERENCES `shop_user_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Basket_id_permutation` FOREIGN KEY (`id_permutation`) REFERENCES `shop_product_permutation` (`id_permutation`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_User_Basket_id_product` FOREIGN KEY (`id_product`) REFERENCES `shop_product` (`id_product`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_User_Basket_id_user` FOREIGN KEY (`id_user`) REFERENCES `shop_user` (`id_user`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user_basket` -- LOCK TABLES `shop_user_basket` WRITE; /*!40000 ALTER TABLE `shop_user_basket` DISABLE KEYS */; INSERT INTO `shop_user_basket` VALUES (1,'auth0|6582b95c895d09a70ba10fef',1,1,69,_binary '','2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_user_basket` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_User_Basket` BEFORE INSERT ON `shop_user_basket` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_User_Basket` BEFORE UPDATE ON `shop_user_basket` FOR EACH ROW BEGIN IF NEW.id_change_set_user <=> OLD.id_change_set_user THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_User_Basket_Audit ( id_item, name_field, value_prev, value_new, id_change_set_user ) # Changed id_user SELECT NEW.id_item, 'id_user', OLD.id_user, NEW.id_user, NEW.id_change_set_user WHERE NOT OLD.id_user <=> NEW.id_user UNION # Changed id_product SELECT NEW.id_item, 'id_product', OLD.id_product, NEW.id_product, NEW.id_change_set_user WHERE NOT OLD.id_product <=> NEW.id_product UNION # Changed quantity SELECT NEW.id_item, 'quantity', CONVERT(OLD.quantity, CHAR), CONVERT(NEW.quantity, CHAR), NEW.id_change_set_user WHERE NOT (OLD.quantity <=> NEW.quantity) UNION # Changed active SELECT NEW.id_item, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set_user WHERE NOT (OLD.active <=> NEW.active) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_user_basket_audit` -- DROP TABLE IF EXISTS `shop_user_basket_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user_basket_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_item` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set_user` int DEFAULT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_User_Basket_Audit_id_link` (`id_item`), KEY `FK_Shop_User_Basket_Audit_id_change_set_user` (`id_change_set_user`), CONSTRAINT `FK_Shop_User_Basket_Audit_id_change_set_user` FOREIGN KEY (`id_change_set_user`) REFERENCES `shop_user_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Basket_Audit_id_link` FOREIGN KEY (`id_item`) REFERENCES `shop_user_basket` (`id_item`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user_basket_audit` -- LOCK TABLES `shop_user_basket_audit` WRITE; /*!40000 ALTER TABLE `shop_user_basket_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_user_basket_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_user_change_set` -- DROP TABLE IF EXISTS `shop_user_change_set`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user_change_set` ( `id_change_set` int NOT NULL AUTO_INCREMENT, `comment` varchar(500) DEFAULT NULL, `updated_last_on` datetime DEFAULT NULL, `updated_last_by` varchar(100) DEFAULT NULL, PRIMARY KEY (`id_change_set`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user_change_set` -- LOCK TABLES `shop_user_change_set` WRITE; /*!40000 ALTER TABLE `shop_user_change_set` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_user_change_set` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_User_Change_Set` BEFORE INSERT ON `shop_user_change_set` FOR EACH ROW BEGIN IF NEW.updated_last_on <=> NULL THEN SET NEW.updated_last_on = NOW(); END IF; IF NEW.updated_last_by <=> NULL THEN SET NEW.updated_last_by = CURRENT_USER(); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_user_order` -- DROP TABLE IF EXISTS `shop_user_order`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user_order` ( `id_order` int NOT NULL AUTO_INCREMENT, `id_user` varchar(200) NOT NULL, `value_total` float DEFAULT NULL, `id_order_status` int NOT NULL, `id_checkout_session` varchar(200) NOT NULL, `id_currency` int NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set_user` int DEFAULT NULL, PRIMARY KEY (`id_order`), KEY `FK_Shop_User_Order_id_user` (`id_user`), KEY `FK_Shop_User_Order_id_order_status` (`id_order_status`), KEY `FK_Shop_User_Order_id_currency` (`id_currency`), KEY `FK_Shop_User_Order_id_change_set_user` (`id_change_set_user`), CONSTRAINT `FK_Shop_User_Order_id_change_set_user` FOREIGN KEY (`id_change_set_user`) REFERENCES `shop_user_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Order_id_currency` FOREIGN KEY (`id_currency`) REFERENCES `shop_currency` (`id_currency`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_User_Order_id_order_status` FOREIGN KEY (`id_order_status`) REFERENCES `shop_user_order_status` (`id_status`), CONSTRAINT `FK_Shop_User_Order_id_user` FOREIGN KEY (`id_user`) REFERENCES `shop_user` (`id_user`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user_order` -- LOCK TABLES `shop_user_order` WRITE; /*!40000 ALTER TABLE `shop_user_order` DISABLE KEYS */; INSERT INTO `shop_user_order` VALUES (1,'auth0|6582b95c895d09a70ba10fef',25,1,'noods',1,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(2,'auth0|6582b95c895d09a70ba10fef',25,1,'noods',1,_binary '','2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_user_order` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_User_Order` BEFORE INSERT ON `shop_user_order` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_User_Order` BEFORE UPDATE ON `shop_user_order` FOR EACH ROW BEGIN IF OLD.id_change_set_user <=> NEW.id_change_set_user THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; IF NOT (NEW.id_checkout_session <=> OLD.id_checkout_session) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Checkout session ID must not change.'; END IF; INSERT INTO Shop_User_Order_Audit ( id_order, name_field, value_prev, value_new, id_change_set_user ) # Changed id_user SELECT NEW.id_order, 'id_user', OLD.id_user, NEW.id_user, NEW.id_change_set_user WHERE NOT OLD.id_user <=> NEW.id_user UNION # Changed value_total SELECT NEW.id_order, 'value_total', CONVERT(OLD.value_total, CHAR), CONVERT(NEW.value_total, CHAR), NEW.id_change_set_user WHERE NOT (OLD.value_total <=> NEW.value_total) UNION # Changed id_order_status SELECT NEW.id_order, 'id_order_status', CONVERT(OLD.id_order_status, CHAR), CONVERT(NEW.id_order_status, CHAR), NEW.id_change_set_user WHERE NOT (OLD.id_order_status <=> NEW.id_order_status) UNION # Changed id_checkout_session SELECT NEW.id_order, 'id_checkout_session', OLD.id_checkout_session, NEW.id_checkout_session, NEW.id_change_set_user WHERE NOT (OLD.id_checkout_session <=> NEW.id_checkout_session) UNION # Changed active SELECT NEW.id_order, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set_user WHERE NOT (OLD.active <=> NEW.active) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_user_order_audit` -- DROP TABLE IF EXISTS `shop_user_order_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user_order_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_order` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set_user` int DEFAULT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_User_Order_Audit_id_order` (`id_order`), KEY `FK_Shop_User_Order_Audit_id_change_set_user` (`id_change_set_user`), CONSTRAINT `FK_Shop_User_Order_Audit_id_change_set_user` FOREIGN KEY (`id_change_set_user`) REFERENCES `shop_user_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Order_Audit_id_order` FOREIGN KEY (`id_order`) REFERENCES `shop_user_order` (`id_order`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user_order_audit` -- LOCK TABLES `shop_user_order_audit` WRITE; /*!40000 ALTER TABLE `shop_user_order_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_user_order_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_user_order_product_link` -- DROP TABLE IF EXISTS `shop_user_order_product_link`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user_order_product_link` ( `id_link` int NOT NULL AUTO_INCREMENT, `id_order` int NOT NULL, `id_product` int NOT NULL, `id_permutation` int DEFAULT NULL, `quantity` float NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_link`), KEY `FK_Shop_User_Order_Product_Link_id_order` (`id_order`), KEY `FK_Shop_User_Order_Product_Link_id_product` (`id_product`), KEY `FK_Shop_User_Order_Product_Link_id_permutation` (`id_permutation`), KEY `FK_Shop_User_Order_Product_Link_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Order_Product_Link_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Order_Product_Link_id_order` FOREIGN KEY (`id_order`) REFERENCES `shop_user_order` (`id_order`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_User_Order_Product_Link_id_permutation` FOREIGN KEY (`id_permutation`) REFERENCES `shop_product_permutation` (`id_permutation`) ON UPDATE RESTRICT, CONSTRAINT `FK_Shop_User_Order_Product_Link_id_product` FOREIGN KEY (`id_product`) REFERENCES `shop_product` (`id_product`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user_order_product_link` -- LOCK TABLES `shop_user_order_product_link` WRITE; /*!40000 ALTER TABLE `shop_user_order_product_link` DISABLE KEYS */; INSERT INTO `shop_user_order_product_link` VALUES (1,1,1,1,69,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(2,1,2,NULL,69,_binary '','2024-04-28 19:03:07','root@localhost',NULL),(3,1,1,2,69,_binary '','2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_user_order_product_link` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_User_Order_Product_Link` BEFORE INSERT ON `shop_user_order_product_link` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_User_Order_Product_Link` BEFORE UPDATE ON `shop_user_order_product_link` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_User_Order_Product_Link_Audit ( id_link, name_field, value_prev, value_new, id_change_set ) # Changed id_product SELECT NEW.id_link, 'active', CONVERT(OLD.id_product, CHAR), CONVERT(NEW.id_product, CHAR), NEW.id_change_set WHERE NOT (OLD.id_product <=> NEW.id_product) UNION # Changed quantity SELECT NEW.id_link, 'quantity', CONVERT(OLD.quantity, CHAR), CONVERT(NEW.quantity, CHAR), NEW.id_change_set WHERE NOT (OLD.quantity <=> NEW.quantity) UNION # Changed active SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_user_order_product_link_audit` -- DROP TABLE IF EXISTS `shop_user_order_product_link_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user_order_product_link_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_link` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_User_Order_Product_Link_Audit_id_link` (`id_link`), KEY `FK_Shop_User_Order_Product_Link_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Order_Product_Link_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Order_Product_Link_Audit_id_link` FOREIGN KEY (`id_link`) REFERENCES `shop_user_order_product_link` (`id_link`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user_order_product_link_audit` -- LOCK TABLES `shop_user_order_product_link_audit` WRITE; /*!40000 ALTER TABLE `shop_user_order_product_link_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_user_order_product_link_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_user_order_status` -- DROP TABLE IF EXISTS `shop_user_order_status`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user_order_status` ( `id_status` int NOT NULL AUTO_INCREMENT, `code` varchar(50) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `name_plural` varchar(256) DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_status`), KEY `FK_Shop_User_Order_Status_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Order_Status_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user_order_status` -- LOCK TABLES `shop_user_order_status` WRITE; /*!40000 ALTER TABLE `shop_user_order_status` DISABLE KEYS */; INSERT INTO `shop_user_order_status` VALUES (1,'SUCCESS','Success','Successes',_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,'FAIL','Failure','Failures',_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_user_order_status` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_User_Order_Status` BEFORE INSERT ON `shop_user_order_status` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_User_Order_Status` BEFORE UPDATE ON `shop_user_order_status` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_User_Order_Status_Audit ( id_Status, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_Status, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_Status, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed name_plural SELECT NEW.id_Status, 'name_plural', OLD.name_plural, NEW.name_plural, NEW.id_change_set WHERE NOT OLD.name_plural <=> NEW.name_plural UNION # Changed active SELECT NEW.id_Status, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_Status, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT (OLD.display_order <=> NEW.display_order) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_user_order_status_audit` -- DROP TABLE IF EXISTS `shop_user_order_status_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user_order_status_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_status` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_User_Order_Status_Audit_id_status` (`id_status`), KEY `FK_Shop_User_Order_Status_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Order_Status_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Order_Status_Audit_id_status` FOREIGN KEY (`id_status`) REFERENCES `shop_user_order_status` (`id_status`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user_order_status_audit` -- LOCK TABLES `shop_user_order_status_audit` WRITE; /*!40000 ALTER TABLE `shop_user_order_status_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_user_order_status_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_user_role_link` -- DROP TABLE IF EXISTS `shop_user_role_link`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user_role_link` ( `id_link` int NOT NULL AUTO_INCREMENT, `id_user` varchar(200) NOT NULL, `id_role` int NOT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_link`), KEY `FK_Shop_User_Role_Link_id_user` (`id_user`), KEY `FK_Shop_User_Role_Link_id_role` (`id_role`), KEY `FK_Shop_User_Role_Link_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Role_Link_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Role_Link_id_role` FOREIGN KEY (`id_role`) REFERENCES `shop_role` (`id_role`), CONSTRAINT `FK_Shop_User_Role_Link_id_user` FOREIGN KEY (`id_user`) REFERENCES `shop_user` (`id_user`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user_role_link` -- LOCK TABLES `shop_user_role_link` WRITE; /*!40000 ALTER TABLE `shop_user_role_link` DISABLE KEYS */; INSERT INTO `shop_user_role_link` VALUES (1,'auth0|6582b95c895d09a70ba10fef',1,_binary '','2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_user_role_link` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_User_Role_Link` BEFORE INSERT ON `shop_user_role_link` FOR EACH ROW BEGIN IF NEW.created_on <=> NULL THEN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); END IF; IF NEW.created_by <=> NULL THEN SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_User_Role_Link` BEFORE UPDATE ON `shop_user_role_link` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_User_Role_Link_Audit ( id_link, name_field, value_prev, value_new, id_change_set ) # Changed active SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_user_role_link_audit` -- DROP TABLE IF EXISTS `shop_user_role_link_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_user_role_link_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_link` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_User_Role_Link_Audit_id_link` (`id_link`), KEY `FK_Shop_User_Role_Link_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Role_Link_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_user_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_User_Role_Link_Audit_id_link` FOREIGN KEY (`id_link`) REFERENCES `shop_user_role_link` (`id_link`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_user_role_link_audit` -- LOCK TABLES `shop_user_role_link_audit` WRITE; /*!40000 ALTER TABLE `shop_user_role_link_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_user_role_link_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_variation` -- DROP TABLE IF EXISTS `shop_variation`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_variation` ( `id_variation` int NOT NULL AUTO_INCREMENT, `id_type` int NOT NULL, `code` varchar(50) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_variation`), KEY `FK_Shop_Variation_id_type` (`id_type`), KEY `FK_Shop_Variation_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Variation_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Variation_id_type` FOREIGN KEY (`id_type`) REFERENCES `shop_variation_type` (`id_type`) ON UPDATE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_variation` -- LOCK TABLES `shop_variation` WRITE; /*!40000 ALTER TABLE `shop_variation` DISABLE KEYS */; INSERT INTO `shop_variation` VALUES (1,1,'RED','Red',_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL),(2,1,'BLUE','Blue',_binary '',2,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_variation` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Variation` BEFORE INSERT ON `shop_variation` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Variation` BEFORE UPDATE ON `shop_variation` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Variation_Audit ( id_variation, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_variation, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_variation, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed active SELECT NEW.id_variation, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_variation, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT (OLD.display_order <=> NEW.display_order) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_variation_audit` -- DROP TABLE IF EXISTS `shop_variation_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_variation_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_variation` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Variation_Audit_id_variation` (`id_variation`), KEY `FK_Shop_Variation_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Variation_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Variation_Audit_id_variation` FOREIGN KEY (`id_variation`) REFERENCES `shop_variation` (`id_variation`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_variation_audit` -- LOCK TABLES `shop_variation_audit` WRITE; /*!40000 ALTER TABLE `shop_variation_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_variation_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `shop_variation_type` -- DROP TABLE IF EXISTS `shop_variation_type`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_variation_type` ( `id_type` int NOT NULL AUTO_INCREMENT, `code` varchar(50) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `name_plural` varchar(256) DEFAULT NULL, `active` bit(1) NOT NULL DEFAULT b'1', `display_order` int NOT NULL, `created_on` datetime DEFAULT NULL, `created_by` varchar(100) DEFAULT NULL, `id_change_set` int DEFAULT NULL, PRIMARY KEY (`id_type`), KEY `FK_Shop_Variation_Type_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Variation_Type_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_variation_type` -- LOCK TABLES `shop_variation_type` WRITE; /*!40000 ALTER TABLE `shop_variation_type` DISABLE KEYS */; INSERT INTO `shop_variation_type` VALUES (1,'COLOUR','Colour','Colours',_binary '',1,'2024-04-28 19:03:07','root@localhost',NULL); /*!40000 ALTER TABLE `shop_variation_type` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_insert_Shop_Variation_Type` BEFORE INSERT ON `shop_variation_type` FOR EACH ROW BEGIN SET NEW.created_on := IFNULL(NEW.created_on, NOW()); SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1)); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `before_update_Shop_Variation_Type` BEFORE UPDATE ON `shop_variation_type` FOR EACH ROW BEGIN IF OLD.id_change_set <=> NEW.id_change_set THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'New change Set ID must be provided.'; END IF; INSERT INTO Shop_Variation_Type_Audit ( id_type, name_field, value_prev, value_new, id_change_set ) # Changed code SELECT NEW.id_type, 'code', OLD.code, NEW.code, NEW.id_change_set WHERE NOT OLD.code <=> NEW.code UNION # Changed name SELECT NEW.id_type, 'name', OLD.name, NEW.name, NEW.id_change_set WHERE NOT OLD.name <=> NEW.name UNION # Changed name_plural SELECT NEW.id_type, 'name_plural', OLD.name_plural, NEW.name_plural, NEW.id_change_set WHERE NOT OLD.name_plural <=> NEW.name_plural UNION # Changed active SELECT NEW.id_type, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set WHERE NOT (OLD.active <=> NEW.active) UNION # Changed display_order SELECT NEW.id_type, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set WHERE NOT (OLD.display_order <=> NEW.display_order) ; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Table structure for table `shop_variation_type_audit` -- DROP TABLE IF EXISTS `shop_variation_type_audit`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `shop_variation_type_audit` ( `id_audit` int NOT NULL AUTO_INCREMENT, `id_type` int NOT NULL, `name_field` varchar(50) DEFAULT NULL, `value_prev` varchar(500) DEFAULT NULL, `value_new` varchar(500) DEFAULT NULL, `id_change_set` int NOT NULL, PRIMARY KEY (`id_audit`), KEY `FK_Shop_Variation_Type_Audit_id_type` (`id_type`), KEY `FK_Shop_Variation_Type_Audit_id_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Variation_Type_Audit_id_change_set` FOREIGN KEY (`id_change_set`) REFERENCES `shop_product_change_set` (`id_change_set`), CONSTRAINT `FK_Shop_Variation_Type_Audit_id_type` FOREIGN KEY (`id_type`) REFERENCES `shop_variation_type` (`id_type`) ON UPDATE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `shop_variation_type_audit` -- LOCK TABLES `shop_variation_type_audit` WRITE; /*!40000 ALTER TABLE `shop_variation_type_audit` DISABLE KEYS */; /*!40000 ALTER TABLE `shop_variation_type_audit` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `tmp_msg_error` -- DROP TABLE IF EXISTS `tmp_msg_error`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `tmp_msg_error` ( `display_order` int NOT NULL AUTO_INCREMENT, `guid` varchar(36) NOT NULL, `id_type` int NOT NULL, `msg` varchar(4000) NOT NULL, PRIMARY KEY (`display_order`), KEY `FK_tmp_Msg_Error_id_type` (`id_type`), CONSTRAINT `FK_tmp_Msg_Error_id_type` FOREIGN KEY (`id_type`) REFERENCES `shop_msg_error_type` (`id_type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `tmp_msg_error` -- LOCK TABLES `tmp_msg_error` WRITE; /*!40000 ALTER TABLE `tmp_msg_error` DISABLE KEYS */; /*!40000 ALTER TABLE `tmp_msg_error` ENABLE KEYS */; UNLOCK TABLES; -- -- Dumping events for database 'partsltd_prod' -- -- -- Dumping routines for database 'partsltd_prod' -- /*!50003 DROP PROCEDURE IF EXISTS `p_shop_edit_user` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; CREATE DEFINER=`root`@`localhost` PROCEDURE `p_shop_edit_user`( IN a_id_user INT, IN a_name VARCHAR(255), IN a_email VARCHAR(254), IN a_email_verified BIT ) BEGIN -- Argument redeclaration -- Variable declaration DECLARE v_has_filter_user BIT; -- DECLARE v_now DATETIME; -- Argument validation + default values IF a_id_user IS NULL THEN SET a_id_user = ''; ELSE SET a_id_user = TRIM(a_id_user); END IF; IF a_name IS NULL THEN SET a_name = ''; ELSE SET a_name = TRIM(a_name); END IF; IF a_email IS NULL THEN SET a_email = ''; ELSE SET a_email = TRIM(a_email); END IF; IF a_email_verified IS NULL THEN SET a_email_verified = 0; END IF; -- Temporary tables DROP TABLE IF EXISTS tmp_Msg_Error; DROP TABLE IF EXISTS tmp_Shop_User; CREATE TABLE tmp_Shop_User ( id_user INT NOT NULL, CONSTRAINT FK_tmp_Shop_User_id_user FOREIGN KEY (id_user) REFERENCES Shop_User(id_user), active BIT NOT NULL ); CREATE TABLE tmp_Msg_Error ( display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT, id_type INT NOT NULL, # code VARCHAR(50) NOT NULL, # CONSTRAINT chk_tmp_Msg_Error_code CHECK (code IN (SELECT code FROM Shop_Msg_Error_Type)), CONSTRAINT FK_tmp_Msg_Error_id_type FOREIGN KEY (id_type) REFERENCES Shop_Msg_Error_Type(id_type), msg VARCHAR(4000) NOT NULL ); -- Parse filters SET v_has_filter_user = CASE WHEN a_id_user = '' THEN 0 ELSE 1 END; -- User IF v_has_filter_user THEN INSERT INTO tmp_Shop_User ( id_user, active ) SELECT id_user, active FROM Shop_User WHERE id_user LIKE CONCAT('%', a_id_user, '%') AND active LIMIT 1 ; IF NOT EXISTS (SELECT id_user FROM tmp_Shop_User LIMIT 1) THEN INSERT INTO Shop_User ( id_user, name, email, email_verified ) VALUES ( a_id_user, a_name, a_email, a_email_verified ); INSERT INTO tmp_Shop_User ( id_user, active ) SELECT id_user, active FROM Shop_User WHERE id_user LIKE CONCAT('%', a_id_user, '%') AND active LIMIT 1 ; END IF; SET a_id_user := (SELECT id_user FROM tmp_Shop_User LIMIT 1); ELSE INSERT INTO tmp_Msg_Error ( id_type, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), 'No user ID provided.' ) ; END IF; /* IF NOT EXISTS (SELECT msg FROM tmp_Msg_Error LIMIT 1) THEN END IF; */ -- Returns # User SELECT * FROM tmp_Shop_User ; # Errors SELECT * FROM tmp_Msg_Error ; /* # Return arguments for test SELECT a_id_user, a_name, a_email, a_email_verified ; */ -- Clean up DROP TABLE IF EXISTS tmp_Msg_Error; DROP TABLE IF EXISTS tmp_Shop_User; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `p_shop_edit_user_basket` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; CREATE DEFINER=`root`@`localhost` PROCEDURE `p_shop_edit_user_basket`( IN a_id_user INT, IN a_ids_permutation_basket VARCHAR(4000), IN a_quantities_permutation_basket VARCHAR(4000), IN a_id_permutation_edit INT, IN a_quantity_permutation_edit INT, IN a_sum_not_edit BIT, IN a_id_currency INT, IN a_id_region_purchase INT ) BEGIN -- Argument redeclaration -- Variable declaration DECLARE v_has_filter_user BIT; DECLARE v_has_filter_permutation_basket BIT; DECLARE v_has_filter_permutation_edit BIT; DECLARE v_has_filter_region BIT; DECLARE v_has_filter_currency BIT; DECLARE v_n_id_permutation_basket INT; DECLARE v_n_quantity_permutation_basket INT; DECLARE v_row_number INT; DECLARE v_guid BINARY(36); # DECLARE v_id_user VARCHAR(100); DECLARE v_id_permission_product INT; DECLARE v_ids_permutation_permission VARCHAR(4000); DECLARE v_now DATETIME; # DECLARE v_quantity_new INT; DECLARE v_change_set_used BIT; DECLARE v_id_change_set INT; SET v_guid = UUID(); -- Argument validation + default values IF a_id_user IS NULL THEN SET a_id_user = ''; ELSE SET a_id_user = TRIM(a_id_user); END IF; IF a_ids_permutation_basket IS NULL THEN SET a_ids_permutation_basket = ''; ELSE SET a_ids_permutation_basket = TRIM(a_ids_permutation_basket); END IF; IF a_quantities_permutation_basket IS NULL THEN SET a_quantities_permutation_basket = ''; ELSE SET a_quantities_permutation_basket = TRIM(a_quantities_permutation_basket); END IF; IF a_sum_not_edit IS NULL THEN SET a_sum_not_edit = 1; END IF; -- Temporary tables DROP TABLE IF EXISTS tmp_Msg_Error; DROP TABLE IF EXISTS tmp_Shop_Basket; DROP TEMPORARY TABLE IF EXISTS tmp_Shop_Quantity; DROP TABLE IF EXISTS tmp_Shop_Product; DROP TABLE IF EXISTS tmp_Shop_User; CREATE TABLE tmp_Shop_User ( id_user INT NOT NULL, CONSTRAINT FK_tmp_Shop_User_id_user FOREIGN KEY (id_user) REFERENCES Shop_User(id_user), active BIT NOT NULL ); CREATE TABLE tmp_Shop_Product ( id_product INT NOT NULL, CONSTRAINT FK_tmp_Shop_Product_id_product FOREIGN KEY (id_product) REFERENCES Shop_Product(id_product), id_permutation INT NOT NULL, CONSTRAINT FK_tmp_Shop_Product_id_permutation FOREIGN KEY (id_permutation) REFERENCES Shop_Product_Permutation(id_permutation), display_order INT NOT NULL, active INT NOT NULL DEFAULT 1 ); CREATE TEMPORARY TABLE tmp_Shop_Quantity( quantity INT NOT NULL, display_order INT NOT NULL, active INT NOT NULL DEFAULT 1 ); CREATE TABLE tmp_Shop_Basket ( id_category INT NOT NULL, CONSTRAINT FK_tmp_Shop_Basket_id_category FOREIGN KEY (id_category) REFERENCES Shop_Product_Category(id_category), id_product INT NOT NULL, CONSTRAINT FK_tmp_Shop_Basket_id_product FOREIGN KEY (id_product) REFERENCES Shop_Product(id_product), id_permutation INT NOT NULL, CONSTRAINT FK_tmp_Shop_Basket_id_permutation FOREIGN KEY (id_permutation) REFERENCES Shop_Product_Permutation(id_permutation), id_region_purchase INT NOT NULL, CONSTRAINT FK_tmp_Shop_Basket_id_region_purchase FOREIGN KEY (id_region_purchase) REFERENCES Shop_Region(id_region), id_currency INT NOT NULL, CONSTRAINT FK_tmp_Shop_Basket_id_currency FOREIGN KEY (id_currency) REFERENCES Shop_Currency(id_currency), quantity INT NOT NULL, active BIT NOT NULL DEFAULT 1 /* display_order_category INT NOT NULL, display_order_product INT NOT NULL */ ); CREATE TABLE IF NOT EXISTS tmp_Msg_Error ( display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT, guid BINARY(36) NOT NULL, id_type INT NOT NULL, # code VARCHAR(50) NOT NULL, # CONSTRAINT chk_tmp_Msg_Error_code CHECK (code IN (SELECT code FROM Shop_Msg_Error_Type)), CONSTRAINT FK_tmp_Msg_Error_id_type FOREIGN KEY (id_type) REFERENCES Shop_Msg_Error_Type(id_type), msg VARCHAR(4000) NOT NULL ); -- Parse filters SET v_has_filter_user = NOT (a_id_user = ''); SET v_has_filter_permutation_basket = NOT (a_ids_permutation_basket = ''); SET v_has_filter_permutation_edit = NOT ISNULL(a_id_permutation_edit); SET v_has_filter_currency = NOT ISNULL(a_id_currency); SET v_has_filter_region = NOT ISNULL(a_id_region_purchase); # SET v_quantity_new = CASE WHEN a_sum_not_edit THEN quantity + a_quantity_product_edit ELSE a_quantity_product_edit END; /* SELECT v_has_filter_user, v_has_filter_basket ; */ -- Currency IF NOT v_has_filter_currency THEN INSERT INTO tmp_Msg_Error ( id_type, guid, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), v_guid, 'Currency ID not provided.' ) ; END IF; IF v_has_filter_currency AND NOT EXISTS ( SELECT * FROM Shop_Currency WHERE id_currency = a_id_currency) THEN INSERT INTO tmp_Msg_Error ( id_type, guid, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), v_guid, CONCAT('Currency ID not found: ', a_id_currency, '.') ) ; END IF; -- Region IF NOT v_has_filter_region THEN INSERT INTO tmp_Msg_Error ( id_type, guid, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), v_guid, 'Region ID not provided.' ) ; END IF; IF v_has_filter_region AND NOT EXISTS ( SELECT * FROM Shop_Region WHERE id_region = a_id_region_purchase) THEN INSERT INTO tmp_Msg_Error ( id_type, guid, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), v_guid, CONCAT('Region ID not found: ', a_id_region_purchase, '.') ) ; END IF; -- User IF v_has_filter_user THEN INSERT INTO tmp_Shop_User ( id_user, active ) SELECT id_user, active FROM Shop_User WHERE id_user LIKE CONCAT('%', a_id_user, '%') AND active LIMIT 1 ; IF NOT EXISTS (SELECT id_user FROM tmp_Shop_User LIMIT 1) THEN SET v_has_filter_user = 0; INSERT INTO tmp_Msg_Error ( id_type, guid, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), v_guid, CONCAT('User ID not found: ', a_id_user, '.') ) ; END IF; SET a_id_user := (SELECT id_user FROM tmp_Shop_User LIMIT 1); END IF; IF v_has_filter_user AND NOT EXISTS (SELECT msg FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN SET v_change_set_used = 0; INSERT INTO Shop_User_Change_Set ( comment ) VALUES ( 'edit basket' ); SET v_id_change_set := (SELECT id_change_set FROM Shop_User_Change_Set ORDER BY id_change_set DESC LIMIT 1); END IF; -- Get basket -- User IF v_has_filter_user AND NOT EXISTS (SELECT msg FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN INSERT INTO tmp_Shop_Basket ( id_category, id_product, id_permutation, id_region_purchase, id_currency, quantity, active /* display_order_category, display_order_product */ ) SELECT C.id_category, UB.id_product, UB.id_permutation, UB.id_region_purchase, UB.id_currency, UB.quantity, UB.active /* C.display_order, P.display_order */ FROM Shop_User_Basket UB /* INNER JOIN tmp_Shop_User t_U ON UB.id_user = t_U.id_user */ INNER JOIN Shop_Product_Permutation PP ON UB.id_product = PP.id_product AND PP.active INNER JOIN Shop_Product P ON PP.id_product = P.id_product AND P.active INNER JOIN Shop_Product_Category C ON P.id_category = C.id_category AND C.active WHERE UB.id_user = a_id_user ; END IF; -- Currency IF EXISTS (SELECT * FROM tmp_Shop_Basket WHERE active LIMIT 1) AND NOT EXISTS (SELECT msg FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN IF EXISTS (SELECT * FROM tmp_Shop_Basket WHERE active AND id_currency != a_id_currency) THEN INSERT INTO tmp_Msg_Error ( id_type, guid, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), v_guid, CONCAT( 'Currency ID does not match currency of other items in basket. Basket currency: ', (SELECT code FROM Shop_Currency WHERE id_currency = ( SELECT id_currency FROM tmp_Shop_Basket WHERE active AND id_currency != a_id_currency LIMIT 1 )), ', new currency: ', (SELECT code FROM Shop_Currency WHERE id_currency = a_id_currency), '.' ) ) ; END IF; END IF; -- Region IF EXISTS (SELECT * FROM tmp_Shop_Basket WHERE active LIMIT 1) AND NOT EXISTS (SELECT msg FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN IF EXISTS ( SELECT * FROM tmp_Shop_Basket WHERE active AND id_region_purchase != a_id_region_purchase ) THEN INSERT INTO tmp_Msg_Error ( id_type, guid, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), v_guid, CONCAT('Purchase region ID does not match region of other items in basket. Basket currency: ', (SELECT code FROM Shop_Region WHERE id_region = ( SELECT id_region_purchase FROM tmp_Shop_Basket WHERE active AND id_region != a_id_region_purchase LIMIT 1 )), ', new currency: ', (SELECT code FROM Shop_Region WHERE id_region = a_id_region_purchase), '.' ) ) ; END IF; END IF; -- String product id, permutation id, quantity list IF NOT EXISTS (SELECT * FROM tmp_Shop_Basket WHERE active LIMIT 1) AND NOT EXISTS (SELECT msg FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN -- NOT v_has_filter_user AND # Get product ids CALL p_split(a_ids_permutation_basket, ','); INSERT INTO tmp_Shop_Product ( id_product, id_permutation, display_order ) SELECT PP.id_product, ST.substring, ST.display_order FROM Split_Temp ST INNER JOIN Shop_Product_Permutation PP ON ST.substring = PP.id_permutation -- AND PP.active ; /* SELECT substring as id_product, display_order FROM Split_Temp ; */ DROP TABLE Split_Temp; # Get product quantities CALL p_split(a_quantities_permutation_basket, ','); INSERT INTO tmp_Shop_Quantity ( quantity, display_order ) SELECT substring, display_order FROM Split_Temp ; /* SELECT substring AS quantity_product, display_order FROM Split_Temp ; */ DROP TABLE Split_Temp; # Compare number of product ids to number of quantities SET v_n_id_permutation_basket := (SELECT display_order FROM tmp_Shop_Product ORDER BY display_order DESC LIMIT 1); SET v_n_quantity_permutation_basket := (SELECT display_order FROM tmp_Shop_Quantity ORDER BY display_order DESC LIMIT 1); IF NOT v_n_id_permutation_basket = v_n_quantity_permutation_basket THEN INSERT INTO tmp_Msg_Error ( id_type, guid, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), v_guid, CONCAT('Number of permutations (', v_n_id_permutation_basket, ') does not equal number of quantities (', v_n_quantity_permutation_basket, ') for basket.') ) ; ELSE INSERT INTO tmp_Shop_Basket ( id_category, id_product, id_permutation, id_region_purchase, id_currency, quantity ) SELECT C.id_category, P.id_product, t_P.id_permutation, a_id_region_purchase, a_id_currency, t_Q.quantity FROM tmp_Shop_Product t_P INNER JOIN tmp_Shop_Quantity t_Q ON t_P.display_order = t_Q.display_order INNER JOIN Shop_Product_Permutation PP ON t_P.id_permutation = PP.id_permutation AND PP.active INNER JOIN Shop_Product P ON PP.id_product = P.id_product AND P.active INNER JOIN Shop_Product_Category C ON P.id_category = C.id_category AND C.active -- RIGHT JOIN tmp_Shop_Basket t_UB ON ISNULL(t_UB.id_product) -- WHERE t_P.id_product NOT IN (SELECT id_product FROM tmp_Shop_Basket) ; /* IF EXISTS( SELECT * FROM Shop_Product P INNER JOIN Shop_Product_Category C ON P.id_category = C.id_category INNER JOIN tmp_Shop_Basket t_B ON P.id_product = t_B.id_product WHERE C.active = 0 OR P.active = 0 LIMIT 1 ) THEN INSERT INTO tmp_Msg_Error ( id_type, guid, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), v_guid, CONCAT('No valid product IDs in list: ', a_ids_permutation_basket, '.') ) ; END IF; */ END IF; END IF; /* select v_has_filter_edit; select * from tmp_Shop_Basket; select * from tmp_Msg_Error; */ # Edit basket product IF v_has_filter_permutation_edit AND NOT EXISTS (SELECT msg FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN IF EXISTS ( SELECT * FROM Shop_Product_Permutation PP INNER JOIN Shop_Product P ON PP.id_product = P.id_product INNER JOIN Shop_Product_Category C ON P.id_category = C.id_category WHERE ( C.active = 0 OR P.active = 0 OR PP.active = 0 ) AND PP.id_permutation = a_id_permutation_edit LIMIT 1 ) THEN INSERT INTO tmp_Msg_Error ( id_type, guid, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), v_guid, CONCAT('Invalid product ID to edit: ', a_id_product_edit, '.') ) ; END IF; END IF; IF v_has_filter_permutation_edit AND NOT EXISTS (SELECT msg FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN IF EXISTS ( SELECT * FROM tmp_Shop_Basket WHERE id_permutation = a_id_permutation_edit ) THEN UPDATE tmp_Shop_Basket SET quantity = CASE WHEN a_sum_not_edit = 1 THEN IFNULL(quantity, 0) + a_quantity_permutation_edit ELSE a_quantity_permutation_edit END, active = CASE WHEN CASE WHEN a_sum_not_edit = 1 THEN IFNULL(quantity, 0) + a_quantity_permutation_edit ELSE a_quantity_permutation_edit END = 0 THEN 0 ELSE 1 END WHERE id_permutation = a_id_permutation_edit ; IF EXISTS ( SELECT * FROM tmp_Shop_Basket t_B WHERE t_B.quantity < 0 ) THEN INSERT INTO tmp_Msg_Error ( id_type, guid, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), v_guid, 'Invalid basket quantity.' ) ; END IF; IF v_has_filter_user AND NOT EXISTS (SELECT msg FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN SET v_change_set_used = 1; UPDATE Shop_User_Basket UB INNER JOIN tmp_Shop_Basket t_UB ON UB.id_permutation = a_id_permutation_edit SET UB.quantity = t_UB.quantity, UB.active = t_UB.active, UB.id_change_set_user = v_id_change_set WHERE UB.id_permutation = a_id_permutation_edit AND id_user = a_id_user ; END IF; ELSE IF a_quantity_permutation_edit < 0 THEN INSERT INTO tmp_Msg_Error ( id_type, guid, msg ) VALUES ( (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1), v_guid, 'Invalid basket quantity.' ) ; ELSE INSERT INTO tmp_Shop_Basket ( id_category, id_product, id_permutation, id_region_purchase, id_currency, quantity, active ) SELECT P.id_category, P.id_product, PP.id_permutation, a_id_region_purchase, a_id_currency, a_quantity_permutation_edit, CASE WHEN a_quantity_permutation_edit > 0 THEN 1 ELSE 0 END FROM Shop_Product_Permutation PP INNER JOIN Shop_Product P ON PP.id_product = P.id_product WHERE id_permutation = a_id_permutation_edit ; IF v_has_filter_user THEN IF EXISTS ( SELECT * FROM Shop_User_Basket UB WHERE UB.id_permutation = a_id_permutation_edit ) THEN SET v_change_set_used = 1; UPDATE Shop_User_Basket INNER JOIN tmp_Shop_Basket t_UB ON UB.id_permutation = t_UB.id_permutation SET UB.quantity = t_UB.quantity, UB.active = t_UB.active, UB.id_change_set_user = v_id_change_set WHERE UB.id_permutation = a_id_permutation_edit AND id_user = a_id_user ; ELSE INSERT INTO Shop_User_Basket ( id_user, id_product, id_permutation, id_region_purchase, id_currency, quantity, active ) SELECT a_id_user, t_UB.id_product, t_UB.id_permutation, t_UB.id_region_purchase, t_UB.id_currency, t_UB.quantity, t_UB.active FROM tmp_Shop_Basket t_UB WHERE id_permutation = a_id_permutation_edit ; END IF; END IF; END IF; END IF; END IF; -- Checks /* SELECT * FROM tmp_Shop_Basket; SELECT GROUP_CONCAT(t_UB.id_product SEPARATOR ',') AS basket_product_ids FROM tmp_Shop_Basket t_UB -- WHERE ISNULL(t_UB.id_permutation) ; SELECT GROUP_CONCAT(t_UB.id_permutation SEPARATOR ',') AS basket_permutation_ids FROM tmp_Shop_Basket t_UB WHERE NOT ISNULL(t_UB.id_permutation) ; */ -- Returns CALL p_shop_get_many_product ( a_id_user, # a_id_user 1, # a_get_all_categories '', # a_ids_category 0, # a_get_inactive_categories 0, # a_get_all_products ( SELECT GROUP_CONCAT(t_B.id_product SEPARATOR ',') FROM tmp_Shop_Basket t_B WHERE active = 1 ), # a_ids_product 0, # a_get_inactive_products 0, # a_get_first_product_only 0, # a_get_all_product_permutations ( SELECT GROUP_CONCAT(t_B.id_permutation SEPARATOR ',') FROM tmp_Shop_Basket t_B WHERE NOT ISNULL(t_B.id_permutation) AND active = 1 ), # a_ids_permutation 0, # a_get_inactive_permutations 0, # a_get_all_images '', # a_ids_image 0, # a_get_inactive_images 1, # a_get_first_image_only 0, # a_get_all_delivery_region a_id_region_purchase, # a_ids_delivery_region 0, # a_get_inactive_delivery_region 0, # a_get_all_currency a_id_currency, # a_ids_currency 0, # a_get_inactive_currency 1, # a_get_all_discount '', # a_ids_discount 0 # a_get_inactive_discount ); # Basket SELECT t_UB.id_category, t_UB.id_product, t_UB.id_permutation, P.name, PCL.price_local_VAT_incl, PCL.price_local_VAT_excl, PCL.id_currency, t_UB.quantity FROM tmp_Shop_Basket t_UB INNER JOIN Shop_Product_Permutation PP ON t_UB.id_permutation = PP.id_permutation INNER JOIN Shop_Product P ON PP.id_product = P.id_product INNER JOIN Shop_Product_Category C ON P.id_category = C.id_category INNER JOIN Shop_Product_Currency_Link PCL ON PP.id_permutation = PCL.id_permutation AND PCL.id_region_purchase = a_id_region_purchase AND PCL.id_currency = a_id_currency WHERE t_UB.active = 1 ORDER BY C.display_order, P.display_order ; # Errors /* Completed by product get many */ SELECT t_ME.display_order, t_ME.guid, t_ME.id_type, t_ME.msg, MET.code, MET.name, MET.description FROM tmp_Msg_Error t_ME INNER JOIN Shop_Msg_Error_Type MET ON t_ME.id_type = MET.id_type WHERE GUID = v_guid ; /* # Return arguments for test SELECT a_ids_category, a_get_inactive_categories, a_ids_product, a_get_inactive_products, a_get_first_product_only, a_get_all_products, a_ids_image, a_get_inactive_images, a_get_first_image_only, a_get_all_images ; */ -- Clean up IF NOT v_change_set_used THEN DELETE FROM Shop_User_Change_Set WHERE id_change_set = v_id_change_set ; END IF; # DROP TABLE IF EXISTS tmp_Msg_Error; DELETE FROM tmp_Msg_Error WHERE guid = v_guid; IF NOT EXISTS (SELECT * FROM tmp_Msg_Error) THEN DROP TABLE tmp_Msg_Error; END IF; DROP TABLE IF EXISTS tmp_Shop_Basket; DROP TEMPORARY TABLE IF EXISTS tmp_Shop_Quantity; DROP TABLE IF EXISTS tmp_Shop_Product; DROP TABLE IF EXISTS tmp_Shop_User; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `p_shop_get_many_currency` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; CREATE DEFINER=`root`@`localhost` PROCEDURE `p_shop_get_many_currency`( IN a_get_inactive_currency BIT ) BEGIN IF a_get_inactive_currency IS NULL THEN SET a_get_inactive_currency = 0; END IF; SELECT C.id_currency, C.code, C.name, C.factor_from_GBP, C.active, C.display_order FROM Shop_Currency C WHERE a_get_inactive_currency OR C.active ORDER BY C.display_order ; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `p_shop_get_many_product` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; CREATE DEFINER=`root`@`localhost` PROCEDURE `p_shop_get_many_product`( IN a_id_user INT, IN a_get_all_category BIT, IN a_ids_category VARCHAR(500), IN a_get_inactive_category BIT, IN a_get_all_product BIT, IN a_ids_product VARCHAR(500), IN a_get_inactive_product BIT, IN a_get_first_product_only BIT, IN a_get_all_product_permutation BIT, IN a_ids_permutation VARCHAR(4000), IN a_get_inactive_permutation BIT, IN a_get_all_image BIT, IN a_ids_image VARCHAR(4000), IN a_get_inactive_image BIT, IN a_get_first_image_only BIT, IN a_get_all_delivery_region BIT, IN a_ids_delivery_region VARCHAR(4000), IN a_get_inactive_delivery_region BIT, IN a_get_all_currency BIT, IN a_ids_currency VARCHAR(4000), IN a_get_inactive_currency BIT, IN a_get_all_discount BIT, IN a_ids_discount VARCHAR(4000), IN a_get_inactive_discount BIT ) BEGIN -- Argument redeclaration -- Variable declaration DECLARE v_has_filter_category BIT; DECLARE v_has_filter_product BIT; DECLARE v_has_filter_permutation BIT; DECLARE v_has_filter_image BIT; DECLARE v_has_filter_delivery_region BIT; DECLARE v_has_filter_currency BIT; DECLARE v_has_filter_discount BIT; DECLARE v_guid BINARY(36); # DECLARE v_id_user VARCHAR(100); DECLARE v_ids_permutation_unavailable VARCHAR(4000); DECLARE v_id_permission_product INT; DECLARE v_ids_product_permission VARCHAR(4000); DECLARE v_ids_permutation_permission VARCHAR(4000); DECLARE v_id_access_level_view INT; DECLARE v_now DATETIME; DECLARE v_id_minimum INT; SET v_guid := UUID(); SET v_id_access_level_view := (SELECT id_access_level FROM Shop_Access_Level WHERE code = 'VIEW'); -- Argument validation + default values IF a_id_user IS NULL THEN SET a_id_user = ''; ELSE SET a_id_user = TRIM(a_id_user); END IF; IF a_get_all_category IS NULL THEN SET a_get_all_category = 0; END IF; IF a_ids_category IS NULL THEN SET a_ids_category = ''; ELSE SET a_ids_category = REPLACE(TRIM(a_ids_category), '|', ','); END IF; IF a_get_inactive_category IS NULL THEN SET a_get_inactive_category = 0; END IF; IF a_ids_product IS NULL THEN SET a_ids_product = ''; ELSE SET a_ids_product = REPLACE(TRIM(a_ids_product), '|', ','); END IF; IF a_get_inactive_product IS NULL THEN SET a_get_inactive_product = 0; END IF; IF a_get_first_product_only IS NULL THEN SET a_get_first_product_only = 1; END IF; IF a_get_all_product IS NULL THEN SET a_get_all_product = 0; END IF; IF a_ids_permutation IS NULL THEN SET a_ids_permutation = ''; ELSE SET a_ids_permutation = REPLACE(TRIM(a_ids_permutation), '|', ','); END IF; IF a_get_inactive_permutation IS NULL THEN SET a_get_inactive_permutation = 0; END IF; IF a_get_all_image IS NULL THEN SET a_get_all_image = 1; END IF; IF a_ids_image IS NULL THEN SET a_ids_image = ''; ELSE SET a_ids_image = REPLACE(TRIM(a_ids_image), '|', ','); END IF; IF a_get_inactive_image IS NULL THEN SET a_get_inactive_image = 0; END IF; IF a_get_first_image_only IS NULL THEN SET a_get_first_image_only = 0; END IF; IF a_get_inactive_image IS NULL THEN SET a_get_inactive_image = 0; END IF; IF a_get_all_delivery_region IS NULL THEN SET a_get_all_delivery_region = 1; END IF; IF a_ids_delivery_region IS NULL THEN SET a_ids_delivery_region = ''; ELSE SET a_ids_delivery_region = REPLACE(TRIM(a_ids_delivery_region), '|', ','); END IF; IF a_get_inactive_delivery_region IS NULL THEN SET a_get_inactive_delivery_region = 0; END IF; IF a_get_all_currency IS NULL THEN SET a_get_all_currency = 1; END IF; IF a_ids_currency IS NULL THEN SET a_ids_currency = ''; ELSE SET a_ids_currency = REPLACE(TRIM(a_ids_currency), '|', ','); END IF; IF a_get_inactive_currency IS NULL THEN SET a_get_inactive_currency = 0; END IF; IF a_get_all_discount IS NULL THEN SET a_get_all_discount = 1; END IF; IF a_ids_discount IS NULL THEN SET a_ids_discount = ''; ELSE SET a_ids_discount = REPLACE(TRIM(a_ids_discount), '|', ','); END IF; IF a_get_inactive_discount IS NULL THEN SET a_get_inactive_discount = 0; END IF; /* SELECT a_id_user, a_get_all_category, a_ids_category, a_get_inactive_category, a_get_all_product, a_ids_product, a_get_inactive_product, a_get_first_product_only, a_get_all_product_permutation, a_ids_permutation, a_get_inactive_permutation, a_get_all_image, a_ids_image, a_get_inactive_image, a_get_first_image_only, a_get_all_delivery_region, a_ids_delivery_region, a_get_inactive_delivery_region, a_get_all_currency, a_ids_currency, a_get_inactive_currency, a_get_all_discount, a_ids_discount, a_get_inactive_discount ; */ -- Temporary tables DROP TABLE IF EXISTS tmp_Discount; DROP TABLE IF EXISTS tmp_Currency; DROP TABLE IF EXISTS tmp_Delivery_Region; DROP TABLE IF EXISTS tmp_Shop_Image; DROP TABLE IF EXISTS tmp_Shop_Variation; DROP TABLE IF EXISTS tmp_Shop_Product; DROP TABLE IF EXISTS tmp_Shop_Product_Category; CREATE TABLE tmp_Shop_Product_Category ( id_category INT NOT NULL, CONSTRAINT FK_tmp_Shop_Product_Category_id_category FOREIGN KEY (id_category) REFERENCES Shop_Product_Category(id_category), active BIT NOT NULL, display_order INT NOT NULL, can_view BIT, can_edit BIT, can_admin BIT ); CREATE TABLE tmp_Shop_Product ( id_category INT NOT NULL, CONSTRAINT FK_tmp_Shop_Product_id_category FOREIGN KEY (id_category) REFERENCES Shop_Product_Category(id_category), id_product INT NOT NULL, CONSTRAINT FK_tmp_Shop_Product_id_product FOREIGN KEY (id_product) REFERENCES Shop_Product(id_product), -- product_has_variations BIT NOT NULL, id_permutation INT NULL, CONSTRAINT FK_tmp_Shop_Product_id_permutation FOREIGN KEY (id_permutation) REFERENCES Shop_Product_Permutation(id_permutation), active_category BIT NOT NULL, active_product BIT NOT NULL, active_permutation BIT NULL, display_order_category INT NOT NULL, display_order_product INT NOT NULL, display_order_permutation INT NULL, rank_permutation INT NOT NULL, # _in_category name VARCHAR(255) NOT NULL, description VARCHAR(4000) NOT NULL, /* price_GBP_full FLOAT NOT NULL, price_GBP_min FLOAT NOT NULL, */ latency_manufacture INT NOT NULL, quantity_min FLOAT NOT NULL, quantity_max FLOAT NOT NULL, quantity_step FLOAT NOT NULL, quantity_stock FLOAT NOT NULL, is_subscription BIT NOT NULL, id_unit_measurement_interval_recurrence INT, CONSTRAINT FK_tmp_Shop_Product_id_unit_measurement_interval_recurrence FOREIGN KEY (id_unit_measurement_interval_recurrence) REFERENCES Shop_Interval_Recurrence(id_interval), count_interval_recurrence INT, id_stripe_product VARCHAR(100), product_has_variations INT NOT NULL, can_view BIT, can_edit BIT, can_admin BIT ); /* CREATE TEMPORARY TABLE tmp_Shop_Variation ( id_variation INT NOT NULL, id_product INT NOT NULL, display_order INT NOT NULL ); */ CREATE TABLE tmp_Shop_Image ( id_image INT NOT NULL, CONSTRAINT FK_tmp_Shop_Image_id_image FOREIGN KEY (id_image) REFERENCES Shop_Image(id_image), id_product INT NOT NULL, CONSTRAINT FK_tmp_Shop_Image_id_product FOREIGN KEY (id_product) REFERENCES Shop_Product(id_product), id_permutation INT NULL, CONSTRAINT FK_tmp_Shop_Image_id_permutation FOREIGN KEY (id_permutation) REFERENCES Shop_Product_Permutation(id_permutation), active BIT NOT NULL, display_order INT NOT NULL, rank_in_product_permutation INT NOT NULL ); CREATE TABLE tmp_Delivery_Region ( id_region INT NOT NULL, CONSTRAINT FK_tmp_Delivery_Region_id_region FOREIGN KEY (id_region) REFERENCES Shop_Region(id_region), active BIT NOT NULL, display_order INT NOT NULL, requires_delivery_option BIT NOT NULL DEFAULT 0 ); CREATE TABLE tmp_Currency ( id_currency INT NOT NULL, CONSTRAINT FK_tmp_Shop_Currency_id_currency FOREIGN KEY (id_currency) REFERENCES Shop_Currency(id_currency), active BIT NOT NULL, display_order INT NOT NULL ); CREATE TABLE tmp_Discount ( id_discount INT NOT NULL, CONSTRAINT FK_tmp_Discount_id_discount FOREIGN KEY (id_discount) REFERENCES Shop_Discount(id_discount), active BIT NOT NULL, display_order INT NOT NULL ); CREATE TABLE IF NOT EXISTS tmp_Msg_Error ( # IF NOT EXISTS display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT, guid BINARY(36) NOT NULL, # code VARCHAR(50) NOT NULL, # CONSTRAINT chk_tmp_Msg_Error_code CHECK (code IN (SELECT code FROM Shop_Msg_Error_Type)), id_type INT NOT NULL, CONSTRAINT FK_tmp_Msg_Error_id_type FOREIGN KEY (id_type) REFERENCES Shop_Msg_Error_Type(id_type), msg VARCHAR(4000) NOT NULL ); -- Parse filters SET v_has_filter_category = CASE WHEN a_ids_category = '' THEN 0 ELSE 1 END; SET v_has_filter_product = CASE WHEN a_ids_product = '' THEN 0 ELSE 1 END; SET v_has_filter_permutation = CASE WHEN a_ids_permutation = '' THEN 0 ELSE 1 END; SET v_has_filter_image = CASE WHEN a_ids_image = '' THEN 0 ELSE 1 END; SET v_has_filter_delivery_region = CASE WHEN a_ids_delivery_region = '' THEN 0 ELSE 1 END; SET v_has_filter_currency = CASE WHEN a_ids_currency = '' THEN 0 ELSE 1 END; SET v_has_filter_discount = CASE WHEN a_ids_discount = '' THEN 0 ELSE 1 END; -- select v_has_filter_product, v_has_filter_permutation; INSERT INTO tmp_Shop_Product ( id_category, id_product, id_permutation, active_category, active_product, active_permutation, display_order_category, display_order_product, display_order_permutation, rank_permutation, name, description, /* price_GBP_VAT_incl, price_GBP_VAT_excl, price_GBP_min, */ latency_manufacture, quantity_min, quantity_max, quantity_step, quantity_stock, is_subscription, id_unit_measurement_interval_recurrence, count_interval_recurrence, id_stripe_product, product_has_variations ) SELECT P.id_category, P.id_product, -- P.has_variations AS product_has_variations, PP.id_permutation, C.active AS active_category, P.active AS active_product, PP.active AS active_permutation, C.display_order AS display_order_category, P.display_order AS display_order_product, PP.display_order AS display_order_permutation, RANK() OVER (ORDER BY C.display_order, P.display_order, PP.display_order) AS rank_permutation, #PARTITION BY P.id_category # _in_category P.name, PP.description, /* PP.price_GBP_VAT_incl, PP.price_GBP_VAT_excl, PP.price_GBP_min, */ PP.latency_manufacture, PP.quantity_min, PP.quantity_max, PP.quantity_step, PP.quantity_stock, PP.is_subscription, PP.id_unit_measurement_interval_recurrence, PP.count_interval_recurrence, PP.id_stripe_product, P.has_variations FROM Shop_Product P INNER JOIN Shop_Product_Permutation PP ON P.id_product = PP.id_product INNER JOIN Shop_Product_Category C ON P.id_category = C.id_category WHERE # permutations ( ( a_get_all_product_permutation OR v_has_filter_permutation AND FIND_IN_SET(PP.id_permutation, a_ids_permutation) > 0 ) AND (a_get_inactive_permutation OR PP.active) ) # categories AND ( ( a_get_all_category OR v_has_filter_category AND FIND_IN_SET(P.id_category, a_ids_category) > 0 ) AND (a_get_inactive_category OR C.active) ) # products AND ( ( a_get_all_product OR v_has_filter_product AND FIND_IN_SET(P.id_product, a_ids_product) > 0 ) AND (a_get_inactive_product OR P.active) ) ; -- select * from tmp_Shop_Product; IF a_get_first_product_only THEN DELETE FROM tmp_Shop_Product t_P WHERE t_P.rank_permutation > 1 ; END IF; INSERT INTO tmp_Shop_Product_Category ( id_category, active, display_order ) SELECT DISTINCT C.id_category, C.active, C.display_order FROM tmp_Shop_Product t_P INNER JOIN Shop_Product_Category C ON t_P.id_category = C.id_category ORDER BY C.display_order ; /* INSERT INTO tmp_Shop_Variation ( id_variation, id_product # , display_order ) SELECT P.id_variation, P.id_product # , P.display_order FROM Shop_Variation V INNER JOIN tmp_Shop_Product t_P ON V.id_product = t_P.id_product WHERE V.active; */ # Product Images INSERT INTO tmp_Shop_Image ( id_product, id_permutation, id_image, active, display_order, rank_in_product_permutation ) SELECT id_product, id_permutation, id_image, active, ROW_NUMBER() OVER (ORDER BY display_order_product_temp, display_order_image), RANK() OVER (PARTITION BY id_product, id_permutation ORDER BY display_order_product_temp, display_order_image) FROM ( SELECT t_P.id_product, I.id_permutation, I.id_image, I.active, I.display_order AS display_order_image, t_P.rank_permutation AS display_order_product_temp FROM Shop_Image I INNER JOIN tmp_Shop_Product t_P ON I.id_product = t_P.id_product AND NOT t_P.product_has_variations UNION SELECT t_P.id_product, I.id_permutation, I.id_image, I.active, I.display_order AS display_order_image, t_P.rank_permutation AS display_order_product_temp FROM Shop_Image I INNER JOIN tmp_Shop_Product t_P ON I.id_permutation = t_P.id_permutation AND t_P.product_has_variations ) IPP WHERE (a_get_all_image OR a_get_first_image_only OR FIND_IN_SET(id_image, a_ids_image) > 0) AND (a_get_inactive_image OR IPP.active) ; IF a_get_first_image_only THEN DELETE FROM tmp_Shop_Image WHERE rank_in_product_permutation > 1 ; END IF; /* IF v_has_filter_image THEN DELETE FROM tmp_Shop_Product WHERE id_product NOT IN (SELECT DISTINCT id_product FROM tmp_Shop_Image); DELETE FROM tmp_Shop_Product_Category WHERE id_category NOT IN (SELECT DISTINCT id_category FROM tmp_Shop_Product); END IF; */ # Delivery Regions INSERT INTO tmp_Delivery_Region ( id_region, active, display_order, requires_delivery_option ) WITH RECURSIVE Recursive_CTE_Delivery_Region AS ( SELECT DR.id_region AS id_region_parent, NULL AS id_region_child, CASE WHEN FIND_IN_SET(DR.id_region, a_ids_delivery_region) > 0 THEN 1 ELSE 0 END AS requires_delivery_option FROM Shop_Product_Currency_Region_Link PCRL INNER JOIN Shop_Currency C ON PCRL.id_currency = C.id_currency INNER JOIN tmp_Shop_Product t_P ON PCRL.id_product <=> t_P.id_product AND PCRL.id_permutation <=> t_P.id_permutation INNER JOIN Shop_Region DR ON PCRL.id_region_purchase = DR.id_region WHERE ( a_get_all_delivery_region OR FIND_IN_SET(DR.id_region, a_ids_delivery_region) > 0 ) AND ( a_get_inactive_delivery_region OR DR.active = 1 ) UNION SELECT DRB.id_region_parent, DRB.id_region_child, 0 AS requires_delivery_option FROM Shop_Region_Branch DRB INNER JOIN Recursive_CTE_Delivery_Region r_DR ON DRB.id_region_parent = r_DR.id_region_child AND ( a_get_inactive_delivery_region OR DRB.active = 1 ) ) SELECT DR.id_region, DR.active, DR.display_order, requires_delivery_option FROM Shop_Region DR INNER JOIN Recursive_CTE_Delivery_Region r_DR ON DR.id_region = r_DR.id_region_parent OR DR.id_region = r_DR.id_region_child ; /* select * from tmp_delivery_region; SELECT * FROM tmp_Shop_Product t_P WHERE /*( a_get_all_category OR a_get_all_product OR a_get_all_product_permutation )* FIND_IN_SET(t_P.id_category, a_ids_category) > 0 OR FIND_IN_SET(t_P.id_product, a_ids_product) > 0 OR FIND_IN_SET(t_P.id_permutation, a_ids_permutation) > 0 ; */ IF v_has_filter_delivery_region THEN SET v_ids_permutation_unavailable = ( SELECT GROUP_CONCAT(t_P.id_permutation SEPARATOR ', ') FROM ( SELECT * FROM tmp_Shop_Product t_P WHERE /*( a_get_all_category OR a_get_all_produc OR a_get_all_product_permutation )*/ FIND_IN_SET(t_P.id_category, a_ids_category) > 0 OR FIND_IN_SET(t_P.id_product, a_ids_product) > 0 OR FIND_IN_SET(t_P.id_permutation, a_ids_permutation) > 0 ) t_P LEFT JOIN ( SELECT * FROM Shop_Product_Currency_Region_Link PCRL WHERE ( a_get_all_delivery_region OR FIND_IN_SET(PCRL.id_region_purchase, a_ids_delivery_region) > 0 ) ) PCRL ON t_P.id_product <=> PCRL.id_product AND t_P.id_permutation <=> PCRL.id_permutation LEFT JOIN tmp_Delivery_Region t_DR ON PCRL.id_region_purchase = t_DR.id_region AND t_DR.requires_delivery_option = 1 WHERE ISNULL(t_DR.id_region) ); IF NOT ISNULL(v_ids_permutation_unavailable) THEN INSERT INTO tmp_Msg_Error ( guid, id_type, msg ) VALUES ( v_guid, (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'PRODUCT_AVAILABILITY' LIMIT 1), CONCAT('Error: The following permutation IDs are not available in this region: ', v_ids_permutation_unavailable) ); END IF; /* DELETE FROM tmp_Shop_Product t_P WHERE t_P.id_permutation NOT IN ( SELECT id_permutation FROM Shop_Product_Currency_Region_Link PCL INNER JOIN tmp_Delivery_Region t_DR ON PCRL.id_region_purchase = t_DR.id_region ); */ END IF; -- select * from tmp_Shop_Product; # Currencies IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE guid = v_guid) THEN INSERT INTO tmp_Currency ( id_currency, active, display_order ) SELECT C.id_currency, C.active, C.display_order FROM Shop_Product_Currency_Region_Link PCRL INNER JOIN Shop_Currency C ON PCRL.id_currency = C.id_currency INNER JOIN tmp_Shop_Product t_P ON PCRL.id_product <=> t_P.id_product AND PCRL.id_permutation <=> t_P.id_permutation INNER JOIN tmp_Delivery_Region t_DR ON PCRL.id_region_purchase = t_DR.id_region WHERE ( a_get_all_currency OR FIND_IN_SET(C.id_currency, a_ids_currency) > 0 ) AND ( a_get_inactive_currency OR ( C.active AND PCRL.active ) ) ; -- select * from tmp_Currency; IF v_has_filter_currency THEN SET v_ids_permutation_unavailable = ( SELECT GROUP_CONCAT(t_P.id_permutation SEPARATOR ', ') FROM ( SELECT * FROM tmp_Shop_Product t_P WHERE /*( a_get_all_category OR a_get_all_product OR a_get_all_product_permutation )*/ FIND_IN_SET(t_P.id_category, a_ids_category) > 0 OR FIND_IN_SET(t_P.id_product, a_ids_product) > 0 OR FIND_IN_SET(t_P.id_permutation, a_ids_permutation) > 0 ) t_P INNER JOIN ( SELECT * FROM Shop_Product_Currency_Region_Link PCRL WHERE ( a_get_all_currency OR FIND_IN_SET(PCRL.id_currency, a_ids_currency) > 0 ) ) PCRL ON t_P.id_permutation = PCRL.id_permutation LEFT JOIN tmp_Currency t_C ON PCRL.id_currency = t_C.id_currency WHERE ISNULL(t_C.id_currency) ); IF NOT ISNULL(v_ids_permutation_unavailable) THEN INSERT INTO tmp_Msg_Error ( guid, id_type, msg ) VALUES ( v_guid, (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'PRODUCT_AVAILABILITY' LIMIT 1), CONCAT('Error: The following permutation IDs are not available in this currency: ', v_ids_permutation_unavailable) ); END IF; /* DELETE FROM tmp_Shop_Product t_P WHERE t_P.id_permutation NOT IN ( SELECT id_permutation FROM Shop_Product_Currency_Region_Link PCL INNER JOIN tmp_Currency t_C ON PCRL.id_currency = t_C.id_currency ); */ END IF; END IF; # Discounts IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE guid = v_guid) THEN INSERT INTO tmp_Discount ( id_discount, active, display_order ) SELECT D.id_discount, D.active, D.display_order FROM Shop_Discount D INNER JOIN tmp_Shop_Product t_P ON D.id_product = t_P.id_product AND D.id_permutation <=> t_P.id_permutation WHERE ( a_get_all_discount OR FIND_IN_SET(D.id_discount, a_ids_discount) > 0 ) AND ( a_get_inactive_discount OR D.active ) ; END IF; # select 'pre-permission results'; # select * from tmp_Shop_Product; -- Permissions IF EXISTS (SELECT * FROM tmp_Shop_Product_Category LIMIT 1) THEN # SET v_id_user := (SELECT id_user FROM Shop_User WHERE name = CURRENT_USER()); SET v_id_permission_product := (SELECT id_permission FROM Shop_Permission WHERE code = 'STORE_PRODUCT' LIMIT 1); -- SET v_ids_product_permission := (SELECT GROUP_CONCAT(id_product SEPARATOR ',') FROM tmp_Shop_Product); SET v_ids_permutation_permission := (SELECT GROUP_CONCAT(id_permutation SEPARATOR ',') FROM tmp_Shop_Product WHERE NOT ISNULL(id_permutation)); -- SELECT v_guid, a_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_permutation_permission; -- select * from Shop_User_Eval_Temp; CALL p_shop_user_eval(v_guid, a_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_permutation_permission); -- select * from Shop_User_Eval_Temp; UPDATE tmp_Shop_Product t_P INNER JOIN Shop_User_Eval_Temp UE_T ON t_P.id_permutation = UE_T.id_permutation AND UE_T.GUID = v_guid SET t_P.can_view = UE_T.can_view, t_P.can_edit = UE_T.can_edit, t_P.can_admin = UE_T.can_admin; DELETE FROM tmp_Shop_Product t_P WHERE FIND_IN_SET(t_P.id_permutation, (SELECT GROUP_CONCAT(UET.id_permutation SEPARATOR ',') FROM Shop_User_Eval_Temp UET)) = 0 # id_product NOT LIKE CONCAT('%', (SELECT GROUP_CONCAT(id_product SEPARATOR '|') FROM Shop_User_Eval_Temp), '%'); OR ( ISNULL(t_P.can_view) AND ( NOT v_has_filter_category OR FIND_IN_SET(t_P.id_category, a_ids_category) = 0 ) AND ( NOT v_has_filter_product OR FIND_IN_SET(t_P.id_product, a_ids_product) = 0 ) AND ( NOT v_has_filter_permutation OR FIND_IN_SET(t_P.id_permutation, a_ids_permutation) = 0 ) ) ; # CALL p_shop_user_eval_clear_temp(v_guid); # DROP TABLE IF EXISTS Shop_User_Eval_Temp; DELETE FROM Shop_User_Eval_Temp WHERE GUID = v_guid ; END IF; -- select * from tmp_Shop_Product; -- Returns SET v_now := NOW(); # Categories SELECT DISTINCT t_C.id_category, C.name, C.description, C.display_order FROM tmp_Shop_Product_Category t_C INNER JOIN Shop_Product_Category C ON t_C.id_category = C.id_category INNER JOIN tmp_Shop_Product t_P ON t_C.id_category = t_P.id_category ORDER BY C.display_order ; # Products SELECT t_P.id_product, t_P.id_permutation, t_P.name, t_P.description, P.has_variations, P.id_category, t_P.latency_manufacture, t_P.quantity_min, t_P.quantity_max, t_P.quantity_step, t_P.quantity_stock, t_P.id_stripe_product, t_P.is_subscription, RI.name AS name_interval_recurrence, RI.name_plural AS name_plural_interval_recurrence, t_P.count_interval_recurrence, t_P.display_order_category, t_P.display_order_product, t_P.display_order_permutation, IFNULL(t_P.can_view, 0), IFNULL(t_P.can_edit, 0), IFNULL(t_P.can_admin, 0) FROM tmp_Shop_Product t_P INNER JOIN Shop_Product P ON t_P.id_product = P.id_product LEFT JOIN Shop_Interval_Recurrence RI ON t_P.id_unit_measurement_interval_recurrence = RI.id_interval ORDER BY t_P.rank_permutation ; # Variations SELECT V.id_variation, t_P.id_product, t_P.id_permutation, t_P.id_category, VT.code AS code_variation_type, VT.name AS name_variation_type, V.code AS code_variation, V.name AS name_variation, RANK() OVER (ORDER BY t_P.rank_permutation, PPVL.display_order) AS display_order FROM Shop_Variation V INNER JOIN Shop_Variation_Type VT ON V.id_type = VT.id_type INNER JOIN Shop_Product_Permutation_Variation_Link PPVL ON V.id_variation = PPVL.id_variation INNER JOIN tmp_Shop_Product t_P ON PPVL.id_permutation <=> t_P.id_permutation WHERE V.active AND PPVL.active ; /* # Permutation variations output SELECT t_P.id_permutation, t_P.id_product, t_P.id_category, id_variation FROM Shop_Product_Permutation_Variation_Link PPVL INNER JOIN tmp_Shop_Product t_P ON t_P.id_permutation = PPVL.id_permutation ORDER BY t_P.display_order ; */ -- select * from Shop_Product_Currency_Region_Link; -- select * from shop_currency; /* select * from tmp_Currency; select * from tmp_delivery_region; select * from tmp_shop_product; */ # Product Price SELECT PCRL.id_link AS id_price, t_P.id_permutation, t_P.id_product, t_P.id_category, t_C.id_currency, C.code AS code_currency, C.name AS name_currency, C.symbol AS symbol_currency, t_DR.id_region, PCRL.price_local_VAT_incl, PCRL.price_local_VAT_excl, ROW_NUMBER() OVER(ORDER BY t_P.rank_permutation, C.display_order) AS display_order FROM Shop_Product_Currency_Region_Link PCRL INNER JOIN tmp_Shop_Product t_P ON PCRL.id_product <=> t_P.id_product AND PCRL.id_permutation <=> t_P.id_permutation -- INNER JOIN Shop_Product P ON PCRL.id_product = P.id_product INNER JOIN tmp_Currency t_C ON PCRL.id_currency = t_C.id_currency INNER JOIN Shop_Currency C ON t_C.id_currency = C.id_currency INNER JOIN tmp_Delivery_Region t_DR ON PCRL.id_region_purchase = t_DR.id_region WHERE ( a_get_inactive_product AND a_get_inactive_permutation AND a_get_inactive_currency AND a_get_inactive_delivery_region OR PCRL.active ) ORDER BY t_P.rank_permutation ; /* # Currency SELECT DISTINCT C.id_currency, C.code, C.name, C.factor_from_GBP, t_C.display_order FROM Shop_Currency C INNER JOIN tmp_Currency t_C ON C.id_currency = t_C.id_currency GROUP BY C.id_currency, t_C.display_order ORDER BY t_C.display_order ; */ # Images SELECT t_I.id_image, t_I.id_product, t_I.id_permutation, t_P.id_category, I.url, I.active, I.display_order FROM tmp_Shop_Image t_I INNER JOIN Shop_Image I ON t_I.id_image = I.id_image INNER JOIN tmp_Shop_Product t_P ON t_I.id_product = t_P.id_product AND t_I.id_permutation <=> t_P.id_permutation ORDER BY t_P.rank_permutation, I.display_order ; # Delivery options SELECT _DO.id_option, PDOL.id_product, PDOL.id_permutation, t_P.id_category, _DO.code, _DO.name, _DO.latency_delivery_min, _DO.latency_delivery_max, _DO.quantity_min, _DO.quantity_max, GROUP_CONCAT(DR.code SEPARATOR ',') AS codes_region, GROUP_CONCAT(DR.name SEPARATOR ',') AS names_region, PDOL.price_local, PDOL.display_order FROM Shop_Delivery_Option _DO INNER JOIN Shop_Product_Delivery_Option_Link PDOL ON _DO.id_option = PDOL.id_delivery_option AND ( a_get_inactive_delivery_region OR PDOL.active ) INNER JOIN tmp_Shop_Product t_P ON PDOL.id_product = t_P.id_product AND PDOL.id_permutation <=> t_P.id_permutation INNER JOIN tmp_Delivery_Region t_DR ON PDOL.id_region = t_DR.id_region INNER JOIN Shop_Region DR ON t_DR.id_region = DR.id_region WHERE ( a_get_inactive_delivery_region OR _DO.active ) GROUP BY t_P.id_category, t_P.id_product, PDOL.id_permutation, t_P.rank_permutation, DR.id_region, _DO.id_option, PDOL.id_link ORDER BY t_P.rank_permutation, PDOL.display_order ; # Discounts SELECT D.id_discount, P.id_category, D.id_product, D.id_permutation, DR.id_region, C.id_currency, D.code AS code_discount, D.name AS name_discount, D.multiplier, D.subtractor, D.apply_multiplier_first, D.quantity_min, D.quantity_max, D.date_start, D.date_end, GROUP_CONCAT(DR.code) AS codes_region, GROUP_CONCAT(DR.name) AS names_region, GROUP_CONCAT(C.code) AS codes_currency, GROUP_CONCAT(C.name) AS names_currency, ROW_NUMBER() OVER(ORDER BY D.display_order) AS display_order FROM tmp_Discount t_D INNER JOIN Shop_Discount D ON t_D.id_discount = D.id_discount INNER JOIN Shop_Product P ON D.id_product = P.id_product INNER JOIN tmp_Shop_Product t_P ON D.id_product = t_P.id_product -- AND D.id_permutation <=> t_P.id_permutation INNER JOIN Shop_Discount_Region_Currency_Link DRCL ON D.id_discount = DRCL.id_discount INNER JOIN tmp_Delivery_Region t_DR ON DRCL.id_region = t_DR.id_region INNER JOIN Shop_Region DR ON t_DR.id_region = DR.id_region INNER JOIN tmp_Currency t_C ON DRCL.id_currency = t_C.id_currency INNER JOIN Shop_Currency C ON t_C.id_currency = C.id_currency GROUP BY D.id_discount, DR.id_region, C.id_currency ORDER BY D.display_order, DR.display_order, C.display_order ; /* # Delivery Regions SELECT t_DR.id_region, t_P.id_category, t_P.id_product, t_P.id_permutation, DR.code, DR.name FROM tmp_Delivery_Region t_DR INNER JOIN Shop_Delivery_Region DR ON t_DR.id_region = DR.id_region INNER JOIN Shop_Product_Region_Currency_Link PDRL ON DR.id_region = PDRL.id_region AND ( a_get_inactive_delivery_region OR PDRL.active ) INNER JOIN tmp_Shop_Product t_P ON PDRL.id_product = t_P.id_product AND PDRL.id_permutation <=> t_P.id_permutation INNER JOIN tmp_Currency t_C ON PDRL.id_currency = t_C.id_currency ORDER BY t_DR.display_order ; */ # Errors SELECT t_ME.display_order, t_ME.guid, t_ME.id_type, t_ME.msg, MET.code, MET.name, MET.description FROM tmp_Msg_Error t_ME INNER JOIN Shop_Msg_Error_Type MET ON t_ME.id_type = MET.id_type WHERE guid = v_guid ; /* # Return arguments for test SELECT a_ids_category, a_get_inactive_category, a_ids_product, a_get_inactive_product, a_get_first_product_only, a_get_all_product, a_ids_image, a_get_inactive_image, a_get_first_image_only, a_get_all_image ; */ # select 'other outputs'; # select * from tmp_Shop_Product; -- Clean up DROP TABLE IF EXISTS tmp_Discount; DROP TABLE IF EXISTS tmp_Currency; DROP TABLE IF EXISTS tmp_Delivery_Region; DROP TABLE IF EXISTS tmp_Shop_Image; DROP TABLE IF EXISTS tmp_Shop_Variation; DROP TABLE IF EXISTS tmp_Shop_Product; DROP TABLE IF EXISTS tmp_Shop_Product_Category; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `p_shop_get_many_region` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; CREATE DEFINER=`root`@`localhost` PROCEDURE `p_shop_get_many_region`( IN a_get_inactive_region BIT ) BEGIN IF a_get_inactive_region IS NULL THEN SET a_get_inactive_region = 0; END IF; SELECT R.id_region, R.code, R.name, R.active, R.display_order FROM Shop_Region R WHERE a_get_inactive_region OR R.active ORDER BY R.display_order ; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `p_shop_get_many_stripe_price_new` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; CREATE DEFINER=`root`@`localhost` PROCEDURE `p_shop_get_many_stripe_price_new`( IN a_id_user INT ) BEGIN DECLARE v_has_filter_user BIT; DECLARE v_code_error_data VARCHAR(200); DECLARE v_code_error_permission VARCHAR(200); DECLARE v_guid BINARY(36); SET v_code_error_data := (SELECT code FROM Shop_Msg_Error_Type WHERE id_type = 1); SET v_code_error_permission := (SELECT code FROM Shop_Msg_Error_Type WHERE id_type = 2); SET v_guid = UUID(); IF a_id_user IS NULL THEN SET a_id_user = ''; ELSE SET a_id_user = TRIM(a_id_user); END IF; -- Temporary tables DROP TABLE IF EXISTS tmp_Shop_Product_Currency_Link; DROP TABLE IF EXISTS tmp_Shop_User; CREATE TABLE tmp_Shop_User( id_user INT NOT NULL PRIMARY KEY, CONSTRAINT FK_tmp_Shop_User_id_user FOREIGN KEY (id_user) REFERENCES Shop_User(id_user), active BIT NOT NULL ); CREATE TABLE tmp_Shop_Product_Currency_Link ( id_link INT NOT NULL PRIMARY KEY, CONSTRAINT FK_tmp_Shop_Product_Currency_Link_id_link FOREIGN KEY (id_link) REFERENCES Shop_Product_Currency_Link(id_link), id_product INT NOT NULL, CONSTRAINT FK_tmp_Shop_Product_Currency_Link_id_product FOREIGN KEY (id_product) REFERENCES Shop_Product(id_product), id_permutation INT NULL, CONSTRAINT FK_tmp_Shop_Product_Currency_Link_id_permutation FOREIGN KEY (id_permutation) REFERENCES Shop_Product_Permutation(id_permutation), id_currency INT NOT NULL, CONSTRAINT FK_tmp_Shop_Product_Currency_Link_id_currency FOREIGN KEY (id_currency) REFERENCES Shop_Currency(id_currency), active BIT NOT NULL ); CREATE TABLE IF NOT EXISTS tmp_Msg_Error ( # IF NOT EXISTS display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT, guid BINARY(36) NOT NULL, code VARCHAR(50) NOT NULL, # CONSTRAINT chk_tmp_Msg_Error_code CHECK (code IN (SELECT code FROM Shop_Msg_Error_Type)), /* id_type INT NOT NULL, CONSTRAINT FK_tmp_Msg_Error_id_type FOREIGN KEY (id_type) REFERENCES Shop_Msg_Error_Type(id_type), */ msg VARCHAR(4000) NOT NULL ); -- Parse filters SET v_has_filter_user = CASE WHEN a_id_user = '' THEN 0 ELSE 1 END; -- User permissions IF v_has_filter_user THEN INSERT INTO tmp_Shop_User ( id_user, active ) SELECT id_user, active FROM Shop_User WHERE id_user LIKE CONCAT('%', a_id_user, '%') AND active LIMIT 1 ; SET v_has_filter_user = EXISTS (SELECT id_user FROM tmp_Shop_User LIMIT 1); SET a_id_user := (SELECT id_user FROM tmp_Shop_User LIMIT 1); END IF; IF NOT v_has_filter_user THEN INSERT INTO tmp_Msg_Error ( guid, code, msg ) VALUES ( v_guid, v_code_error_data, 'Valid user ID not provided.' ) ; END IF; -- Get products IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN INSERT INTO tmp_Shop_Product_Currency_Link ( id_link, id_product, id_permutation, id_currency, active ) SELECT id_link, id_product, id_permutation, id_currency, active FROM Shop_Product_Currency_Link WHERE ISNULL(id_stripe_price) AND active ; END IF; -- Permissions IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN # SELECT * FROM tmp_Msg_Error LIMIT 1; CALL p_shop_user_eval ( v_guid, # a_guid a_id_user, # a_id_user 0, # a_get_inactive_users CONVERT((SELECT id_permission FROM Shop_Permission WHERE 'STORE_ADMIN' = code), CHAR), # a_ids_permission (SELECT id_access_level FROM Shop_Access_Level WHERE code = 'ADMIN' AND active), # a_ids_access_level (SELECT GROUP_CONCAT(DISTINCT id_product SEPARATOR ',') FROM tmp_Shop_Product_Currency_Link), # (SELECT DISTINCT id_product FROM tmp_Shop_Product_Currency_Link) calc_PCL) # a_ids_product (SELECT GROUP_CONCAT(DISTINCT id_permutation SEPARATOR ',') FROM tmp_Shop_Product_Currency_Link) # a_ids_permutation ); # SELECT * FROM tmp_Msg_Error LIMIT 1; IF EXISTS (SELECT can_admin FROM Shop_User_Eval_Temp WHERE guid = v_guid AND NOT can_admin LIMIT 1) THEN INSERT INTO tmp_Msg_Error ( guid, code, msg ) VALUES ( v_guid, v_code_error_permission, 'User ID does not have permission to get all new stripe prices.' ) ; END IF; DELETE FROM Shop_User_Eval_Temp WHERE guid = v_guid ; END IF; -- Returns IF EXISTS (SELECT * FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN DELETE FROM tmp_Shop_Product_Currency_Link; END IF; /* SELECT * FROM tmp_Shop_User ; */ SELECT t_PCL.id_product, t_PCL.id_permutation, P.price_GBP_full * C.factor_from_GBP AS unit_price, C.code AS code_currency, P.id_stripe_product, P.is_subscription, LOWER(RI.code) AS name_recurring_interval, P.count_interval_recurrence FROM tmp_Shop_Product_Currency_Link t_PCL INNER JOIN Shop_Product P ON t_PCL.id_product = P.id_product AND P.active INNER JOIN Shop_Interval_Recurrence RI ON P.id_unit_measurement_interval_recurrence = RI.id_interval AND RI.active INNER JOIN Shop_Currency C ON t_PCL.id_currency = C.id_currency AND C.active WHERE t_PCL.active ; # Errors SELECT * FROM tmp_Msg_Error WHERE guid = v_guid ; /* # Return arguments for test SELECT a_id_user ; */ -- Clean up DROP TABLE IF EXISTS tmp_Shop_User; DROP TABLE IF EXISTS tmp_Shop_Product_Currency_Link; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `p_shop_get_many_stripe_product_new` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; CREATE DEFINER=`root`@`localhost` PROCEDURE `p_shop_get_many_stripe_product_new`( IN a_id_user INT ) BEGIN DECLARE v_has_filter_user BIT; DECLARE v_code_error_data VARCHAR(200); DECLARE v_code_error_permission VARCHAR(200); DECLARE v_guid BINARY(36); SET v_code_error_data := (SELECT code FROM Shop_Msg_Error_Type WHERE id_type = 1); SET v_code_error_permission := (SELECT code FROM Shop_Msg_Error_Type WHERE id_type = 2); SET v_guid = UUID(); IF a_id_user IS NULL THEN SET a_id_user = ''; ELSE SET a_id_user = TRIM(a_id_user); END IF; -- Temporary tables DROP TABLE IF EXISTS tmp_Shop_Product; DROP TABLE IF EXISTS tmp_Shop_User; CREATE TABLE tmp_Shop_User( id_user INT NOT NULL PRIMARY KEY, CONSTRAINT FK_tmp_Shop_User_id_user FOREIGN KEY (id_user) REFERENCES Shop_User(id_user), active BIT NOT NULL ); CREATE TABLE tmp_Shop_Product ( id_product INT NOT NULL, CONSTRAINT FK_tmp_Shop_Product_id_product FOREIGN KEY (id_product) REFERENCES Shop_Product(id_product), id_permutation INT NULL, CONSTRAINT FK_tmp_Shop_Product_id_permutation FOREIGN KEY (id_permutation) REFERENCES Shop_Product_Permutation(id_permutation), active BIT NOT NULL, display_order_product INT NOT NULL, display_order_permutation INT NOT NULL, name VARCHAR(200) NOT NULL, description VARCHAR(4000) NOT NULL ); CREATE TABLE IF NOT EXISTS tmp_Msg_Error ( # IF NOT EXISTS display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT, guid BINARY(36) NOT NULL, code VARCHAR(50) NOT NULL, # CONSTRAINT chk_tmp_Msg_Error_code CHECK (code IN (SELECT code FROM Shop_Msg_Error_Type)), /* id_type INT NOT NULL, CONSTRAINT FK_tmp_Msg_Error_id_type FOREIGN KEY (id_type) REFERENCES Shop_Msg_Error_Type(id_type), */ msg VARCHAR(4000) NOT NULL ); -- Parse filters SET v_has_filter_user = CASE WHEN a_id_user = '' THEN 0 ELSE 1 END; -- User IF v_has_filter_user THEN INSERT INTO tmp_Shop_User ( id_user, active ) SELECT id_user, active FROM Shop_User WHERE id_user LIKE CONCAT('%', a_id_user, '%') AND active LIMIT 1 ; SET v_has_filter_user = EXISTS (SELECT id_user FROM tmp_Shop_User LIMIT 1); SET a_id_user := (SELECT id_user FROM tmp_Shop_User LIMIT 1); END IF; IF NOT v_has_filter_user THEN INSERT INTO tmp_Msg_Error ( guid, code, msg ) VALUES ( v_guid, v_code_error_data, 'User ID not valid.' ) ; END IF; -- Get products IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN INSERT INTO tmp_Shop_Product ( id_product, id_permutation, active, display_order_product, display_order_permutation, name, description ) SELECT id_product, id_permutation, active, display_order_product, display_order_permutation, name, description FROM ( SELECT id_product, NULL AS id_permutation, active, display_order AS display_order_product, NULL AS display_order_permutation, name, description, id_stripe_product FROM Shop_Product P UNION SELECT t_PPPV.id_product, id_permutation, t_PPPV.active, display_order_product, display_order_permutation, CONCAT(P.name, ': ', names_variation) AS name, CONCAT(P.description, ' With variations: ', type_name_pairs_variation) AS description, t_PPPV.id_stripe_product FROM ( SELECT P.id_product, PP.id_permutation, PP.active, P.display_order AS display_order_product, PP.display_order AS display_order_permutation, GROUP_CONCAT(V.name SEPARATOR ' ') AS names_variation, GROUP_CONCAT(CONCAT(VT.name, ': ', V.name) SEPARATOR ', ') AS type_name_pairs_variation, PP.id_stripe_product FROM Shop_Product_Permutation PP INNER JOIN Shop_Product P ON PP.id_product = P.id_product AND P.active INNER JOIN Shop_Product_Permutation_Variation_Link PPVL ON PP.id_permutation = PPVL.id_permutation AND PPVL.active INNER JOIN Shop_Variation V ON PPVL.id_variation = V.id_variation AND V.active INNER JOIN Shop_Variation_Type VT ON V.id_type = VT.id_type AND VT.active GROUP BY id_product, id_permutation -- , VT.id_type, V.id_variation ) t_PPPV INNER JOIN Shop_Product P ON t_PPPV.id_product = P.id_product ) t_PPP WHERE ISNULL(id_stripe_product) AND active ; END IF; -- Permissions IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN CALL p_shop_user_eval ( v_guid, # a_guid a_id_user, # a_id_user 0, # a_get_inactive_users CONVERT((SELECT id_permission FROM Shop_Permission WHERE 'STORE_ADMIN' = code), CHAR), # a_ids_permission (SELECT id_access_level FROM Shop_Access_Level WHERE code = 'ADMIN' AND active), # a_ids_access_level (SELECT GROUP_CONCAT(id_product SEPARATOR ',') From tmp_Shop_Product), # a_ids_product (SELECT GROUP_CONCAT(id_permutation SEPARATOR ',') From tmp_Shop_Product) # a_ids_permutation -- WHERE NOT ISNULL(id_permutation) ); IF EXISTS (SELECT can_admin FROM Shop_User_Eval_Temp WHERE guid = v_guid AND NOT can_admin) THEN INSERT INTO tmp_Msg_Error ( guid, code, msg ) VALUES ( v_guid, v_code_error_permission, 'User ID does not have permission to get all new stripe products.' ) ; END IF; DELETE FROM Shop_User_Eval_Temp WHERE guid = v_guid ; END IF; -- Returns /* SELECT * FROM tmp_Shop_User ; */ IF EXISTS (SELECT * FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN DELETE FROM tmp_Shop_Product; END IF; SELECT id_product, id_permutation, name, description FROM tmp_Shop_Product ORDER BY display_order_product, display_order_permutation ; SELECT PP.id_permutation, V.id_variation, V.name AS name_variation, VT.id_type AS id_type_variation, VT.name as name_variation_type FROM tmp_Shop_Product t_P INNER JOIN Shop_Product_Permutation PP ON t_P.id_permutation = PP.id_permutation INNER JOIN Shop_Product_Permutation_Variation_Link PPVL ON PP.id_permutation = PPVL.id_permutation AND PPVL.active INNER JOIN Shop_Variation V ON PPVL.id_variation = V.id_variation AND V.active INNER JOIN Shop_Variation_Type VT ON V.id_type = VT.id_type AND VT.active ; # Errors SELECT * FROM tmp_Msg_Error WHERE guid = v_guid ; /* # Return arguments for test SELECT a_id_user ; */ -- Clean up DROP TABLE IF EXISTS tmp_Shop_Product; DROP TABLE IF EXISTS tmp_Shop_User; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `p_shop_get_many_user_order` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; CREATE DEFINER=`root`@`localhost` PROCEDURE `p_shop_get_many_user_order`( IN a_id_user INT, IN a_ids_order VARCHAR(4000), IN a_n_order_max INT, IN a_id_checkout_session VARCHAR(200) ) BEGIN -- Argument redeclaration -- Variable declaration DECLARE v_has_filter_user BIT; DECLARE v_has_filter_order BIT; DECLARE v_has_filter_session BIT; DECLARE v_code_error_data VARCHAR(200); DECLARE v_code_error_permission VARCHAR(200); DECLARE v_guid BINARY(36); SET v_code_error_data := (SELECT code FROM Shop_Msg_Error_Type WHERE id_type = 1); SET v_code_error_permission := (SELECT code FROM Shop_Msg_Error_Type WHERE id_type = 2); SET v_guid = UUID(); -- Argument validation + default values IF a_id_user IS NULL THEN SET a_id_user = ''; ELSE SET a_id_user = TRIM(a_id_user); END IF; IF a_ids_order IS NULL THEN SET a_ids_order = ''; ELSE SET a_ids_order = TRIM(a_ids_order); END IF; IF a_n_order_max IS NULL THEN SET a_n_order_max = 1; END IF; IF a_id_checkout_session IS NULL THEN SET a_id_checkout_session = ''; ELSE SET a_id_checkout_session = TRIM(a_id_checkout_session); END IF; -- Temporary tables DROP TABLE IF EXISTS tmp_Shop_User; DROP TABLE IF EXISTS tmp_Shop_Order; CREATE TABLE tmp_Shop_User( id_user INT NOT NULL PRIMARY KEY, CONSTRAINT FK_tmp_Shop_User_id_user FOREIGN KEY (id_user) REFERENCES Shop_User(id_user), active BIT NOT NULL ); CREATE TABLE tmp_Shop_Order ( id_order INT NOT NULL PRIMARY KEY, CONSTRAINT FK_tmp_Shop_Order_id_order FOREIGN KEY (id_order) REFERENCES Shop_User_Order(id_order), active BIT NOT NULL ); CREATE TABLE IF NOT EXISTS tmp_Msg_Error ( display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT, guid BINARY(36) NOT NULL, # id_type INT NOT NULL, # CONSTRAINT FK_tmp_Msg_Error_id_type FOREIGN KEY (id_type) # REFERENCES Shop_Msg_Error_Type (id_type), code VARCHAR(50), msg VARCHAR(4000) NOT NULL ); -- Parse filters SET v_has_filter_user = CASE WHEN a_id_user = '' THEN 0 ELSE 1 END; SET a_ids_order = REPLACE(a_ids_order, '|', ','); SET v_has_filter_order = CASE WHEN a_ids_order = '' THEN 0 ELSE 1 END; SET v_has_filter_session = CASE WHEN a_id_checkout_session = '' THEN 0 ELSE 1 END; -- User IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN IF v_has_filter_user THEN INSERT INTO tmp_Shop_User ( id_user, active ) SELECT id_user, active FROM Shop_User WHERE id_user LIKE CONCAT('%', a_id_user, '%') AND active LIMIT 1 ; SET v_has_filter_user = EXISTS (SELECT id_user FROM tmp_Shop_User LIMIT 1); SET a_id_user := (SELECT id_user FROM tmp_Shop_User LIMIT 1); END IF; END IF; IF NOT v_has_filter_user THEN INSERT INTO tmp_Msg_Error ( guid, code, msg ) VALUES ( v_guid, v_code_error_data, 'User ID not valid.' ) ; END IF; -- Permissions IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN CALL p_shop_user_eval ( v_guid, # a_guid a_id_user, # a_id_user 0, # a_get_inactive_users CONVERT((SELECT id_permission FROM Shop_Permission WHERE 'STORE_USER' = code), CHAR), # a_ids_permission (SELECT id_access_level FROM Shop_Access_Level WHERE code = 'VIEW' AND active), # a_ids_access_level '', # a_ids_product '' # a_ids_permutation ); IF NOT (SELECT can_edit FROM Shop_User_Eval_Temp WHERE guid = v_guid) THEN INSERT INTO tmp_Msg_Error ( guid, code, msg ) VALUES ( v_guid, v_code_error_permission, 'User ID does not have permission to access orders.' ) ; END IF; DELETE FROM Shop_User_Eval_Temp WHERE guid = v_guid ; END IF; -- Invalid Orders IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN # Invalid Order IDs IF EXISTS (SELECT * FROM Shop_User_Order WHERE NOT (id_user = a_id_user) AND v_has_filter_order AND FIND_IN_SET(id_order, a_ids_order) > 0) THEN # id_order LIKE CONCAT('%', a_ids_order, '%') LIMIT 1) THEN INSERT INTO tmp_Msg_Error ( guid, code, msg ) VALUES ( v_guid, v_code_error_data, CONCAT('You do not have access to the following order IDs: ', (SELECT GROUP_CONCAT(id_order SEPARATOR ', ') FROM Shop_User_Order WHERE NOT (id_user = a_id_user) AND FIND_IN_SET(id_order, a_ids_order) > 0)) # id_order LIKE CONCAT('%', a_ids_order, '%'))) # AND v_has_filter_order # filtered by parent condition ) ; END IF; # Invalid Checkout Session IDs IF EXISTS (SELECT * FROM Shop_User_Order WHERE NOT (id_user = a_id_user) AND v_has_filter_session AND id_checkout_session = a_id_checkout_session) THEN INSERT INTO tmp_Msg_Error ( guid, code, msg ) VALUES ( v_guid, v_code_error_data, CONCAT('You do not have access to the following checkout session IDs: ', (SELECT GROUP_CONCAT(id_order SEPARATOR ', ') FROM Shop_User_Order WHERE NOT (id_user = a_id_user) AND id_checkout_session = a_id_checkout_session)) # AND v_has_filter_order # filtered by parent condition ) ; END IF; END IF; -- Valid Orders IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN INSERT INTO tmp_Shop_Order ( id_order, active ) SELECT UO.id_order, UO.active FROM Shop_User_Order UO INNER JOIN tmp_Shop_User t_U ON UO.id_user = t_U.id_user AND t_U.active WHERE ((NOT v_has_filter_order OR FIND_IN_SET(UO.id_order, a_ids_order) > 0) # UO.id_order LIKE CONCAT('%', a_ids_order, '%')) OR (NOT v_has_filter_session OR UO.id_checkout_session = a_id_checkout_session)) AND UO.active ; END IF; -- Returns /* SELECT * FROM tmp_Shop_User ; */ SELECT t_O.id_order, UOPL.id_product, UOPL.id_permutation, UOPL.quantity FROM tmp_Shop_Order t_O INNER JOIN Shop_User_Order UO ON t_O.id_order = UO.id_order INNER JOIN Shop_User_Order_Product_Link UOPL ON UO.id_order = UOPL.id_order WHERE t_O.active ; # Errors SELECT * FROM tmp_Msg_Error WHERE guid = v_guid ; /* # Return arguments for test SELECT a_id_user, a_ids_order, a_n_order_max, a_id_checkout_session ; */ -- Clean up DROP TABLE IF EXISTS tmp_Shop_User; DROP TABLE IF EXISTS tmp_Shop_Order; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `p_shop_user_eval` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ; CREATE DEFINER=`root`@`localhost` PROCEDURE `p_shop_user_eval`( IN a_guid BINARY(36), IN a_id_user INT, IN a_get_inactive_users BIT, IN a_ids_permission VARCHAR(500), IN a_ids_access_level VARCHAR(100), IN a_ids_permutation VARCHAR(4000) ) BEGIN -- Variable declaration DECLARE v_has_filter_permission BIT; DECLARE v_has_filter_user BIT; DECLARE v_has_filter_access_level BIT; DECLARE v_has_filter_permutation BIT; DECLARE v_id_permission_product INT; DECLARE v_id_permission INT; -- DECLARE v_ids_product VARCHAR(500); DECLARE v_id_access_level_view INT; # DECLARE v_id_access_level_product_required INT; DECLARE v_priority_access_level_view INT; DECLARE v_priority_access_level_edit INT; DECLARE v_priority_access_level_admin INT; DECLARE v_id_access_level INT; DECLARE v_priority_access_level INT; DECLARE v_now DATETIME; DECLARE v_ids_row_delete VARCHAR(500); DECLARE v_code_error_data VARCHAR(200); DECLARE v_id_error_data INT; DECLARE v_code_error_permission VARCHAR(200); SET v_id_error_data = 1; SET v_code_error_data := (SELECT code FROM Shop_Msg_Error_Type WHERE id_type = v_id_error_data); SET v_code_error_permission := (SELECT code FROM Shop_Msg_Error_Type WHERE id_type = 2); -- Clear previous proc results # DROP TABLE IF EXISTS tmp_User_Role_Link; # DROP TEMPORARY TABLE IF EXISTS tmp_User_Role_Link; DROP TABLE IF EXISTS tmp_Shop_Product_p_Shop_User_Eval; # DROP TABLE IF EXISTS Shop_User_Eval_Temp; -- Parse arguments + get default values /* IF a_guid IS NULL THEN SET a_guid = UUID(); END IF; */ IF a_id_user IS NULL THEN SET a_id_user = ''; ELSE SET a_id_user = TRIM(a_id_user); END IF; IF a_get_inactive_users IS NULL THEN SET a_get_inactive_users = 0; END IF; /* IF a_get_user_permissions IS NULL THEN SET a_get_user_permissions = 0; END IF; */ IF a_ids_permission IS NULL THEN SET a_ids_permission = ''; ELSE SET a_ids_permission = TRIM(a_ids_permission); END IF; IF a_ids_access_level IS NULL THEN SET a_ids_access_level = ''; ELSE SET a_ids_access_level = TRIM(a_ids_access_level); END IF; IF a_ids_permutation IS NULL THEN SET a_ids_permutation = ''; ELSE SET a_ids_permutation = TRIM(a_ids_permutation); END IF; -- Permanent Table CREATE TABLE IF NOT EXISTS Shop_User_Eval_Temp ( id_row INT PRIMARY KEY AUTO_INCREMENT NOT NULL, guid BINARY(36) NOT NULL, id_user INT, id_permission_required INT NOT NULL, CONSTRAINT FK_Shop_User_Eval_Temp_id_permission_required FOREIGN KEY (id_permission_required) REFERENCES Shop_Permission (id_permission), /* id_access_level_required INT NOT NULL, CONSTRAINT FK_Shop_User_Eval_Temp_id_access_level_required FOREIGN KEY (id_access_level_required) REFERENCES Shop_Access_Level (id_access_level), */ priority_access_level_required INT NOT NULL, /* CONSTRAINT FK_Shop_User_Eval_Temp_priority_access_level_required FOREIGN KEY (priority_access_level_required) REFERENCES Shop_Access_Level (priority), */ id_product INT NULL, CONSTRAINT FK_Shop_User_Eval_Temp_id_product FOREIGN KEY (id_product) REFERENCES partsltd_prod.Shop_Product (id_product), id_permutation INT NULL, CONSTRAINT FK_Shop_User_Eval_Temp_id_permutation FOREIGN KEY (id_permutation) REFERENCES partsltd_prod.Shop_Product_Permutation (id_permutation), is_super_user BIT NULL, priority_access_level_user INT NULL, /* CONSTRAINT FK_Shop_User_Eval_Temp_priority_access_level_minimum FOREIGN KEY (priority_access_level_minimum) REFERENCES Shop_Access_Level (priority) */ can_view BIT, can_edit BIT, can_admin BIT -- DEFAULT 0 ); CREATE TABLE IF NOT EXISTS tmp_Shop_Product_p_Shop_User_Eval ( id_row INT PRIMARY KEY AUTO_INCREMENT NOT NULL, id_product INT NOT NULL, CONSTRAINT FK_tmp_Shop_Product_p_Shop_User_Eval_id_product FOREIGN KEY (id_product) REFERENCES partsltd_prod.Shop_Product (id_product), id_permutation INT NOT NULL, CONSTRAINT FK_tmp_Shop_Product_p_Shop_User_Eval_id_permutation FOREIGN KEY (id_permutation) REFERENCES partsltd_prod.Shop_Product_Permutation (id_permutation), id_access_level_required INT NOT NULL, CONSTRAINT FK_tmp_Shop_Product_p_Shop_User_Eval_id_access_level_required FOREIGN KEY (id_access_level_required) REFERENCES Shop_Access_Level (id_access_level), guid BINARY(36) NOT NULL, rank_permutation INT NOT NULL ); CREATE TABLE IF NOT EXISTS tmp_Msg_Error ( display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT, guid BINARY(36) NOT NULL, id_type INT NOT NULL, CONSTRAINT FK_tmp_Msg_Error_id_type FOREIGN KEY (id_type) REFERENCES Shop_Msg_Error_Type (id_type), code VARCHAR(50), msg VARCHAR(4000) NOT NULL ); # select * from Shop_Msg_Error_Type; -- Parse filters IF a_guid IS NULL OR EXISTS (SELECT * FROM Shop_User_Eval_Temp WHERE a_guid = guid) THEN INSERT INTO tmp_Msg_Error ( guid, code, msg ) VALUES ( a_guid, v_code_error_data, 'Invalid guid argument.' ) ; END IF; SET v_has_filter_user = CASE WHEN a_id_user = '' THEN 0 ELSE 1 END; SET a_ids_permission = REPLACE(a_ids_permission, '|', ','); SET v_has_filter_permission = CASE WHEN a_ids_permission = '' THEN 0 ELSE 1 END; SET a_ids_access_level = REPLACE(a_ids_access_level, '|', ','); SET v_has_filter_access_level = CASE WHEN a_ids_access_level = '' THEN 0 ELSE 1 END; SET a_ids_permutation = REPLACE(a_ids_permutation, '|', ','); SET v_has_filter_permutation = CASE WHEN a_ids_permutation = '' THEN 0 ELSE 1 END; SET v_id_access_level_view = (SELECT id_access_level FROM Shop_Access_Level WHERE code = 'VIEW' LIMIT 1); SET v_priority_access_level_view = (SELECT priority FROM Shop_Access_Level WHERE id_access_level = v_id_access_level_view); SET v_priority_access_level_edit = (SELECT priority FROM Shop_Access_Level WHERE code = 'EDIT' LIMIT 1); SET v_priority_access_level_admin = (SELECT priority FROM Shop_Access_Level WHERE code = 'ADMIN' LIMIT 1); /* select v_priority_access_level_view, v_priority_access_level_edit, v_priority_access_level_admin ; */ IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE GUID = a_guid) THEN IF v_has_filter_access_level THEN CALL p_split(a_ids_access_level, ','); SET v_id_access_level := ( SELECT AL.id_access_level FROM Split_Temp ST INNER JOIN Shop_Access_Level AL ON CONVERT(ST.substring, DECIMAL(10,0)) = AL.id_access_level AND AL.active ORDER BY AL.priority ASC LIMIT 1 ); DROP TABLE Split_Temp; IF 0 = v_id_access_level OR v_id_access_level <=> NULL THEN # SET v_has_filter_access_level = 0; INSERT INTO tmp_Msg_Error ( guid, code, msg ) VALUES ( a_guid, v_code_error_data, 'Access level ID not found.' ) ; END IF; /* END IF; IF NOT v_has_filter_access_level THEN */ ELSE SET v_id_access_level = v_id_access_level_view; END IF; END IF; IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE GUID = a_guid) THEN IF v_has_filter_permutation THEN INSERT INTO tmp_Shop_Product_p_Shop_User_Eval ( id_product, id_permutation, id_access_level_required, guid, rank_permutation ) SELECT PP.id_product, PP.id_permutation, PP.id_access_level_required, a_guid, RANK() OVER (ORDER BY PP.id_product, PP.id_permutation, AL.priority) AS rank_permutation FROM Shop_Product_Permutation PP INNER JOIN Shop_Access_Level AL ON PP.id_access_level_required = AL.id_access_level AND AL.active WHERE FIND_IN_SET(PP.id_permutation, a_ids_permutation) > 0 # AND P.active # not worried as we want users to be able to see their order history ; /* DELETE FROM tmp_Shop_Product_p_Shop_User_Eval WHERE rank_permutation > 1 ; */ SET v_has_filter_permutation = EXISTS (SELECT * FROM tmp_Shop_Product_p_Shop_User_Eval WHERE a_guid = guid); END IF; IF v_has_filter_permission THEN # Invalid permission IDs IF EXISTS (SELECT id_permission FROM Shop_Permission WHERE FIND_IN_SET(id_permission, a_ids_permission) > 0 AND NOT active) THEN INSERT INTO tmp_Msg_Error ( guid, code, msg ) VALUES ( a_guid, v_code_error_data, CONCAT('The following permissions are no longer active: ', (SELECT GROUP_CONCAT(name SEPARATOR ', ') FROM Shop_Permission WHERE FIND_IN_SET(id_permission, a_ids_permission) > 0 AND NOT active)) ) ; END IF; END IF; END IF; IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE GUID = a_guid) THEN IF v_has_filter_user THEN SET a_id_user := (SELECT id_user FROM Shop_User WHERE id_user LIKE a_id_user AND active); SET v_has_filter_user = NOT (a_id_user <=> NULL); IF NOT v_has_filter_user THEN INSERT INTO tmp_Msg_Error ( guid, code, msg ) VALUES ( a_guid, v_code_error_data, 'User ID not found.' ) ; END IF; END IF; END IF; -- Get users IF NOT EXISTS (SELECT * FROM tmp_Msg_Error WHERE GUID = a_guid) THEN INSERT INTO Shop_User_Eval_Temp ( guid, id_user, id_permission_required, priority_access_level_required /* priority_access_level_user, is_super_user, can_view, can_edit, can_admin */ ) SELECT a_guid, a_id_user, P.id_permission, AL.priority FROM partsltd_prod.Shop_Permission P INNER JOIN Shop_Access_Level AL ON P.id_access_level_required = AL.id_access_level AND AL.active WHERE FIND_IN_SET(P.id_permission, a_ids_permission) > 0 ; IF v_has_filter_permutation THEN SET v_ids_row_delete := (SELECT GROUP_CONCAT(id_row SEPARATOR ',') FROM Shop_User_Eval_Temp WHERE a_guid = guid); INSERT INTO Shop_User_Eval_Temp ( guid, id_user, id_permission_required, id_product, id_permutation, priority_access_level_required ) SELECT UE_T.guid, UE_T.id_user, UE_T.id_permission_required, t_P.id_product, t_P.id_permutation, CASE WHEN UE_T.priority_access_level_required < AL.priority THEN UE_T.priority_access_level_required ELSE AL.priority END -- UE_T.priority_access_level_required FROM tmp_Shop_Product_p_Shop_User_Eval t_P INNER JOIN Shop_Access_Level AL ON t_P.id_access_leveL_required = AL.id_access_level AND AL.active CROSS JOIN Shop_User_Eval_Temp UE_T ON a_id_user = UE_T.id_user WHERE a_guid = t_P.guid ; DELETE FROM Shop_User_Eval_Temp WHERE FIND_IN_SET(id_row, v_ids_row_delete) > 0 ; END IF; /* INSERT INTO Shop_User_Eval_Temp ( guid, id_user, id_permission_required, # id_access_level_required, priority_access_level_required, priority_access_level_user, is_super_user /* can_view, can_edit, can_admin * ) SELECT a_guid, U.id_user, P.id_permission, AL.priority, /* v_id_permission, v_id_access_level, * MIN(AL.priority), U.is_super_user /* CASE WHEN U.is_super_user THEN 1 ELSE CASE WHEN priority_access_level_minimum <= v_priority_access_level_view THEN 1 ELSE 0 END END, CASE WHEN U.is_super_user THEN 1 ELSE CASE WHEN priority_access_level_minimum <= v_priority_access_level_edit THEN 1 ELSE 0 END END, CASE WHEN U.is_super_user THEN 1 ELSE CASE WHEN priority_access_level_minimum <= v_priority_access_level_admin THEN 1 ELSE 0 END END * FROM partsltd_prod.Shop_User U INNER JOIN Shop_User_Role_Link URL ON U.id_user = URL.id_user AND URL.active INNER JOIN Shop_Role_Permission_Link RPL ON URL.id_role = RPL.id_role AND RPL.active INNER JOIN Shop_Permission P ON RPL.id_permission = P.id_permission AND P.active INNER JOIN Shop_Access_Level AL ON RPL.id_access_level = AL.id_access_level AND AL.active WHERE U.id_user = a_id_user AND (a_get_inactive_users OR U.active) AND FIND_IN_SET(P.id_permission, a_ids_permission) > 0 # AND v_id_permission = P.id_permission # AND v_id_access_level = AL.id_access_leveld GROUP BY U.id_user, P.id_permission # , is_super_user ; */ IF v_has_filter_user THEN UPDATE Shop_User_Eval_Temp UE_T INNER JOIN Shop_User U ON UE_T.id_user = U.id_user AND U.active INNER JOIN Shop_User_Role_Link URL ON U.id_user = URL.id_user AND URL.active INNER JOIN Shop_Role_Permission_Link RPL ON URL.id_role = RPL.id_role AND RPL.active INNER JOIN Shop_Access_Level AL ON RPL.id_access_level = AL.id_access_level AND AL.active SET UE_T.priority_access_level_user = AL.priority, UE_T.is_super_user = U.is_super_user, UE_T.can_view = CASE WHEN U.is_super_user THEN 1 ELSE CASE WHEN ISNULL(AL.priority) THEN 1 ELSE CASE WHEN AL.priority <= v_priority_access_level_view AND AL.priority <= UE_T.priority_access_level_required THEN 1 ELSE 0 END END END, UE_T.can_edit = CASE WHEN U.is_super_user THEN 1 ELSE CASE WHEN NOT ISNULL(AL.priority) AND AL.priority <= v_priority_access_level_edit AND AL.priority <= UE_T.priority_access_level_required THEN 1 ELSE 0 END END, UE_T.can_admin = CASE WHEN U.is_super_user THEN 1 ELSE CASE WHEN NOT ISNULL(AL.priority) AND AL.priority <= v_priority_access_level_admin AND AL.priority <= UE_T.priority_access_level_required THEN 1 ELSE 0 END END WHERE UE_T.guid = a_guid AND UE_T.id_user = a_id_user AND RPL.id_permission = UE_T.id_permission_required # GROUP BY UE_T.id_user ; ELSE UPDATE Shop_User_Eval_Temp UE_T SET UE_T.priority_access_level_user = v_priority_access_level_view, UE_T.is_super_user = 0, UE_T.can_view = (v_priority_access_level_view <= UE_T.priority_access_level_required), UE_T.can_edit = 0, UE_T.can_admin = 0 WHERE UE_T.guid = a_guid AND UE_T.id_user = a_id_user # GROUP BY UE_T.id_user ; END IF; END IF; -- Clean up DROP TABLE IF EXISTS tmp_Shop_Product_p_Shop_User_Eval; # DROP TEMPORARY TABLE IF EXISTS tmp_User_Role_Link; # DROP TABLE IF EXISTS tmp_Msg_Error; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!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 */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2024-04-28 19:04:05