diff --git a/docker-compose.yml b/docker-compose.yml index 8b59898d9dd3d9bfab2de75e76aaf6fee78ab02e..33e6fe11a84b410ca624cb271c33d64e7181be30 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -31,6 +31,7 @@ services: MYSQL_PASSWORD: ${DATABASE_PASSWORD} volumes: - mysql_data:/var/lib/mysql + - ./sql-setup/init.sql:/docker-entrypoint-initdb.d/init.sql networks: - network diff --git a/sql-setup/init.sql b/sql-setup/init.sql new file mode 100644 index 0000000000000000000000000000000000000000..cbbf77be78c01fd2b1625bb7d6a9e22f3568dccf --- /dev/null +++ b/sql-setup/init.sql @@ -0,0 +1,233 @@ +CREATE DATABASE IF NOT EXISTS `mydatabase` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; +USE `mydatabase`; +-- MySQL dump 10.13 Distrib 8.0.32, for Win64 (x86_64) +-- +-- Host: 127.0.0.1 Database: mydatabase +-- ------------------------------------------------------ +-- Server version 8.0.41 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `alembic_version` +-- + +DROP TABLE IF EXISTS `alembic_version`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `alembic_version` ( + `version_num` varchar(32) NOT NULL, + PRIMARY KEY (`version_num`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `alembic_version` +-- + +LOCK TABLES `alembic_version` WRITE; +/*!40000 ALTER TABLE `alembic_version` DISABLE KEYS */; +INSERT INTO `alembic_version` VALUES ('ce28a5ddecee'); +/*!40000 ALTER TABLE `alembic_version` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `bookings` +-- + +DROP TABLE IF EXISTS `bookings`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `bookings` ( + `id` int NOT NULL AUTO_INCREMENT, + `user_id` int NOT NULL, + `listing_id` int NOT NULL, + `amount_paid` int NOT NULL, + `seat_type` varchar(50) NOT NULL, + `num_seats` int NOT NULL, + `cancelled` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `listing_id` (`listing_id`), + KEY `user_id` (`user_id`), + CONSTRAINT `bookings_ibfk_1` FOREIGN KEY (`listing_id`) REFERENCES `listings` (`id`) ON DELETE CASCADE, + CONSTRAINT `bookings_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `bookings` +-- + +LOCK TABLES `bookings` WRITE; +/*!40000 ALTER TABLE `bookings` DISABLE KEYS */; +INSERT INTO `bookings` VALUES (6,4,17,270,'economy',3,0),(7,4,17,900,'business',5,0); +/*!40000 ALTER TABLE `bookings` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `listing_availability` +-- + +DROP TABLE IF EXISTS `listing_availability`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `listing_availability` ( + `id` int NOT NULL AUTO_INCREMENT, + `listing_id` int NOT NULL, + `date` date NOT NULL, + `air_economy_seats` int NOT NULL DEFAULT '104', + `air_business_seats` int NOT NULL DEFAULT '26', + PRIMARY KEY (`id`), + KEY `listing_id` (`listing_id`), + CONSTRAINT `listing_availability_ibfk_1` FOREIGN KEY (`listing_id`) REFERENCES `listings` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `listing_availability` +-- + +LOCK TABLES `listing_availability` WRITE; +/*!40000 ALTER TABLE `listing_availability` DISABLE KEYS */; +INSERT INTO `listing_availability` VALUES (3,17,'2025-02-13',101,21); +/*!40000 ALTER TABLE `listing_availability` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `listing_images` +-- + +DROP TABLE IF EXISTS `listing_images`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `listing_images` ( + `id` int NOT NULL AUTO_INCREMENT, + `listing_id` int NOT NULL, + `image_location` varchar(255) NOT NULL, + `image_description` varchar(255) DEFAULT NULL, + `main_image` smallint NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `listing_id` (`listing_id`), + CONSTRAINT `listing_images_ibfk_1` FOREIGN KEY (`listing_id`) REFERENCES `listings` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `listing_images` +-- + +LOCK TABLES `listing_images` WRITE; +/*!40000 ALTER TABLE `listing_images` DISABLE KEYS */; +INSERT INTO `listing_images` VALUES (58,17,'17_2d852af9f5b64b1abdd5784e8172ce6e.gif',NULL,1); +/*!40000 ALTER TABLE `listing_images` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `listings` +-- + +DROP TABLE IF EXISTS `listings`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `listings` ( + `id` int NOT NULL AUTO_INCREMENT, + `depart_location` varchar(255) NOT NULL, + `depart_time` time NOT NULL, + `destination_location` varchar(255) NOT NULL, + `destination_time` time NOT NULL, + `economy_fair_cost` float NOT NULL, + `business_fair_cost` float DEFAULT NULL, + `transport_type` varchar(255) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `listings` +-- + +LOCK TABLES `listings` WRITE; +/*!40000 ALTER TABLE `listings` DISABLE KEYS */; +INSERT INTO `listings` VALUES (17,'Newcastle','17:45:00','Bristol','19:00:00',90,180,'Airplane'),(23,'Bristol','09:00:00','Newcastle','10:15:00',90,180,'Airplane'),(24,'Cardiff','07:00:00','Edinburgh','08:30:00',90,180,'Airplane'),(25,'Bristol','12:30:00','Manchester','13:30:00',80,160,'Airplane'),(26,'Manchester','13:20:00','Bristol','14:20:00',80,160,'Airplane'),(27,'Bristol','07:40:00','London','08:20:00',80,160,'Airplane'),(28,'London','13:00:00','Manchester','14:00:00',100,200,'Airplane'),(29,'Manchester','12:20:00','Glasgow','13:30:00',100,200,'Airplane'),(30,'Bristol','08:40:00','Glasgow','09:45:00',110,220,'Airplane'),(31,'Glasgow','14:30:00','Newcastle','15:45:00',100,200,'Airplane'),(32,'Newcastle','16:15:00','Manchester','17:05:00',100,200,'Airplane'),(33,'Manchester','18:25:00','Bristol','19:30:00',80,160,'Airplane'),(34,'Bristol','06:20:00','Manchester','07:20:00',80,160,'Airplane'),(35,'Portsmouth','12:00:00','Dundee','14:00:00',120,240,'Airplane'),(36,'Dundee','10:00:00','Portsmouth','12:00:00',120,240,'Airplane'),(37,'Edinburgh','18:30:00','Cardiff','20:00:00',90,180,'Airplane'),(38,'Southampton','12:00:00','Manchester','13:30:00',90,180,'Airplane'),(39,'Manchester','19:00:00','Southampton','20:30:00',90,180,'Airplane'),(40,'Birmingham','17:00:00','Newcastle','17:45:00',100,200,'Airplane'),(41,'Newcastle','07:00:00','Birmingham','07:45:00',100,200,'Airplane'),(42,'Aberdeen','08:00:00','Portsmouth','09:30:00',100,200,'Airplane'); +/*!40000 ALTER TABLE `listings` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `roles` +-- + +DROP TABLE IF EXISTS `roles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `roles` ( + `id` int NOT NULL AUTO_INCREMENT, + `name` varchar(80) DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `roles` +-- + +LOCK TABLES `roles` WRITE; +/*!40000 ALTER TABLE `roles` DISABLE KEYS */; +INSERT INTO `roles` VALUES (1,'super-admin','Super Admin, all admin perms and can create new admins'),(2,'admin','Can create/delete and modify bookings'),(3,'user','Standard user'); +/*!40000 ALTER TABLE `roles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `users` ( + `id` int NOT NULL AUTO_INCREMENT, + `username` varchar(255) NOT NULL, + `email` varchar(255) NOT NULL, + `password` varchar(255) NOT NULL, + `fs_uniquifier` varchar(64) NOT NULL, + `role_id` int DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `username` (`username`), + UNIQUE KEY `email` (`email`), + UNIQUE KEY `fs_uniquifier` (`fs_uniquifier`), + UNIQUE KEY `fs_uniquifier_2` (`fs_uniquifier`), + KEY `role_id` (`role_id`), + CONSTRAINT `users_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES (3,'ere','ethanclay2017@gmail.com','pbkdf2:sha256:1000000$KLEXQcswJYJuZ8xf$afe1a0bb9fa87afbc6aa1e672b9b0474733311cedfcd2c81585ae10e786b10dc','1fa9452306c06ba227f1081f2573cd2fd80d27e83beb0de4b776308fde22acd1',3),(4,'ethan-root','ethan@email.com','pbkdf2:sha256:1000000$h2bDsdVYQa5hIUZf$09e9fd93e8040fde8c97ce9be8f6ede36ab5f5a83bafb4427c0b0e20b8095a0d','ed662a222a3abc0536fceffda483134def08b339ed73c34e0bb4ca8740389319',1),(5,'64565','dfgfdgfd@gjkonfd.com','pbkdf2:sha256:1000000$YPhFWaRsQeFO1MXe$378bb9e49e2b3e004a0dcfbbbd0af36168d0cc421df7447cfffcf2f0f6ffdee7','823c308e7124145efb8d114b3fe92a960895abda3a904539fe3f68784a9a383d',3),(7,'hgh','hfg@gsdfgnj.com','pbkdf2:sha256:1000000$jOK9q73AdlYw9Zx4$962b9371d7f2ef6d922b50a787e2973574398520f402afd0ddaa0091e007b704','e38b60063929f2faca986b251087d202247a0491258d6e3217c8432eca6fd497',3),(8,'dsfdsfd','sdfd@sfjdifon.com','pbkdf2:sha256:1000000$lbfHzBP6QezPfWJV$5bcff242a0481be1dc934d0aee31d69a6c014127cba8ed208d8929f80f68741c','980d1003086ab1f68e4beb522f9f032dd40c2cb565f4ab3e484e35cf9500f77c',3),(9,'ghjofdgjofigjoi','sdoijf@fsidjf.com','pbkdf2:sha256:1000000$5eExQbI4OvzPeDAO$43116e45de77bc55441d04fb9b9755c26a830393cee9c851343f52b22c7eecb9','b7bddaf30a867146be078ca1f76e16e69f4e7009c8001ba3e5982f93951af72d',3),(10,'vsdnfjvhdvsouij','zxhjcxzkhjl@vhjovfdhn.com','pbkdf2:sha256:1000000$WAq9HaVAfljL1P5n$8ff8d607cddc475557cb23070e7cb6d0ce3a870103ed993c16d999e9c00f23e1','7a6b788885bae598cc5bd9a157498a6da0ec96329f481036f0d08a8e399114e5',3),(11,'fsdfdsfuoh','dshfoiudh@sfodifj.com','pbkdf2:sha256:1000000$oOlS1KqrcgGyoqQm$4c9b55b07d259c7c62833777ac26af3190c86dccf124e83a005e2bfb26669f43','502e720f49250d0ecade74d9e78a5b6d6885de87a0b647a82aa831a8747e79bd',3),(12,'abc','abc@abc.com','pbkdf2:sha256:1000000$Jxzoy9sxTGqGHwiw$40a6f1a57d195d29c0aef1e637755d3c0f928cc28179afb44aa637bde30c67e0','561bc7776ddb3637df3d9bb2fb968e466fd69811e8ef24b318323ac2f231a03b',3),(13,'zxczxcz','zxoijc@vsiodjvd.com','pbkdf2:sha256:1000000$4rlYBHcwN4J4shjz$10a3620747ce9cd9c74d2389ddf54f79836d48d330043af057ae1729b5b9d80a','1c00d83fa89fb06d0d188aa3d93af8e396d21ec8a2a2ed79e3f73694b9f18ef3',3),(14,'fdggyfuigyfudi','dfsuify@dgyufdi.com','pbkdf2:sha256:1000000$WLrKJbAxAyjdVf6L$7238f06e6d6b178935193b85eba4f04d50dff9c7141aad891c1b42f78b23db2e','2484df7f3be68bc30cf679e187cba0bf725c9abdab8f8bd6f36f34e1a88279bf',3),(15,'ethan','e@e.com','pbkdf2:sha256:1000000$lwDjZg0Y11JnOPHw$044b346f4378f2e75fa60dc367e608097dfd845830b7202cbac1bb604ee3b4fe','8e5ed3d7d9e2d88d4c8c63fce9e3889e88424cada91a0c39e254092b416072f6',2),(16,'urdsitur9898','fsduiofdujio@oiscgfjiods.com','pbkdf2:sha256:1000000$WHTfGYXEIAB90YTW$779abcc3b34a00e172725dbecc5d768172453be5cd21ac10912c9e5c2eb60ef4','09438ff7487d5bc54a4a0d04193e092809086464aefdbf0a511dec7e01ac6c4e',3),(17,'ufsdfhuio','sdfuihds@sdoifhj.com','pbkdf2:sha256:1000000$osxKbywtVHGEx3EO$09795c29d5fe10dadb79f6ff1a45b8633042c443581d24df611adbdcad077c20','788db016c51a08692a35bf2020cdec94074599c5b41243b24c47373e56e81114',3); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2025-02-14 8:16:55