DROP TABLE IF EXISTS ΞΕΝΟΔΟΧΕΙΟ CASCADE;
DROP TABLE IF EXISTS ΠΕΛΑΤΗΣ CASCADE;
DROP TABLE IF EXISTS ΚΡΑΤΗΣΗ CASCADE;
DROP TABLE IF EXISTS ΔΩΜΑΤΙΟ CASCADE;

-- Table: ΞΕΝΟΔΟΧΕΙΟ
CREATE TABLE ΞΕΝΟΔΟΧΕΙΟ (
ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ INTEGER NOT NULL,
ΟΝΟΜΑ_ΞΕΝΟΔΟΧΕΙΟΥ TEXT NOT NULL,
ΚΑΤΗΓΟΡΙΑ_ΞΕΝΟΔΟΧΕΙΟΥ INTEGER NOT NULL,
ΤΟΠΟΘΕΣΙΑ_ΞΕΝΟΔΟΧΕΙΟΥ TEXT NOT NULL,
PRIMARY KEY(ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ)
);

--INSERT DATA INTO ΞΕΝΟΔΟΧΕΙΟ
INSERT INTO ΞΕΝΟΔΟΧΕΙΟ VALUES(1,'SAMARIA',5,'Χανιά');
INSERT INTO ΞΕΝΟΔΟΧΕΙΟ VALUES(2,'ΠΡΕΒΕΛΗΣ',3,'Ρέθυμνο');

-- Table: ΠΕΛΑΤΗΣ
CREATE TABLE ΠΕΛΑΤΗΣ (
ΚΩΔ_ΠΕΛΑΤΗ INTEGER NOT NULL,
ΟΝΟΜΑ_ΠΕΛΑΤΗ TEXT NOT NULL,
ΤΗΛΕΦΩΝΟ_ΠΕΛΑΤΗ TEXT NOT NULL,
PRIMARY KEY(ΚΩΔ_ΠΕΛΑΤΗ)
);
--INSERT DATA INTO ΠΕΛΑΤΗΣ
INSERT INTO ΠΕΛΑΤΗΣ VALUES(1,'ΑΚΟΥΜΙΑΝΑΚΗΣ ΔΗΜΟΣΘΕΝΗΣ','2810379190');
INSERT INTO ΠΕΛΑΤΗΣ VALUES(2,'ΣΠΥΡΙΔΟΥ ΜΑΡΙΑ','6911122233');

-- Table: ΔΩΜΑΤΙΟ
CREATE TABLE ΔΩΜΑΤΙΟ (
ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ INTEGER NOT NULL,
ΚΩΔ_ΔΩΜΑΤΙΟΥ INTEGER NOT NULL,
ΤΙΜΗ_ΑΝΑ_ΗΜΕΡΑ INTEGER NOT NULL,
FOREIGN KEY (ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ) REFERENCES ΞΕΝΟΔΟΧΕΙΟ(ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ),
PRIMARY KEY(ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ,ΚΩΔ_ΔΩΜΑΤΙΟΥ)
);
--INSERT DATA INTO ΔΩΜΑΤΙΟ
INSERT INTO ΔΩΜΑΤΙΟ VALUES(1,1,120);
INSERT INTO ΔΩΜΑΤΙΟ VALUES(1,2,70);

-- Table: ΚΡΑΤΗΣΗ
CREATE TABLE ΚΡΑΤΗΣΗ(
ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ INTEGER NOT NULL,
ΚΩΔ_ΠΕΛΑΤΗ INTEGER NOT NULL,
ΚΩΔ_ΔΩΜΑΤΙΟΥ INTEGER NOT NULL,
ΗΜΕΡ_ΑΦΙΞΗΣ_ΠΕΛΑΤΗ DATE NOT NULL,
ΗΜΕΡΕΣ_ΔΙΑΜΟΝΗΣ_ΠΕΛΑΤΗ INTEGER NOT NULL,
FOREIGN KEY (ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ,ΚΩΔ_ΔΩΜΑΤΙΟΥ) REFERENCES ΔΩΜΑΤΙΟ(ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ,ΚΩΔ_ΔΩΜΑΤΙΟΥ),
FOREIGN KEY (ΚΩΔ_ΠΕΛΑΤΗ) REFERENCES ΠΕΛΑΤΗΣ(ΚΩΔ_ΠΕΛΑΤΗ),
PRIMARY KEY(ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ,ΚΩΔ_ΠΕΛΑΤΗ,ΗΜΕΡ_ΑΦΙΞΗΣ_ΠΕΛΑΤΗ)
);

--INSERT DATA INTO ΚΡΑΤΗΣΗ
INSERT INTO ΚΡΑΤΗΣΗ VALUES(1,1,1,'2024-03-20',3);
INSERT INTO ΚΡΑΤΗΣΗ VALUES(1,2,2,'2024-03-21',4);
INSERT INTO ΚΡΑΤΗΣΗ VALUES(1,2,2,'2024-03-22',4);
INSERT INTO ΚΡΑΤΗΣΗ VALUES(1,1,2,'2024-03-22',3);

SELECT ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ,ΚΩΔ_ΔΩΜΑΤΙΟΥ, ΗΜΕΡ_ΑΦΙΞΗΣ_ΠΕΛΑΤΗ, ΗΜΕΡΕΣ_ΔΙΑΜΟΝΗΣ_ΠΕΛΑΤΗ
FROM ΚΡΑΤΗΣΗ
ORDER BY ΗΜΕΡ_ΑΦΙΞΗΣ_ΠΕΛΑΤΗ ASC;