diff --git a/src/main/java/backend/entities/Customer.java b/src/main/java/backend/entities/Customer.java deleted file mode 100644 index b09f088a..00000000 --- a/src/main/java/backend/entities/Customer.java +++ /dev/null @@ -1,76 +0,0 @@ -package backend.entities; - -import jakarta.persistence.*; - -@Entity -public class Customer { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long customerId; - - private String firstName; - private String lastName; - - @Column(unique = true, nullable = false) - private String phoneNumber; - private String email; - - public Customer() { - } - - public Customer(String firstName, String lastName, String phoneNumber, String email) { - this.firstName = firstName; - this.lastName = lastName; - this.phoneNumber = phoneNumber; - this.email = email; - } - - public Long getCustomerId() { - return customerId; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getPhoneNumber() { - return phoneNumber; - } - - public void setPhoneNumber(String phoneNumber) { - this.phoneNumber = phoneNumber; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - @Override - public String toString() { - return "Customer{" + - "customerId=" + customerId + - ", firstName='" + firstName + '\'' + - ", lastName='" + lastName + '\'' + - ", phoneNumber='" + phoneNumber + '\'' + - ", email='" + email + '\'' + - '}'; - } - -} diff --git a/src/main/java/frontend/controller/BookingController.java b/src/main/java/frontend/controller/BookingController.java index f7dbd988..6d93bed9 100644 --- a/src/main/java/frontend/controller/BookingController.java +++ b/src/main/java/frontend/controller/BookingController.java @@ -24,64 +24,75 @@ public class BookingController { @FXML private DatePicker datePicker; @FXML private ComboBox startTimeBox; - @FXML private Label statusLabel; @FXML private void initialize() { - - guestsSpinner.setValueFactory( - new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 8, 2) - ); - + guestsSpinner.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 8, 2)); for (int h = 12; h <= 20; h++) { startTimeBox.getItems().add(LocalTime.of(h, 0)); -// startTimeBox.getItems().add(LocalTime.of(h, 15)); -// startTimeBox.getItems().add(LocalTime.of(h, 30)); } } - /** - * Handles the book table button action. - * - * Reads user input from the form, validates required fields, - * creates a booking, and shows the result to the user. - */ @FXML private void BookTable() { try { LocalDate date = datePicker.getValue(); LocalTime startTime = startTimeBox.getValue(); - if (date == null || startTime == null) { - statusLabel.setText("Please select date and time"); + if (firstNameField.getText().isEmpty() || lastNameField.getText().isEmpty() || + date == null || startTime == null) { + statusLabel.setText("Please fill in all required fields"); + statusLabel.setStyle("-fx-text-fill: red;"); return; } LocalTime endTime = startTime.plusHours(2); Booking booking = bookingService.bookTable( - restaurant, - firstNameField.getText(), - lastNameField.getText(), - emailField.getText(), - phoneField.getText(), - guestsSpinner.getValue(), - startTime, - endTime, - date + restaurant, + firstNameField.getText(), + lastNameField.getText(), + emailField.getText(), + phoneField.getText(), + guestsSpinner.getValue(), + startTime, + endTime, + date ); - statusLabel.setText( - "Booking confirmed! ID: " + booking.getId() + statusLabel.setText("Booking confirmed! ID: " + booking.getId()); + statusLabel.setStyle("-fx-text-fill: green;"); + + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setTitle("Booking confirmed"); + alert.setHeaderText(null); + alert.setContentText( + "Booking confirmed for " + firstNameField.getText() + " " + lastNameField.getText() + "\n" + + "Restaurant: " + restaurant.getName() + "\n" + + "Date & Time: " + date + " at " + startTime + "\n" + + "Guests: " + guestsSpinner.getValue() ); + DialogPane dialogPane = alert.getDialogPane(); + var contentLabel = dialogPane.lookup(".content.label"); + if (contentLabel != null) { + contentLabel.setStyle("-fx-text-fill: #CF6720; -fx-font-weight: bold; -fx-font-family: 'Agency FB'; -fx-font-size: 16px;"); + } + + alert.showAndWait(); + + firstNameField.clear(); + lastNameField.clear(); + phoneField.clear(); + emailField.clear(); + guestsSpinner.getValueFactory().setValue(1); + datePicker.setValue(null); + startTimeBox.getSelectionModel().clearSelection(); + } catch (Exception e) { statusLabel.setText(e.getMessage()); + statusLabel.setStyle("-fx-text-fill: red;"); } } - -// public void setRestaurant(Restaurant restaurant) { -// this.restaurant = restaurant; -// } -} +} \ No newline at end of file