From 4e3bfd6e1c7ba75927c149245bd3da157e4b6711 Mon Sep 17 00:00:00 2001
From: Christopher Alessandro Rodriguez Salazar <zs21016323@estudiantes.uv.mx>
Date: Sat, 8 Mar 2025 20:13:52 -0600
Subject: [PATCH] Cambio de base de datos

---
 BookTicketDB.sql                              |  3 -
 .../saladeconciertos/VentaBoletos.java        | 59 +++++++++++++------
 2 files changed, 41 insertions(+), 21 deletions(-)

diff --git a/BookTicketDB.sql b/BookTicketDB.sql
index 4734998..65df6e0 100644
--- a/BookTicketDB.sql
+++ b/BookTicketDB.sql
@@ -1,6 +1,3 @@
-CREATE DATABASE bookticket;
-USE bookticket;
-
 CREATE TABLE conciertos (
 	id INT auto_increment primary key,
     nombre varchar(50) not null,
diff --git a/src/main/java/org/example/saladeconciertos/VentaBoletos.java b/src/main/java/org/example/saladeconciertos/VentaBoletos.java
index 6e61b1a..0c7819e 100644
--- a/src/main/java/org/example/saladeconciertos/VentaBoletos.java
+++ b/src/main/java/org/example/saladeconciertos/VentaBoletos.java
@@ -9,22 +9,37 @@ import javafx.scene.layout.VBox;
 import javafx.stage.Stage;
 import java.sql.*;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 public class VentaBoletos extends Application {
-    private static final String DB_URL = "jdbc:mysql://159.54.135.17:3306/bookticket";
-    private static final String DB_USER = "edermaximus";
-    private static final String DB_PASSWORD = "1234";
+    private static final String DB_URL = "jdbc:mysql://sql10.freesqldatabase.com:3306/sql10766655";
+    private static final String DB_USER = "sql10766655";
+    private static final String DB_PASSWORD = "7BZbRjEkXZ";
     private List<Integer> selectedSeats = new ArrayList<>();
 
     @Override
     public void start(Stage mainStage) {
+        int totalSeats = 0;
+        Map<Integer, String> seatStatus = new HashMap<>();
 
-        try{
+        try {
             Connection conexion = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
             System.out.println("Conexión realizada correctamente");
-            conexion.close();
 
+            String query = "SELECT id_asiento, status FROM boleto WHERE idevento = 1"; // Cambia el idevento según corresponda
+            Statement statement = conexion.createStatement();
+            ResultSet resultSet = statement.executeQuery(query);
+
+            while (resultSet.next()) {
+                int seatId = resultSet.getInt("id_asiento");
+                String status = resultSet.getString("status");
+                seatStatus.put(seatId, status);
+                totalSeats++;
+            }
+
+            conexion.close();
         } catch (SQLException e) {
             System.out.println("Error en la conexión a la base de datos.");
             e.printStackTrace();
@@ -35,31 +50,39 @@ public class VentaBoletos extends Application {
         GridPane seatGrid = new GridPane();
         Button confirmButton = new Button("Confirmar Compra");
 
-        for (int row = 0; row < 5; row++) {
-            for (int col = 0; col < 5; col++) {
-                int seatNumber = row * 5 + col + 1;
-                Button seatButton = new Button("Asiento " + seatNumber);
+        int cols = 5;
+        int rows = (int) Math.ceil((double) totalSeats / cols);
+
+        for (int seatNumber = 1; seatNumber <= totalSeats; seatNumber++) {
+            int row = (seatNumber - 1) / cols;
+            int col = (seatNumber - 1) % cols;
+            Button seatButton = new Button("Asiento " + seatNumber);
+            int finalSeatNumber = seatNumber;
+
+            if ("vendido".equals(seatStatus.getOrDefault(finalSeatNumber, "disponible"))) {
+                seatButton.setStyle("-fx-background-color: red");
+                seatButton.setDisable(true);
+            } else {
                 seatButton.setOnAction(e -> {
-                    if (!selectedSeats.contains(seatNumber)) {
-                        selectedSeats.add(seatNumber);
-                        seatButton.setStyle("-fx-background-color: red");
+                    if (!selectedSeats.contains(finalSeatNumber)) {
+                        selectedSeats.add(finalSeatNumber);
+                        seatButton.setStyle("-fx-background-color: green");
+                    } else {
+                        selectedSeats.remove(Integer.valueOf(finalSeatNumber));
+                        seatButton.setStyle("");
                     }
                 });
-                seatGrid.add(seatButton, col, row);
             }
+            seatGrid.add(seatButton, col, row);
         }
 
-
         VBox mainLayout = new VBox(10, welcomeLabel, seatGrid, confirmButton);
         Scene mainScene = new Scene(mainLayout, 400, 300);
         mainStage.setScene(mainScene);
         mainStage.show();
     }
 
-
-
-
     public static void main(String[] args) {
         launch(args);
     }
-}
\ No newline at end of file
+}