diff --git a/build.gradle b/build.gradle index 3d7f7607..efa1cf28 100644 --- a/build.gradle +++ b/build.gradle @@ -20,8 +20,10 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' + compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'org.postgresql:postgresql' + annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } diff --git a/src/main/java/com/booleanuk/api/cinema/Controller/CustomerController.java b/src/main/java/com/booleanuk/api/cinema/Controller/CustomerController.java new file mode 100644 index 00000000..363546d0 --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Controller/CustomerController.java @@ -0,0 +1,91 @@ +package com.booleanuk.api.cinema.Controller; + +import com.booleanuk.api.cinema.Model.Customer; +import com.booleanuk.api.cinema.Repository.CustomerRepository; +import com.booleanuk.api.cinema.ResponseWrapper.ResponseWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Optional; + +@RestController +@RequestMapping("customers") +public class CustomerController { + @Autowired + private CustomerRepository customerRepository; + + @ResponseStatus(HttpStatus.CREATED) + @PostMapping + public ResponseEntity> create(@RequestBody Customer newCustomer) { + try { + + LocalDateTime currentDateTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"); + newCustomer.setCreatedAt(LocalDateTime.parse(currentDateTime.format(formatter))); + newCustomer.setUpdatedAt(LocalDateTime.parse(currentDateTime.format(formatter))); + Customer savedCustomer = this.customerRepository.save(newCustomer); + Map response = new LinkedHashMap<>(); + response.put("id", savedCustomer.getId()); + response.put("name", savedCustomer.getName()); + response.put("email", savedCustomer.getEmail()); + response.put("phone", savedCustomer.getPhone()); + response.put("createdAt", currentDateTime.format(formatter)); + response.put("updatedAt", currentDateTime.format(formatter)); + + return ResponseEntity.status(HttpStatus.CREATED).body(new ResponseWrapper<>("success", response)); + } catch (Exception e) { + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseWrapper<>("error", "Could not create customer, please check all required fields are correct.")); + } + } + + @ResponseStatus(HttpStatus.OK) + @GetMapping + public ResponseWrapper getAll() { + return new ResponseWrapper<>("success", this.customerRepository.findAll()); + } + + @ResponseStatus(HttpStatus.CREATED) + @PutMapping("{id}") + public ResponseEntity> update(@PathVariable("id") Integer id, @RequestBody Customer updatedCustomer) { + Optional existingCustomerOptional = this.customerRepository.findById(id); + LocalDateTime currentDateTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"); + + if (existingCustomerOptional.isPresent()) { + try { + Customer existingCustomer = existingCustomerOptional.get(); + existingCustomer.setName(updatedCustomer.getName()); + existingCustomer.setEmail(updatedCustomer.getEmail()); + existingCustomer.setPhone(updatedCustomer.getPhone()); + existingCustomer.setUpdatedAt(LocalDateTime.parse(currentDateTime.format(formatter))); + + Customer savedCustomer = this.customerRepository.save(existingCustomer); + return ResponseEntity.status(HttpStatus.CREATED).body(new ResponseWrapper<>("success", savedCustomer)); + } catch (Exception e) { + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseWrapper<>("error", "Could not update customer, please check all fields are correct.")); + } + } else { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ResponseWrapper<>("error", "No customer with that id found.")); + } + } + + @ResponseStatus(HttpStatus.OK) + @DeleteMapping("{id}") + public ResponseEntity> delete(@PathVariable("id") Integer id) { + Optional customerOptional = this.customerRepository.findById(id); + + if (customerOptional.isPresent()) { + Customer deletedCustomer = customerOptional.get(); + this.customerRepository.deleteById(id); + return ResponseEntity.ok(new ResponseWrapper<>("success", deletedCustomer)); + } else { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ResponseWrapper<>("error", "No customer with that ID was found.")); + } + } +} diff --git a/src/main/java/com/booleanuk/api/cinema/Controller/MovieController.java b/src/main/java/com/booleanuk/api/cinema/Controller/MovieController.java new file mode 100644 index 00000000..769bade4 --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Controller/MovieController.java @@ -0,0 +1,102 @@ +package com.booleanuk.api.cinema.Controller; + +import com.booleanuk.api.cinema.Model.Movie; +import com.booleanuk.api.cinema.Model.Screening; +import com.booleanuk.api.cinema.Repository.MovieRepository; +import com.booleanuk.api.cinema.ResponseWrapper.ResponseWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Optional; + +@RestController +@RequestMapping("movies") +public class MovieController { + @Autowired + private MovieRepository movieRepository; + + @ResponseStatus(HttpStatus.CREATED) + @PostMapping + public ResponseEntity> create(@RequestBody Movie newMovie) { + + try { + + + LocalDateTime currentDateTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"); + newMovie.setCreatedAt(LocalDateTime.parse(currentDateTime.format(formatter))); + newMovie.setUpdatedAt(LocalDateTime.parse(currentDateTime.format(formatter))); + newMovie.setScreenings(new ArrayList()); + Movie savedMovie = this.movieRepository.save(newMovie); + Map response = new LinkedHashMap<>(); + response.put("id", savedMovie.getId()); + response.put("title", newMovie.getTitle()); + response.put("description", newMovie.getDescription()); + response.put("runtimeMins", newMovie.getRuntimeMins()); + response.put("createdAt", currentDateTime.format(formatter)); + response.put("updatedAt", currentDateTime.format(formatter)); + return ResponseEntity.status(HttpStatus.CREATED).body(new ResponseWrapper<>("success", response)); + + } catch (Exception e) { + //System.out.println(e); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseWrapper<>("error", "Could not create movie, please check all required fields are correct.")); + + } + } + + @ResponseStatus(HttpStatus.OK) + @GetMapping + public ResponseWrapper getAll() { + return new ResponseWrapper<>("success", this.movieRepository.findAll()); + } + + @ResponseStatus(HttpStatus.CREATED) + @PutMapping("{id}") + public ResponseEntity> update(@PathVariable("id") Integer id, @RequestBody Movie updatedMovie) { + Optional existingMovieOptional = this.movieRepository.findById(id); + LocalDateTime currentDateTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"); + + if (existingMovieOptional.isPresent()) { + try { + Movie existingMovie = existingMovieOptional.get(); + existingMovie.setTitle(updatedMovie.getTitle()); + existingMovie.setRating(updatedMovie.getRating()); + existingMovie.setDescription(updatedMovie.getDescription()); + existingMovie.setRuntimeMins(updatedMovie.getRuntimeMins()); + existingMovie.setUpdatedAt(LocalDateTime.parse(currentDateTime.format(formatter))); + + Movie savedMovie = this.movieRepository.save(existingMovie); + return ResponseEntity.status(HttpStatus.CREATED).body(new ResponseWrapper<>("success", savedMovie)); + } catch (Exception e) { + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseWrapper<>("error", "Could not update movie, please check all fields are correct.")); + } + } else { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ResponseWrapper<>("error", "No movie with that id found.")); + //return new ResponseWrapper<>("error", "No movie with that id found."); + } + } + + @ResponseStatus(HttpStatus.OK) + @DeleteMapping("{id}") + public Optional delete(@PathVariable("id") Integer id) { + Optional movieOptional = this.movieRepository.findById(id); + + if (movieOptional.isPresent()) { + Movie deletedMovie = movieOptional.get(); + this.movieRepository.deleteById(id); + // return ResponseEntity.ok(new ResponseWrapper<>("success", deletedMovie)); + return movieOptional; + } else { + return Optional.empty(); + // ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ResponseWrapper<>("error", "No movie with that id found.")); + } + } +} diff --git a/src/main/java/com/booleanuk/api/cinema/Controller/ScreeningController.java b/src/main/java/com/booleanuk/api/cinema/Controller/ScreeningController.java new file mode 100644 index 00000000..f235c14d --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Controller/ScreeningController.java @@ -0,0 +1,55 @@ +package com.booleanuk.api.cinema.Controller; + +import com.booleanuk.api.cinema.Model.Screening; +import com.booleanuk.api.cinema.Repository.ScreeningRepository; +import com.booleanuk.api.cinema.ResponseWrapper.ResponseWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Optional; + +@RestController +@RequestMapping("movies/{movieId}/screenings") +public class ScreeningController { + @Autowired + private ScreeningRepository screeningRepository; + + @ResponseStatus(HttpStatus.CREATED) + @PostMapping + public ResponseEntity> create(@PathVariable("movieId") Integer movieId, @RequestBody Screening newScreening) { + try { + newScreening.setMovieId(movieId); + LocalDateTime currentDateTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"); + newScreening.setCreatedAt(LocalDateTime.parse(currentDateTime.format(formatter))); + newScreening.setUpdatedAt(LocalDateTime.parse(currentDateTime.format(formatter))); + Screening savedScreening = this.screeningRepository.save(newScreening); + Map response = new LinkedHashMap<>(); + response.put("id", savedScreening.getId()); + response.put("screenNumber", savedScreening.getScreenNumber()); + response.put("capacity", savedScreening.getCapacity()); + response.put("startsAt", savedScreening.getStartsAt()); + response.put("createdAt", currentDateTime.format(formatter)); + response.put("updatedAt", currentDateTime.format(formatter)); + + return ResponseEntity.status(HttpStatus.CREATED).body(new ResponseWrapper<>("success", response)); + } catch (Exception e) { + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseWrapper<>("error", "Could not create screening, please check all required fields are correct.")); + } + } + + @ResponseStatus(HttpStatus.OK) + @GetMapping + public ResponseWrapper getAll() { + return new ResponseWrapper<>("success", this.screeningRepository.findAll()); + } + + + +} diff --git a/src/main/java/com/booleanuk/api/cinema/Controller/TicketController.java b/src/main/java/com/booleanuk/api/cinema/Controller/TicketController.java new file mode 100644 index 00000000..16937b12 --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Controller/TicketController.java @@ -0,0 +1,67 @@ +package com.booleanuk.api.cinema.Controller; + +import com.booleanuk.api.cinema.Model.Ticket; +import com.booleanuk.api.cinema.Repository.TicketRepository; +import com.booleanuk.api.cinema.ResponseWrapper.ResponseWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Optional; + +@RestController +@RequestMapping("tickets") +public class TicketController { + @Autowired + private TicketRepository ticketRepository; + + @ResponseStatus(HttpStatus.CREATED) + @PostMapping + public ResponseEntity> create(@RequestBody Ticket newTicket) { + try { + Ticket savedTicket = this.ticketRepository.save(newTicket); + return ResponseEntity.status(HttpStatus.CREATED).body(new ResponseWrapper<>("success", savedTicket)); + } catch (Exception e) { + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseWrapper<>("error", "Could not create ticket, please check all required fields are correct.")); + } + } + + @ResponseStatus(HttpStatus.OK) + @GetMapping + public ResponseWrapper getAll() { + return new ResponseWrapper<>("success", this.ticketRepository.findAll()); + } + + @ResponseStatus(HttpStatus.CREATED) + @PutMapping("{id}") + public ResponseEntity> update(@PathVariable("id") Integer id, @RequestBody Ticket updatedTicket) { + Optional existingTicketOptional = this.ticketRepository.findById(id); + + if (existingTicketOptional.isPresent()) { + try { + Ticket existingTicket = existingTicketOptional.get(); + existingTicket.setCustomerId(updatedTicket.getCustomerId()); + existingTicket.setScreeningId(updatedTicket.getScreeningId()); + existingTicket.setNumSeats(updatedTicket.getNumSeats()); + Ticket savedTicket = this.ticketRepository.save(existingTicket); + return ResponseEntity.status(HttpStatus.CREATED).body(new ResponseWrapper<>("success", savedTicket)); + } catch (Exception e) { + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseWrapper<>("error", "Could not update ticket, please check all fields are correct.")); + } + } else { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ResponseWrapper<>("error", "No ticket with that id found.")); + } + } + + @ResponseStatus(HttpStatus.OK) + @DeleteMapping("{id}") + public ResponseEntity> delete(@PathVariable("id") Integer id) { + if (this.ticketRepository.existsById(id)) { + this.ticketRepository.deleteById(id); + return ResponseEntity.ok(new ResponseWrapper<>("success", "Ticket deleted successfully.")); + } else { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ResponseWrapper<>("error", "No ticket with that ID was found.")); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/booleanuk/api/cinema/Main.java b/src/main/java/com/booleanuk/api/cinema/Main.java new file mode 100644 index 00000000..37455cd5 --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Main.java @@ -0,0 +1,12 @@ +package com.booleanuk.api.cinema; + + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Main { + public static void main(String[] args) { + SpringApplication.run(Main.class, args); + } +} \ No newline at end of file diff --git a/src/main/java/com/booleanuk/api/cinema/Model/Customer.java b/src/main/java/com/booleanuk/api/cinema/Model/Customer.java new file mode 100644 index 00000000..19a97cd9 --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Model/Customer.java @@ -0,0 +1,55 @@ +package com.booleanuk.api.cinema.Model; + + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +@NoArgsConstructor +@AllArgsConstructor +@Entity +@Table(name = "customers") +public class Customer { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Getter + private int id; + @Setter + @Getter + @Column(name = "name") + private String name; + @Setter + @Getter + @Column(name = "email") + private String email; + @Setter + @Getter + @Column(name = "phone") + private String phone; + @Setter + @Getter + @Column(name = "createdAt") + private LocalDateTime createdAt; + @Setter + @Getter + @Column(name = "updatedAt") + private LocalDateTime updatedAt; + + public Customer(String name, String email, String phone) { + this.name = name; + this.email = email; + this.phone = phone; + + LocalDateTime currentDateTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"); + this.createdAt = LocalDateTime.parse(currentDateTime.format(formatter)); + this.updatedAt = LocalDateTime.parse(currentDateTime.format(formatter)); + } + + +} diff --git a/src/main/java/com/booleanuk/api/cinema/Model/Movie.java b/src/main/java/com/booleanuk/api/cinema/Model/Movie.java new file mode 100644 index 00000000..b77f7cae --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Model/Movie.java @@ -0,0 +1,85 @@ +package com.booleanuk.api.cinema.Model; + + +import com.booleanuk.api.cinema.Controller.ScreeningController; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +@NoArgsConstructor +@AllArgsConstructor +@Entity +@Table(name = "movies") +public class Movie { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Getter + private int id; + @Setter + @Getter + @Column(name = "title") + private String title; + @Setter + @Getter + @Column(name = "rating") + private String rating; + @Setter + @Getter + @Column(name = "description") + private String description; + @Setter + @Getter + @Column(name = "runtimeMins") + private int runtimeMins; + + @Setter + @Getter + @Column(name = "createdAt") + private LocalDateTime createdAt; + @Setter + @Getter + @Column(name = "updatedAt") + private LocalDateTime updatedAt; + + + @Setter + @Getter + @Column(name = "screenings") + private ArrayList screenings; + + + /*public Movie(String title, String rating, String description, int runtimeMins, ArrayList Screenings) { + this.title = title; + this.rating = rating; + this.description = description; + this.runtimeMins = runtimeMins; + LocalDateTime currentDateTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"); + this.createdAt = LocalDateTime.parse(currentDateTime.format(formatter)); + this.updatedAt = LocalDateTime.parse(currentDateTime.format(formatter)); + for (int i = 0; i< Screenings.size();i++){ + ScreeningController sc = new ScreeningController(); + sc.create(Screenings.get(i)); + } + + } + public Movie(String title, String rating, String description, int runtimeMins) { + this.title = title; + this.rating = rating; + this.description = description; + this.runtimeMins = runtimeMins; + LocalDateTime currentDateTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"); + this.createdAt = LocalDateTime.parse(currentDateTime.format(formatter)); + this.updatedAt = LocalDateTime.parse(currentDateTime.format(formatter)); + } + +*/ +} diff --git a/src/main/java/com/booleanuk/api/cinema/Model/Screening.java b/src/main/java/com/booleanuk/api/cinema/Model/Screening.java new file mode 100644 index 00000000..8d0e63e2 --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Model/Screening.java @@ -0,0 +1,58 @@ +package com.booleanuk.api.cinema.Model; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + + +@NoArgsConstructor +@AllArgsConstructor +@Entity +@Table(name = "screenings") +public class Screening { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Getter + private int id; + @Setter + @Getter + @Column(name = "movieId") + private int movieId; + @Setter + @Getter + @Column(name = "screenNumber") + private int screenNumber; + @Setter + @Getter + @Column(name = "startsAt") + private String startsAt; + @Setter + @Getter + @Column(name = "capacity") + private int capacity; + @Setter + @Getter + @Column(name = "createdAt") + private LocalDateTime createdAt; + @Setter + @Getter + @Column(name = "updatedAt") + private LocalDateTime updatedAt; + + public Screening(int screenNumber, int capacity, String startsAt) { + this.screenNumber = screenNumber; + this.capacity = capacity; + this.startsAt = startsAt; + + LocalDateTime currentDateTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"); + this.createdAt = LocalDateTime.parse(currentDateTime.format(formatter)); + this.updatedAt = LocalDateTime.parse(currentDateTime.format(formatter)); + } + +} diff --git a/src/main/java/com/booleanuk/api/cinema/Model/Ticket.java b/src/main/java/com/booleanuk/api/cinema/Model/Ticket.java new file mode 100644 index 00000000..6d507854 --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Model/Ticket.java @@ -0,0 +1,45 @@ +package com.booleanuk.api.cinema.Model; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +@NoArgsConstructor +@AllArgsConstructor +@Entity +@Table(name = "tickets") +public class Ticket { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Getter + private int id; + @Setter + @Getter + @Column(name = "customerId") + private int customerId; + @Setter + @Getter + @Column(name = "screeningId") + private int screeningId; + @Setter + @Getter + @Column(name = "numSeats") + private int numSeats; + @Setter + @Getter + @Column(name = "createdAt") + private LocalDateTime createdAt; + @Setter + @Getter + @Column(name = "updatedAt") + private LocalDateTime updatedAt; + + + + +} diff --git a/src/main/java/com/booleanuk/api/cinema/Repository/CustomerRepository.java b/src/main/java/com/booleanuk/api/cinema/Repository/CustomerRepository.java new file mode 100644 index 00000000..45115586 --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Repository/CustomerRepository.java @@ -0,0 +1,7 @@ +package com.booleanuk.api.cinema.Repository; + +import com.booleanuk.api.cinema.Model.Customer; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CustomerRepository extends JpaRepository { +} diff --git a/src/main/java/com/booleanuk/api/cinema/Repository/MovieRepository.java b/src/main/java/com/booleanuk/api/cinema/Repository/MovieRepository.java new file mode 100644 index 00000000..6d17a166 --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Repository/MovieRepository.java @@ -0,0 +1,8 @@ +package com.booleanuk.api.cinema.Repository; + +import com.booleanuk.api.cinema.Model.Customer; +import com.booleanuk.api.cinema.Model.Movie; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MovieRepository extends JpaRepository { +} diff --git a/src/main/java/com/booleanuk/api/cinema/Repository/ScreeningRepository.java b/src/main/java/com/booleanuk/api/cinema/Repository/ScreeningRepository.java new file mode 100644 index 00000000..6d8ffa57 --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Repository/ScreeningRepository.java @@ -0,0 +1,8 @@ +package com.booleanuk.api.cinema.Repository; + +import com.booleanuk.api.cinema.Model.Customer; +import com.booleanuk.api.cinema.Model.Screening; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ScreeningRepository extends JpaRepository { +} diff --git a/src/main/java/com/booleanuk/api/cinema/Repository/TicketRepository.java b/src/main/java/com/booleanuk/api/cinema/Repository/TicketRepository.java new file mode 100644 index 00000000..89d3c941 --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/Repository/TicketRepository.java @@ -0,0 +1,8 @@ +package com.booleanuk.api.cinema.Repository; + +import com.booleanuk.api.cinema.Model.Customer; +import com.booleanuk.api.cinema.Model.Ticket; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface TicketRepository extends JpaRepository { +} diff --git a/src/main/java/com/booleanuk/api/cinema/ResponseWrapper/ResponseWrapper.java b/src/main/java/com/booleanuk/api/cinema/ResponseWrapper/ResponseWrapper.java new file mode 100644 index 00000000..ea5613a8 --- /dev/null +++ b/src/main/java/com/booleanuk/api/cinema/ResponseWrapper/ResponseWrapper.java @@ -0,0 +1,18 @@ +package com.booleanuk.api.cinema.ResponseWrapper; + +import lombok.Getter; +import lombok.Setter; + +public class ResponseWrapper { + @Setter + @Getter + private String status; + @Setter + @Getter + private T data; + public ResponseWrapper(String status, T data) { + this.status = status; + this.data = data; + } + +}