DROP TABLE IF EXISTS libro;
DROP TABLE IF EXISTS menu;
DROP TABLE IF EXISTS tipo_venta;
DROP TABLE IF EXISTS usuario;

DROP PROCEDURE IF EXISTS st_login;
DROP PROCEDURE IF EXISTS st_consulta_libro;
DROP PROCEDURE IF EXISTS st_novedades;
DROP PROCEDURE IF EXISTS st_inserta_libro;
DROP PROCEDURE IF EXISTS st_libro_edicion;
DROP PROCEDURE IF EXISTS st_menu;
DROP PROCEDURE IF EXISTS st_consulta_categoria;



CREATE TABLE `libro`
(
  `id_libro` integer auto_increment PRIMARY KEY ,
  `titulo` varchar(255),
  `autor` varchar(255),
  `categoria` varchar(255),
  `paginas` varchar(10),
  `isbn` varchar(50),
  `precio` integer,
  `edicion` varchar(100),
  `anio` varchar(10),
  `tipo` integer,
  `imagen` varchar(200),
  `descripcion` varchar(300),
  `pdf` varchar(250)

);


CREATE TABLE `menu`
(
  `id_menu` integer auto_increment PRIMARY KEY ,
  `nombre` varchar(200),
  `ubicacion` varchar(10),
  `nivel` integer

);

CREATE TABLE `tipo_venta`
(
  `id_tipo` integer auto_increment PRIMARY KEY ,
  `tipo` varchar(50)
);


CREATE TABLE `usuario`
(
  `id_usuario` integer auto_increment PRIMARY KEY ,
  `nombre` varchar(255),
  `user` varchar(50),
  `password` varchar(50),
  `tipo` varchar(20)
);
ALTER TABLE `libro` ADD FOREIGN KEY (`tipo`) REFERENCES `tipo_venta` (`id_tipo`);

INSERT INTO menu VALUES
(NULL,'Produccion Editorial','1,1',1),
(NULL,'Libros Electronicos','2,2',2),
(NULL,'Materiales Gratuitos','2,3',2),
(NULL,'Libros','2,1',2),
(NULL,'Ciencias Juridicas','3,1',3),
(NULL,'Ciencias Socioeconomicas','3,2',3),
(NULL,'Diseño y Edificacion','3,3',3),
(NULL,'Divulgacion Cientifica','3,4',3),
(NULL,'Enseñanza de Idiomas','3,5',3),
(NULL,'Estudios de Posgrados','3,6',3),
(NULL,'Humanidades','3,7',3),
(NULL,'Investigación Aplicada y Multidiciplinaria','3,8',3),
(NULL,'Matematicas e Ingenieria','3,9',3),
(NULL,'Universidad Abierta y Educacion a Distancia','3,10',3);

INSERT INTO usuario VALUES(id_usuario,nombre,user,password,tipo) ,(NULL, 'Administrador', 'admin','admin123','admin');

INSERT INTO tipo_venta VALUES (NULL,'tienda'), (NULL, 'linea'), (NULL, 'ambos');

CREATE PROCEDURE `st_consulta_libro`(IN `tit` VARCHAR(150)) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN SELECT * FROM libro WHERE titulo LIKE CONCAT('%', tit , '%') OR autor LIKE CONCAT('%', tit , '%'); END; DELIMITER ;
CREATE PROCEDURE `st_consulta_categoria`(IN `cat` VARCHAR(150)) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN SELECT * FROM libro WHERE categoria LIKE CONCAT('%', cat , '%'); END;
CREATE PROCEDURE `st_novedades`() NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN SELECT * FROM libro ORDER BY anio DESC LIMIT 12; END;
CREATE PROCEDURE `st_inserta_libro`(IN `tit` VARCHAR(250), `aut` VARCHAR(250),`cat` VARCHAR(150), `pag` VARCHAR(150), `isb` VARCHAR(150), `pre` INT (5), `edi` VARCHAR(150), `year` VARCHAR(10), `tip` INT(2), `img` VARCHAR(200), `des` VARCHAR(500), `pdfs` VARCHAR(250)) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN INSERT INTO libro(id_libro, titulo, autor, categoria, paginas, isbn, precio, edicion, anio, tipo, imagen, descripcion, pdf)values (NULL ,tit,aut,cat,pag,isb,pre,edi,year,tip,img,des,pdfs); END;
CREATE PROCEDURE `st_libro_edicion`() NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN SELECT * FROM libro ORDER BY edicion DESC LIMIT 12; END;
CREATE PROCEDURE `st_menu`() NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN SELECT * FROM menu; END;
CREATE PROCEDURE `st_login`(IN `usr` varchar(45), `pass` varchar(45)) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN SELECT nombre, user, password, tipo FROM usuario WHERE user = usr AND password = pass; END;