diff --git a/db/dump/fixtures.after.sql b/db/dump/fixtures.after.sql index 4c5f89d97..a7d059ed2 100644 --- a/db/dump/fixtures.after.sql +++ b/db/dump/fixtures.after.sql @@ -292,7 +292,411 @@ INSERT INTO `hedera`.`tpvConfig` (currency, terminal, transactionType, maxAmount */ INSERT INTO hedera.tpvMerchantEnable (merchantFk, companyFk) VALUES (1, 442); +-- XXX: floranet +INSERT INTO vn.intrastat(id, description, taxClassFk, taxCodeFk) +VALUES(6031970, 'Flores y capullos frescos (Otras: ramos, coronas)', 1, 63); + +-- Generación de items +SELECT id + INTO @FNR + FROM vn.itemType + WHERE code = 'FNR'; + +SELECT id + INTO @FNP + FROM vn.itemType + WHERE code = 'FNP'; + +DELETE + FROM vn.item + WHERE typeFk IN (@FNR,@FNP); + +SELECT MAX(id) + 1 + INTO @item + FROM vn.item; + +INSERT INTO vn.item + ( + id, + name, + longName, + `size`, + originFk, + intrastatFk, + typeFk, + inkFk, + image, + description + ) + VALUES + ( + @item := @item + 1, + @r := 'Ramo Terranova', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin ORDER BY RAND() LIMIT 1), + 6031970, + @FNR, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/1CwtEK5_GReAzconaJsPTCXxV7zajbTos/view?usp=drive_link', + CONCAT('Hemos elegido una selección de flores muy especiales para realizar ', + 'esta composición: brásicas, flor de cera, astrantia, espigas, lisiantum, ', + 'paniculata eucaliptus.') + ), + ( + @item := @item + 1, + @r := 'Ramo Tasmania', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNR, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/1_149uYZ-sehw3vWH68Quttk8QJe5T_bG/view?usp=drive_link', + CONCAT('La elegancia de este ramo es por la elección de todas las flores que lo componen: ', + 'eringium, verdes variados, rosas proteas, margaritas, astrantia, esta selección de ', + 'flores será un acierto seguro para hacer un regalo muy especial.') + ), + ( + @item := @item + 1, + @r := 'Ramo Pasion', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNR, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/1-dH1UilV-nOH9XNK23uooZoezlwMT-Jq/view?usp=drive_link', + CONCAT('La unión de las rosas rojas con el lilium rosa hace de este ramo uno de ', + 'los más especiales , el juego de las dos tonalidades con los diferentes verdes ', + 'que cuidadosamente selecionamos para darle el toque final a la composicion hace ', + 'que este ramo sea al mismo tiempo elegante y atrevido, para amantes de lo inesperado ', + 'que quieren decorar alguna estancia de su hogar o hacer un ragalo muy especial') + ), + ( + @item := @item + 1, + @r := 'Ramo Florencia', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNR, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/1PWKo5N8kg8H3xQtELdeQTQIc1HMZCc1P/view?usp=drive_link', + CONCAT('Este ramo evoca los colores del atardecer en Florencia, las rosas ramificadas ', + 'de pitimini con diferentes tonalidades y la paniculata nos transpotan al ambiente ', + 'sofisticado del norte de Italia y la frescura de los verdes variados nos recuerda ', + 'a la campiña italiana .Este ramo es ideal para regalar pensando en alguien muy especial.') + ), + ( + @item := @item + 1, + @r := 'Ramo Atardecer', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNR, + (SELECT id FROM vn.ink WHERE name = 'Yellow'), + 'https://drive.google.com/file/d/1eM4gtftQuXN5xUjAHIRUYNPZNmuHVRA_/view?usp=drive_link', + CONCAT('Las rosas amarillas simbolizan la alegría de vivir, la calidez ,el ', + 'optimismo y la energía, por eso son el regalo perfecto para una ocasión muy ', + 'especial o para celebrar la alegría de una amistad o de un encuentro, a estas ', + 'preciosas rosas les añadimos un toque desenfadado a través de los verdes ', + 'variados que unidos a la belleza de la rosa que seguro serán una apuesta segura.') + ), + ( + @item := @item + 1, + @r := 'Ramo Arcoíris', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNR, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/1Hxk5yqo7891gfK1VKIYfWxO5a_0K2Qej/view?usp=drive_link', + CONCAT('Llega la primavera a tu casa con el ramo Arco Iris , conseguirás iluminar ', + 'cualquier estancia gracias a la combinacón de las gerberas holandesas de gran ', + 'tamaño con colores muy vivos que a su vez contrastan a la perfección con las ', + 'margaritas coconut y el estatice variado, todo ello acompañado de verdes entre ', + 'los que destaca el ruscus danae , para dulcificar la explosión de color , ', + 'añadimos paniculata , una flor sencilla pero que aporta gran armonía al ramo') + ), + ( + @item := @item + 1, + @r := 'Ramo Provenza', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNR, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/1TA9SBwjqnrEqG1bzwDL37sxtX9CNyLJk/view?usp=drive_link', + CONCAT('La delicada composición de este ramo escogida de forma minuciosa hecho ', + 'con liliums rosa, lisiantum blanco y rosas de color rosa todo ello unificado ', + 'con una selección de maravillosos verdes variados, hacen que esta combinación ', + 'sea muy especial para decorar cualquier estancia de tu casa a la que aportará una luz especial.') + ), + ( + @item := @item + 1, + @r := 'Ramo Alegria', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNR, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/1sOf2isj84P9OxR3E3x6n2PjPnWVamLCE/view?usp=drive_link', + CONCAT('Hemos elegido el nombre de Alegría para este ramo ya que sus intensos ', + 'y variados colores nos producen esa sensación, la combinación de rosas blancas ', + ', alstroemeria rosa unida a la paniculata tambien de color rosa y a la sutileza ', + 'de la combinación de verdes variados, hace de este ramo una opción perfecta de ', + 'regalo que a todo el mundo le gusta por su armoniosa combinacion de colores.') + ), + ( + @item := @item + 1, + @r := 'Planta Orquídeas ', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNP, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/14BIkDDonFaIiTyJer1CWju1YzZNzt3XQ/view?usp=drive_link', + CONCAT('Elegimos personalmente en nuestra tienda dos plantas de orquídeas ', + 'con las mejores características combinadas con diferentes elementos de ', + 'decoración consiguiendo una composición ideal para cualquier ambiente.El ', + 'recipiente de cerámica se puede utilizar para múltiples funciones y sacar ', + 'de el las dos plantas de orquídeas para colocarlas en dos puntos diferentes ', + 'de nuestro hogar, ya que se respeta siempre las macetas originales de cada orquídea') + ), + ( + @item := @item + 1, + @r := 'Planta Kentia', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNP, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/1rKe2RicfWha-VIm1LbbXckbA41glA99K/view?usp=drive_link', + CONCAT('La Kentia es una de las plantas más decorativas debido al porte que ', + 'le otorgan sus largas finas hojas arqueadas, ideal para un regalo que dejará ', + 'sin palabras a quien lo reciba o para decorar una estancia de tu hogar, ', + 'desde un espacio super moderno hasta el ambiente más clásico. Nuestras Kentias ', + 'proceden de uno de los mejores productores de kentias del mundo, con el añadido ', + 'de ser un producto nacional producido en Canarias de una calidad extrema.') + ), + ( + @item := @item + 1, + @r := 'Planta Calathea', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNP, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/11CKm5rqVFVPOELciuyXUrkc2oeTHJzBE/view?usp=drive_link', + CONCAT('Esta planta originaria de América tropical, principalmente de Brasil y Perú ', + ', son plantas ideales para embellecer el interior de una estancia . Debido a su ', + 'llamativo y original colorido, tambien es un regalo perfecto para ', + 'cualquier compromiso que tengamos .') + ), + ( + @item := @item + 1, + @r := 'Planta Anthurium ', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNP, + (SELECT id FROM vn.ink WHERE name = 'Red'), + 'https://drive.google.com/file/d/1j4il_N9VJGaP4f6CPZM0u6GjxwIeYcBt/view?usp=drive_link', + CONCAT('Nos encanta el color rojo de sus flores .Esta planta original de ', + 'Costa Rica ,proviene de las zonas tropicales de America Central y del Sur, ', + 'su llamativo color alegrará cualquier celebración') + ), + ( + @item := @item + 1, + @r := 'Ramo Mindanao', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNR, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/1lsGDuC6xmv3SyGukfLTVYsQvbGf1Bzxy/view?usp=drive_link', + CONCAT('La combinación de rosas ramificadas amarillas, las hortensias blancas, ', + 'el estatice, el limonium Tanacetum y los verdes variados hace de este ramo uno ', + 'de los que más gustan tanto si es para regalar como para decorar un rincón de tu casa.') + ), + ( + @item := @item + 1, + @r := 'Ramo Guinea', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNR, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/1MtF0oghv-ahogaAaVpJNzDiIfyeCCmAi/view?usp=drive_link', + CONCAT('Hemos elegido una selección de flores muy especiales para realizar esta composición:', + ' brásicas, flor de cera, astrantia, espigas, lisiantum, paniculata eucaliptus.') + ), + ( + @item := @item + 1, + @r := 'Ramo Eterno', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNR, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/1AOMqlZAKqImnnWSmeq1DW1Krj78mACCG/view?usp=drive_link', + CONCAT('La perfecta combinación de los diferentes tonos de estatice y el eucaliptus ', + 'cinerea hacen de este ramo un recuerdo inolvidable ya que ambos materiales son de ', + 'larga duración por lo que podrás conservar tu ramo junto con las bonitas vivencias ', + 'de ese día durante mucho tiempo, además le añadimos un toque especial que le dan ', + 'las raices las cuales combinan con los tonos del ramo, unas bonitas cintas del colores ', + 'rematan el acabado del ramo. Este ramo se puede secar y mantenerse en perfecto estado.') + ), + ( + @item := @item + 1, + @r := 'Ramo Cielo', + @r, + 20 + CEIL(RAND() * 55), + (SELECT id FROM vn.origin WHERE code = 'SPA'), + 6031970, + @FNR, + (SELECT id FROM vn.ink ORDER BY RAND() LIMIT 1), + 'https://drive.google.com/file/d/168DikIOwVT5OO4BHARBoWwLB1wjpAS7s/view?usp=drive_link', + CONCAT('Las hortensias son unas de las flores más elegantes que existen y ', + 'la combinación que proponemos para este ramo te resultará de lo más armoniosa ', + ', ya que intercalamos flores de mayor tamaño como las hortensias azules y ', + 'blancas junto con flores más pequeñas y delicadas como el estatice , todo ello', + ' combinado con el eucaliptus cinerea que te aportará un sueve aroma en toda ', + 'la estancia, el atado del ramo es de rafia natural, siguiendo la tonalidad ', + 'clara de todo el conjunto. ') + ); + + -- Ramo Terranova: 1er elemento +INSERT INTO vn.item( + name, + longName, + `size`, + stems, + inkFk, + intrastatFk, + typeFk, + originFk) + SELECT + @r:= 'Rosa roja', + @r, + 60, + 1, + 'RED', + 6031970, + id, + 1 + FROM vn.itemType + WHERE code LIKE 'FNE'; + +SELECT LAST_INSERT_ID() INTO @itemFk; + +INSERT INTO floranet.`element` + SET itemFk = @itemFk; + +INSERT INTO floranet.builder( + itemFk, + elementFk, + quantity) + SELECT + id, + @itemFk, + 12 + FROM vn.item + WHERE name = 'Ramo Terranova'; + + -- Ramo Terranova: 2º elemento + +INSERT INTO vn.item( + name, + longName, + `size`, + stems, + inkFk, + intrastatFk, + typeFk, + originFk) + SELECT + @r:= 'Hoja de helecho', + @r, + 60, + 1, + 'BAS', + 6031970, + id, + 1 + FROM vn.itemType + WHERE code LIKE 'FNE'; + +SELECT LAST_INSERT_ID() INTO @itemFk; + +INSERT INTO floranet.`element` + SET itemFk = @itemFk; + +INSERT INTO floranet.builder( + itemFk, + elementFk, + quantity) + SELECT + id, + @itemFk, + 4 + FROM vn.item + WHERE name = 'Ramo Terranova'; + + + -- Ramo Terranova: 3er elemento +INSERT INTO vn.item( + name, + longName, + `size`, + stems, + inkFk, + intrastatFk, + typeFk, + originFk) + SELECT + @r:= 'Paniculata', + @r, + 60, + 1, + 'SLV', + 6031970, + id, + 1 + FROM vn.itemType + WHERE code LIKE 'FNE'; + +SELECT LAST_INSERT_ID() INTO @itemFk; + +INSERT INTO floranet.`element` + SET itemFk = @itemFk; + +INSERT INTO floranet.builder( + itemFk, + elementFk, + quantity) + SELECT + id, + @itemFk, + 5 + FROM vn.item + WHERE name = 'Ramo Terranova'; + + + -- XXX SET foreign_key_checks = 1; diff --git a/db/routines/floranet/events/clean.sql b/db/routines/floranet/events/clean.sql new file mode 100644 index 000000000..4477112fd --- /dev/null +++ b/db/routines/floranet/events/clean.sql @@ -0,0 +1,22 @@ +DELIMITER $$ +CREATE OR REPLACE + DEFINER=`root`@`localhost` + EVENT `floranet`.`clean` + ON SCHEDULE EVERY 1 DAY + STARTS '2024-01-01 23:00:00.000' + ON COMPLETION PRESERVE + ENABLE +DO +BEGIN + DELETE + FROM `order` + WHERE created < CURDATE() + AND isPaid = FALSE; + + DELETE c.* + FROM catalogue c + LEFT JOIN `order` o ON o.catalogueFk = c.id + WHERE c.created < CURDATE() + AND o.id IS NULL; +END$$ +DELIMITER ; \ No newline at end of file diff --git a/db/routines/floranet/procedures/catalogue_get.sql b/db/routines/floranet/procedures/catalogue_get.sql new file mode 100644 index 000000000..914b5d27f --- /dev/null +++ b/db/routines/floranet/procedures/catalogue_get.sql @@ -0,0 +1,52 @@ +DROP PROCEDURE IF EXISTS floranet.catalogue_get; + +DELIMITER $$ +$$ +CREATE DEFINER=`root`@`localhost` PROCEDURE floranet.catalogue_get(vLanded DATE, vPostalCode VARCHAR(15)) +READS SQL DATA +BEGIN +/** + * Returns list, price and all the stuff regarding the floranet items + * + * @param vLanded Delivery date + * @param vPostalCode Delivery address postal code + */ + DECLARE vLastCatalogueFk INT; + + START TRANSACTION; + + SELECT * FROM catalogue FOR UPDATE; + + SELECT MAX(id) INTO vLastCatalogueFk + FROM catalogue; + + INSERT INTO catalogue( + name, + price, + itemFk, + dated, + postalCode, + `type`, + image, + description + ) + SELECT i.name, + i.`size`, + i.id, + vLanded, + vPostalCode, + it.name, + i.image, + i.description + FROM vn.item i + JOIN vn.itemType it ON it.id = i.typeFk + WHERE it.code IN ('FNR','FNP'); + + SELECT * + FROM catalogue + WHERE id > IFNULL(vLastCatalogueFk,0); + + COMMIT; + +END$$ +DELIMITER ; diff --git a/db/routines/floranet/procedures/order_confirm.sql b/db/routines/floranet/procedures/order_confirm.sql new file mode 100644 index 000000000..fed123663 --- /dev/null +++ b/db/routines/floranet/procedures/order_confirm.sql @@ -0,0 +1,25 @@ +DROP PROCEDURE IF EXISTS floranet.order_confirm; + +DELIMITER $$ +$$ + +CREATE DEFINER=`root`@`localhost`PROCEDURE floranet.order_confirm(vCatalogueFk INT) +READS SQL DATA + +BEGIN +/** Update order.isPaid field + * + * @param vCatalogueFk floranet.catalogue.id + * + * @returns floranet.order.isPaid + */ + UPDATE `order` + SET isPaid = TRUE, + payed = NOW() + WHERE catalogueFk = vCatalogueFk; + + SELECT isPaid + FROM `order` + WHERE catalogueFk = vCatalogueFk; +END$$ +DELIMITER ; \ No newline at end of file diff --git a/db/routines/floranet/procedures/order_put.sql b/db/routines/floranet/procedures/order_put.sql new file mode 100644 index 000000000..c26cef19a --- /dev/null +++ b/db/routines/floranet/procedures/order_put.sql @@ -0,0 +1,42 @@ +DROP PROCEDURE IF EXISTS floranet.order_put; + +DELIMITER $$ +$$ +CREATE DEFINER=`root`@`localhost` PROCEDURE floranet.order_put(vOrder JSON) +READS SQL DATA +BEGIN +/** + * Get and process an order + * + * @param vOrder Data of the order + * + * Customer data: , , + * + * Item data: , + * + * Delivery data: ,
, + * + */ + INSERT IGNORE INTO `order`( + catalogueFk, + customerName, + email, + customerPhone, + message, + deliveryName, + address, + deliveryPhone + ) + VALUES (JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.catalogueFk')), + JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.customerName')), + JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.email')), + JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.customerPhone')), + JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.message')), + JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.deliveryName')), + JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.address')), + JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.deliveryPhone')) + ); + + SELECT LAST_INSERT_ID() orderFk; +END$$ +DELIMITER ; diff --git a/db/versions/10887-floranet/00-schemaAndUser.sql b/db/versions/10887-floranet/00-schemaAndUser.sql new file mode 100644 index 000000000..34da92550 --- /dev/null +++ b/db/versions/10887-floranet/00-schemaAndUser.sql @@ -0,0 +1,14 @@ + +CREATE SCHEMA IF NOT EXISTS `floranet`; + +CREATE ROLE IF NOT EXISTS 'floranet' ; + +GRANT Create temporary tables ON floranet.* TO 'floranet'; + +GRANT Execute ON floranet.* TO 'floranet'; + +GRANT Lock tables ON floranet.* TO 'floranet'; + +CREATE USER IF NOT EXISTS 'floranet'@'%'; + +GRANT floranet TO floranet@'%'; \ No newline at end of file diff --git a/db/versions/10887-floranet/01-tables.sql b/db/versions/10887-floranet/01-tables.sql new file mode 100644 index 000000000..b63c81c21 --- /dev/null +++ b/db/versions/10887-floranet/01-tables.sql @@ -0,0 +1,61 @@ +CREATE OR REPLACE TABLE floranet.`builder` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `itemFk` int(11) NOT NULL, + `elementFk` int(11) NOT NULL, + `quantity` int(10) unsigned NOT NULL DEFAULT 1, + PRIMARY KEY (`id`), + KEY `builder_FK` (`itemFk`), + KEY `builder_FK_1` (`elementFk`), + CONSTRAINT `builder_FK` FOREIGN KEY (`itemFk`) REFERENCES `vn`.`item` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Links handmade products with their elements'; + +CREATE OR REPLACE TABLE floranet.`element` ( + `itemFk` int(11) NOT NULL, + `typeFk` smallint(5) unsigned DEFAULT NULL, + `size` int(11) DEFAULT NULL, + `inkFk` char(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL, + `originFk` tinyint(2) unsigned DEFAULT NULL, + `name` varchar(30) DEFAULT NULL, + `quantity` int(11) NOT NULL DEFAULT 1, + PRIMARY KEY (`itemFk`), + KEY `element_FK` (`itemFk`), + KEY `element_FK_1` (`typeFk`), + KEY `element_FK_2` (`inkFk`), + KEY `element_FK_3` (`originFk`), + CONSTRAINT `element_FK` FOREIGN KEY (`itemFk`) REFERENCES `vn`.`item` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `element_FK_1` FOREIGN KEY (`typeFk`) REFERENCES `vn`.`itemType` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `element_FK_2` FOREIGN KEY (`inkFk`) REFERENCES `vn`.`ink` (`id`) ON UPDATE CASCADE, + CONSTRAINT `element_FK_3` FOREIGN KEY (`originFk`) REFERENCES `vn`.`origin` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Filtro para localizar posibles items que coincidan con la descripción'; + +ALTER TABLE floranet.builder ADD CONSTRAINT `builder_FK_1` FOREIGN KEY (`elementFk`) REFERENCES `element` (`itemFk`) ON UPDATE CASCADE; + +CREATE OR REPLACE TABLE floranet.catalogue +(id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(50), + price DECIMAL(10,2) NOT NULL, + itemFk INT NOT NULL, + dated DATE, + postalCode VARCHAR(12), + `type` VARCHAR(50), + image VARCHAR(255), + description TEXT, + created TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + payed DATETIME, + FOREIGN KEY (itemFk) REFERENCES vn.item(id) ON DELETE RESTRICT ON UPDATE CASCADE); + + +CREATE OR REPLACE TABLE floranet.`order` +(id INT AUTO_INCREMENT PRIMARY KEY, + catalogueFk INT UNIQUE, + customerName VARCHAR(100), + email VARCHAR(100), + customerPhone VARCHAR(15), + message VARCHAR(255), + deliveryName VARCHAR(100), + address VARCHAR(200), + deliveryPhone VARCHAR(100), + isPaid BOOL NOT NULL DEFAULT FALSE, + payed DATETIME, + created TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (catalogueFk) REFERENCES catalogue(id) ON DELETE RESTRICT ON UPDATE CASCADE); \ No newline at end of file