DROP DATABASE IF EXISTS integracion;

CREATE DATABASE IF NOT EXISTS integracion CHARACTER SET utf8 COLLATE utf8_general_ci;

USE integracion;

CREATE TABLE cliente (
	id_cliente INT PRIMARY KEY AUTO_INCREMENT,
	nombre VARCHAR(45),
	primer_apellido VARCHAR(45),
	segundo_apellido VARCHAR(45),
	usuario_usuario VARCHAR(10) NOT NULL,
	CONSTRAINT usuario_clave
	FOREIGN KEY (usuario_usuario) REFERENCES usuario (usuario)
		ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE=InnoDB;

CREATE TABLE tipo_viaje (
	clave VARCHAR(10) PRIMARY KEY,
	descripcion VARCHAR (50)
)ENGINE = InnoDB;

CREATE TABLE preferencia (
	clave VARCHAR(10) PRIMARY KEY,
	descripcion VARCHAR (50)
)ENGINE = InnoDB;

CREATE TABLE destino (
	clave VARCHAR(10) PRIMARY KEY,
	descripcion VARCHAR (50)
)ENGINE = InnoDB;


CREATE TABLE viaje(
	id_viaje INT PRIMARY KEY AUTO_INCREMENT,
	clave_destino VARCHAR(10),
	clave_tipo_viaje VARCHAR(10),
	id_cliente_cliente INT,
	CONSTRAINT viaje_destino
	FOREIGN KEY (clave_destino) REFERENCES destino (clave)
		ON DELETE RESTRICT ON UPDATE RESTRICT,
	CONSTRAINT viaje_tipo_viaje
	FOREIGN KEY (clave_tipo_viaje) REFERENCES tipo_viaje (clave)
		ON DELETE RESTRICT ON UPDATE RESTRICT,
	CONSTRAINT cliente
	FOREIGN KEY (id_cliente_cliente) REFERENCES cliente (id_cliente)
		ON DELETE RESTRICT ON UPDATE RESTRICT
)ENGINE = InnoDB;


CREATE TABLE viaje_preferencia(
	id_viaje_preferencia INT PRIMARY KEY AUTO_INCREMENT,
	id_viaje_viaje INT,
	clave_preferencia VARCHAR(10),
	CONSTRAINT viaje_viaje
	FOREIGN KEY (id_viaje_viaje) REFERENCES viaje (id_viaje)
		ON DELETE CASCADE ON UPDATE RESTRICT,
	CONSTRAINT viaje_preferencia
	FOREIGN KEY (clave_preferencia) REFERENCES preferencia (clave)
		ON DELETE RESTRICT ON UPDATE RESTRICT
)ENGINE = InnoDB;

INSERT INTO cliente (nombre,primer_apellido,segundo_apellido,usuario_usuario) VALUES
('Nombre C1','Primero C1','Segundo C1','USR001'),
('Nombre C2','Primero C2','Segundo C2','USR002'),
('Nombre C3','Primero C3','Segundo C3','USR003');

INSERT INTO tipo_viaje (clave,descripcion) VALUES
('SNC','Viaje Sencillo'),
('RDO','Viaje Redondo');

INSERT INTO preferencia (clave,descripcion) VALUES
('DES','Desayuno'),
('APT','Aperitivo'),
('GUI','Guía Turístico'),
('ALR','Servicio de Despertador'),
('TRA','Traslados incluidos');

INSERT INTO destino (clave,descripcion) VALUES
('DEST01','Destino Turístico 1'),
('DEST02','Destino Turístico 2'),
('DEST03','Destino Turístico 3'),
('DEST04','Destino Turístico 4'),
('DEST05','Destino Turístico 5');
