Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .$FlightmanERD.drawio.bkp
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<mxfile host="Electron" modified="2022-10-17T12:49:09.931Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="Ka01m485WewN1fd5q_b4" version="20.3.0" type="device"><diagram id="R2lEEEUBdFMjLlhIrx00" name="Page-1">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</diagram></mxfile>
18 changes: 18 additions & 0 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar
1 change: 1 addition & 0 deletions perf/FlightmanERD.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<mxfile host="Electron" modified="2022-10-17T12:49:12.184Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="-NlnISTaAw7nsK0u4Fv9" version="20.3.0" type="device"><diagram id="R2lEEEUBdFMjLlhIrx00" name="Page-1">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</diagram></mxfile>
192 changes: 192 additions & 0 deletions perf/FlightmanSchema.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
create extension if not exists "uuid-ossp";

-- User Tables --

drop table if exists address_country cascade;

create table address_country(
address_country_id serial,
country_name varchar(50) unique not null,
constraint pk_address_country primary key (address_country_id)
);

drop table if exists address_city cascade;

create table address_city(
address_city_id serial,
address_country_id int not null,
city_name varchar(50) not null,
constraint pk_address_city primary key (address_city_id),
constraint fk_address_city_address_country foreign key (address_country_id) references address_country
);

drop table if exists user_diet cascade;

create table user_diet(
diet_id serial,
diet_name varchar(50) unique not null,
constraint pk_user_diet primary key (diet_id)
);

drop table if exists users cascade;

create table users(
user_id uuid default uuid_generate_v4(),
first_name varchar(50) not null,
last_name varchar(50) not null,
phone_number varchar(50) unique not null,
email varchar(50) unique not null,
passport_number varchar(50) unique not null,
address_fl varchar(50) not null,
address_sl varchar(50) not null,
address_country_id int not null,
address_city_id int not null,
address_zipcode int not null,
diet_id int,
diet_comments varchar(250),
rewards_miles int,
constraint pk_users primary key (user_id),
constraint fk_users_address_country foreign key (address_country_id) references address_country,
constraint fk_users_address_city foreign key (address_city_id) references address_city,
constraint fk_users_diet foreign key (diet_id) references user_diet
);

-- Airport Tables --

drop table if exists airports cascade;

create table airports(
airport_id uuid default uuid_generate_v4(),
airport_name varchar(50) not null,
airport_abv_name varchar(5) not null,
latitude double precision not null,
longitude double precision not null,
constraint pk_airports primary key (airport_id)
);

-- Flight Tables --

drop table if exists flight_model cascade;

create table flight_model(
flight_model_id serial,
flight_manufacturer_name varchar(50) not null,
flight_model_number varchar(50) not null,
seat_capacity int not null,
-- for the sake of simplicity we assume that all flights are perfect grids
-- where each col coresponds to a letter e.g. (col0 -> A, col1 -> B,...etc)
seat_row_count int not null,
seat_col_count int not null,
constraint pk_flight_model primary key (flight_model_id)
);

drop table if exists meals cascade;

create table meals(
meal_id serial,
meal_name varchar(50) not null,
meal_desc varchar(250) not null,
constraint pk_meals primary key (meal_id)
);

drop table if exists flights cascade;

create table flights(
flight_id uuid default uuid_generate_v4(),
source_airport_id uuid,
dest_airport_id uuid,
flight_model_id int,
departure_time time not null,
est_arrival_time time not null,
num_available_seats int not null,
delay_time time,
constraint pk_flights primary key (flight_id),
constraint fk_flights_source_airport foreign key (source_airport_id) references airports(airport_id),
constraint fk_flights_dest_airport foreign key (dest_airport_id) references airports(airport_id),
constraint fk_flights_flight_model foreign key (flight_model_id) references flight_model
);

drop table if exists flight_meals cascade;

create table flight_meals(
flight_id uuid,
meal_id int,
constraint pk_flight_meals primary key (flight_id,meal_id),
constraint fk_flight_meals_flights foreign key (flight_id) references flights,
constraint fk_flight_meals_meals foreign key (meal_id) references meals
);

-- Booking Tables --

drop table if exists luggage_status cascade;

create table luggage_status(
luggage_status_id serial,
luggage_status varchar(50),
constraint pk_luggage_status primary key (luggage_status_id)
);

drop table if exists luggage cascade;

create table luggage(
luggage_id uuid default uuid_generate_v4(),
booking_id uuid not null,
luggage_status_id int not null,
constraint pk_luggage primary key (luggage_id),
constraint fk_luggage_bookings foreign key (booking_id) references bookings,
constraint fk_luggage_status foreign key (luggage_status_id) references luggage_status
);

drop table if exists bookings cascade;

create table bookings(
user_id uuid,
booking_id uuid default uuid_generate_v4(),
flight_id uuid,
meal_id int,
seat_number varchar(3) not null,
payment_status bool not null,
constraint pk_bookings primary key (user_id,booking_id,flight_id),
constraint fk_bookings_users foreign key (user_id) references users,
constraint fk_bookings_flights foreign key (flight_id) references flights
);

-------------------------------- POPULATE TABLES --------------------------------

-- User Tables --
insert into address_country(country_name) values ('United States'),('Nigeria'),('India'),('South Africa');
insert into address_city(address_country_id,city_name) values(1,'New York'), (2,'Lagos'),(3,'Hyderabad'),(4,'Johannesburg');
insert into user_diet(diet_name) values ('Vegan'),('Vegiterian'),('No restrictions');
insert into users(first_name,last_name,phone_number,email,passport_number,address_fl,address_sl,
address_country_id,address_city_id,address_zipcode,
diet_id,diet_comments,rewards_miles)
values ('John','Smith','+123456723423910','abc@gmail.com','A123115678','12 E 345 ST','APT 123',1,1,12345,1,'none',0),
('Jane','Doe','+1234435678910','abcd@gmail.com','A1232345678','12 E 345 ST','APT 123',1,1,12345,1,'none',0),
('Adekunle','Gold','+1284027134910','abcde@gmail.com','A12321678','12 E 345 ST','APT 123',2,3,12345,2,'No nuts',0),
('Musa','Yaradua','+23423452403910','abcdef@gmail.com','A1124435678','12 E 345 ST','APT 123',3,3,12345,3,'Only onions',0);
insert into airports(airport_name,airport_abv_name,latitude,longitude)
values ('John F. Kennedy International Airport','JFK',40.6413,-73.7781),
('Murtala Mohammed International Airport','MM2',6.5844,3.3333),
('Hyderabad International Airport','GMR',17.2403,78.4294);
insert into flight_model(flight_manufacturer_name,flight_model_number,seat_capacity,seat_row_count,seat_col_count)
values ('boeing','737e',300,60,5),
('aml','723e',600,60,10),
('escrow','565f',100,25,4);
insert into meals(meal_name,meal_desc)
values ('Egba','Meal1'),
('Pounded Yam','Meal2'),
('Suya','Meal3');
-- insert into flights(source_airport_id,dest_airport_id,flight_model_id,departure_time,est_arrival_time,num_available_seats,delay_time)
-- values ();
insert into flight_meals(flight_id,meal_id)
select f.flight_id, ms.meal_id
from flights as f
cross join meals as ms;
insert into luggage_status(luggage_status)
values ('Checked In'),('In Transit'),('Arrived at Final Destination'),('Claimed');
-- insert into bookings(user_id,flight_id,meal_id,seat_number,payment_status)
-- values ();
select * from luggage_status