CREATE DATABASE IF NOT EXISTS Aeroporto;
USE Aeroporto;

CREATE TABLE PASSEGGERO (
    idPassaporto VARCHAR(20) PRIMARY KEY,
    cognome VARCHAR(50) NOT NULL,
    nome VARCHAR(50) NOT NULL,
    nazionalita VARCHAR(50),
    dataNascita DATE,
    email VARCHAR(100)
);

CREATE TABLE VOLO (
    numeroVolo VARCHAR(10) PRIMARY KEY,
    compagnia VARCHAR(50) NOT NULL,
    destinazione VARCHAR(50) NOT NULL
);

CREATE TABLE PRENOTAZIONE (
    idPrenotazione INT AUTO_INCREMENT PRIMARY KEY,
    dataPrenotazione DATE NOT NULL,
    prezzo DECIMAL(10, 2),
    classe VARCHAR(20),
    idPassaporto VARCHAR(20),
    numeroVolo VARCHAR(10),
    FOREIGN KEY (idPassaporto) REFERENCES PASSEGGERO(idPassaporto),
    FOREIGN KEY (numeroVolo) REFERENCES VOLO(numeroVolo)
);

CREATE TABLE BAGAGLIO (
    idBagaglio INT AUTO_INCREMENT PRIMARY KEY,
    dataImbarco DATE NOT NULL,
    peso DECIMAL(5, 2),
    smarrito TINYINT(1),
    idPassaporto VARCHAR(20),
    FOREIGN KEY (idPassaporto) REFERENCES PASSEGGERO(idPassaporto)
);

INSERT INTO PASSEGGERO (idPassaporto, cognome, nome, nazionalita, dataNascita, email) VALUES
('AB12345', 'Rossi', 'Marco', 'Italiana', '1980-05-15', 'marco.rossi@email.it'),
('XY98765', 'Bianchi', 'Luca', 'Italiana', '1992-10-20', 'luca.bianchi@email.it'),
('US55555', 'Smith', 'John', 'USA', '1975-03-12', 'john.smith@usmail.com'),
('FR11111', 'Dupont', 'Jean', 'Francia', '1988-07-14', NULL),
('DE22222', 'Muller', 'Hans', 'Germania', '1990-11-30', 'hans.m@de.com'),
('ES33333', 'Garcia', 'Maria', 'Spagnola', '1995-02-28', 'maria.g@es.com'),
('RO99999', 'Romano', 'Giulia', 'Italiana', '2000-01-01', NULL),
('PT44444', 'Silva', 'Joao', 'Portoghese', '1985-06-10', 'joao@pt.com'),
('CA77777', 'Wilson', 'Emma', 'Canada', '1998-12-25', 'emma.w@ca.com'),
('NE00000', 'Neri', 'Fantasma', 'Italiana', '1999-09-09', 'neri@test.it');

INSERT INTO VOLO (numeroVolo, compagnia, destinazione) VALUES
('AZ202', 'Alitalia', 'Roma'),
('LH404', 'Lufthansa', 'Berlino'),
('RY123', 'Ryanair Express', 'Londra'),
('DL100', 'Delta', 'New York'),
('AF505', 'Air France', 'Parigi'),
('GH000', 'Ghost Air', 'Nessun Luogo');

INSERT INTO PRENOTAZIONE (dataPrenotazione, prezzo, classe, idPassaporto, numeroVolo) VALUES
('2024-09-01', 45.00, 'Economy', 'AB12345', 'AZ202'),
('2024-10-05', 150.00, 'Business', 'XY98765', 'AZ202'),
('2024-11-12', 1200.00, 'First', 'US55555', 'DL100'),
('2024-09-15', 80.00, 'Economy', 'FR11111', 'AF505'),
('2024-10-20', 60.00, 'Economy', 'DE22222', 'RY123'),
('2024-12-01', 300.00, 'Business', 'ES33333', 'LH404'),
('2024-08-30', 400.00, 'Business', 'AB12345', 'DL100'),
('2024-10-01', 35.00, 'Economy', 'RO99999', 'AZ202');

INSERT INTO BAGAGLIO (dataImbarco, peso, smarrito, idPassaporto) VALUES
('2024-09-01', 15.50, 0, 'AB12345'),
('2024-10-05', 20.00, 0, 'XY98765'),
('2024-10-05', 10.50, 0, 'XY98765'),
('2024-12-05', 23.00, 0, 'US55555'),
('2024-12-15', 22.00, 1, 'US55555'),
('2024-12-20', 18.00, 0, 'US55555'),
('2024-12-25', 12.00, 0, 'US55555'),
('2024-09-15', 19.00, 0, 'FR11111'),
('2024-11-30', 25.00, 0, 'CA77777');