
\c postgres postgres;

drop database if exists alquiler;

create database alquiler encoding utf8;

\c alquiler;

CREATE TABLE empleado (
id SERIAL PRIMARY KEY,
nombre VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL,
fechini DATE NOT NULL DEFAULT CURRENT_DATE
);

CREATE TABLE propietario (
id SERIAL PRIMARY KEY,
nombre VARCHAR(50) NOT NULL,
telefono CHAR(9) NOT NULL,
nacion VARCHAR(50) NOT NULL DEFAULT 'España'
);

CREATE TABLE inmueble (
id SERIAL PRIMARY KEY,
direc TEXT NOT NULL,
cp CHAR(5) NOT NULL,
detalle TEXT NOT NULL,
propietario_id INT NOT NULL,
empleado_id INT
);

CREATE TABLE dormitorio (
inmueble_id INT NOT NULL,
num INT NOT NULL,
capacidad NUMERIC(4,1) NOT NULL,
pvp NUMERIC(3) NOT NULL,
calidad VARCHAR(9) NOT NULL,
CHECK (num > 0),
CHECK (capacidad > 0),
CHECK (pvp > 0 ),
CHECK (calidad IN ('mala','regular','buena','muy buena')),
PRIMARY KEY(inmueble_id,num)
);

CREATE INDEX ON inmueble(propietario_id);
CREATE INDEX ON inmueble(empleado_id);
CREATE INDEX ON dormitorio(inmueble_id);

ALTER TABLE inmueble 
ADD FOREIGN KEY(propietario_id) REFERENCES propietario(id);
ALTER TABLE inmueble 
ADD FOREIGN KEY(empleado_id) REFERENCES empleado(id);
ALTER TABLE dormitorio 
ADD FOREIGN KEY(inmueble_id) REFERENCES inmueble(id);

/********************************* EMPLEADOS **************************************/

INSERT INTO empleado VALUES 
(DEFAULT,'Luis Romero','luis@gmail.com',TO_DATE('02012016','DDMMYYYY')),
(DEFAULT,'Ana Sánchez','ana@gmail.com',TO_DATE('01072017','DDMMYYYY')),
(DEFAULT,'Lucía Parrilla','lucia@gmail.com',TO_DATE('15082018','DDMMYYYY'));

/********************************* PROPIETARIOS **************************************/

INSERT INTO propietario VALUES 
(DEFAULT,'Alberto Crespo','679346678',DEFAULT),
(DEFAULT, 'Mónica Paredes','661294715','Italia'),
(DEFAULT,'Eva Jimena','603682187',DEFAULT);

/********************************* INMUEBLES **************************************/

INSERT INTO inmueble VALUES 
(DEFAULT,'Avda. Sistema Solar,12,5ºA','23700','junto aeropuerto',3,1),
(DEFAULT,'Calle Pablo Picasso,1,3ºB','23730','bien ubicado',1,2),
(DEFAULT,'Avda. Andalucía,56,7ºC','23740','cerca comercios',3,1),
(DEFAULT,'Calle Alfonso X el Sabio,34,2ºD','23700','cerca metro',2,2),
(DEFAULT,'Avda. Cristóbal Colón,26,6ºE','23730','muy soleado',1,2),
(DEFAULT,'Calle Miguel Hernández,13,4ºF','23700','zona expansión',3,NULL);

/********************************* DORMITORIOS **************************************/

INSERT INTO dormitorio VALUES 
(1,1,25,200,'buena'),
(1,2,18,160,'regular'),
(2,1,15,180,'mala'),
(2,2,25,280,'muy buena'),
(2,3,19,160,'regular'),
(3,1,18,180,'buena'),
(4,1,22,190,'buena'),
(4,2,20,170,'regular'),
(5,1,21,180,'buena'),
(5,2,17,150,'mala'),
(6,1,20,250,'muy buena');

