-- Crear la base de datos solo si no existe CREATE DATABASE IF NOT EXISTS `suitecoffee`; USE `suitecoffee`; -- Crear tabla de categorías CREATE TABLE IF NOT EXISTS categorias ( id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL UNIQUE ); -- Crear tabla de productos CREATE TABLE IF NOT EXISTS productos ( id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL, precio DECIMAL(10,2) NOT NULL, categoria_id INT, FOREIGN KEY (categoria_id) REFERENCES categorias(id) ); -- Crear tabla de mesas CREATE TABLE IF NOT EXISTS mesas ( id INT AUTO_INCREMENT PRIMARY KEY, numero INT NOT NULL UNIQUE ); -- Crear tabla de comandas con productos en JSON CREATE TABLE IF NOT EXISTS comandas ( id INT AUTO_INCREMENT PRIMARY KEY, mesa_id INT NOT NULL, productos JSON NOT NULL, -- Array de productos con cantidad y precio fecha DATETIME DEFAULT CURRENT_TIMESTAMP, total DECIMAL(10,2), FOREIGN KEY (mesa_id) REFERENCES mesas(id) ); -- Insertar categoría 'Café' en la tabla categorias INSERT INTO categorias (nombre) VALUES ('cafe'); -- Insertar mesa '1, 2 y 3' en la tabla mesas INSERT INTO mesas (numero) VALUES (1), (2), (3); -- Insertar cappuccino en la tabla productos, asociándolo con la categoría 'Café' INSERT INTO productos (nombre, precio, categoria_id) VALUES ('Cappuccino', 200.00, (SELECT id FROM categorias WHERE nombre = 'Café')), ('Latte', 200.00, (SELECT id FROM categorias WHERE nombre = 'Café')), ('Espresso', 120.00, (SELECT id FROM categorias WHERE nombre = 'Café')); ('Frappe', 290.00, (SELECT id FROM categorias WHERE nombre = 'Café')); -- Insertar una comanda en la tabla comandas para la mesa 1 INSERT INTO comandas (mesa_id, productos, total) VALUES ( 2, -- mesa_id JSON_ARRAY( JSON_OBJECT('producto_id', (SELECT id FROM productos WHERE nombre = 'Expresso'), 'cantidad', 2, 'precio_unitario', 111.00), JSON_OBJECT('producto_id', (SELECT id FROM productos WHERE nombre = 'Latte'), 'cantidad', 1, 'precio_unitario', 666.00) ), 208457935.00 -- total (2 Cappuccinos * 200 + 1 Latte * 220) ), ( 3, -- mesa_id JSON_ARRAY( JSON_OBJECT('producto_id', (SELECT id FROM productos WHERE nombre = 'Cappuccino'), 'cantidad', 2, 'precio_unitario', 444.00), JSON_OBJECT('producto_id', (SELECT id FROM productos WHERE nombre = 'Frappe'), 'cantidad', 4, 'precio_unitario', 222.00) ), 93826.00 -- total (2 Cappuccinos * 200 + 1 Latte * 220) );