From 01ef5b1abdad9a62372be8543b1ccb4f851dc2a3 Mon Sep 17 00:00:00 2001
From: Bitha17 <16521076@mahasiswa.itb.ac.id>
Date: Thu, 16 Nov 2023 01:19:04 +0700
Subject: [PATCH] chore: seeding

---
 db/data.php | 91 ++++++++++++++++++++++-------------------------------
 1 file changed, 37 insertions(+), 54 deletions(-)

diff --git a/db/data.php b/db/data.php
index 2b8c7e4..bb66b00 100644
--- a/db/data.php
+++ b/db/data.php
@@ -6,34 +6,31 @@ if (isset($db)) {
     try {
         $db->beginTransaction();
 
-        // Insert events and tickets as before
-        $sqlEvent = <<<EOF
-            INSERT INTO events (event_name, event_stock, event_price, event_date, event_location, gambar, vid) VALUES
-            ('Music Concert', 2, 20, '2023-09-30 10:00:00', 'jakarta', 'assets/images/1.jpg', 'assets/videos/video.mp4'),
-            ('Art Exhibition', 2, 15, '2023-10-05 15:30:00', 'prancis', 'assets/images/2.png', 'assets/videos/video.mp4'),
-            ('Sports Tournament', 2, 40, '2023-11-12 18:45:00', 'italy', 'assets/images/3.jpg', 'assets/videos/video.mp4'),
-            ('Comedy Show', 2, 30, '2023-12-03 20:00:00', 'jakarta', 'assets/images/4.jpg', 'assets/videos/video.mp4'),
-            ('Tech Conference', 2, 60, '2024-01-18 14:15:00', 'ITB', 'assets/images/5.jpg', 'assets/videos/video.mp4');
-         EOF;
-
-         $sqlTicket = <<<EOF
-            INSERT INTO tickets (ticket_name, event_id) VALUES
-            ('General Admission', 1),
-            ('VIP Pass', 1),
-            ('Standard Ticket', 2),
-            ('Student Discount', 2),
-            ('Early Bird Special', 3),
-            ('Premium Access', 3),
-            ('Weekend Pass', 4),
-            ('Group Discount', 4),
-            ('Conference Pass', 5),
-            ('Exhibitor Pass', 5);
-         EOF;
-
-        $db->exec($sqlEvent);
-        $db->exec($sqlTicket);
+        // Generate and insert 10000 dummy events with random data
+        for ($i = 1; $i <= 10000; $i++) {
+            $eventName = "Event $i";
+            $eventStock = rand(1, 10);
+            $eventPrice = rand(10, 100);
+            $eventDate = date('Y-m-d H:i:s', strtotime("+$i days"));
+            $eventLocation = "Location $i";
+            $gambar = 'assets/images/' . ($i % 16 + 1) . '.jpg';
+            $vid = 'assets/videos/video.mp4';
+
+            $sqlEvent = "INSERT INTO events (event_name, event_stock, event_price, event_date, event_location, gambar, vid) VALUES (?, ?, ?, ?, ?, ?, ?)";
+            $stmtEvent = $db->prepare($sqlEvent);
+            $stmtEvent->execute([$eventName, $eventStock, $eventPrice, $eventDate, $eventLocation, $gambar, $vid]);
+
+            // Generate and insert tickets corresponding to the event's event_stock
+            for ($j = 1; $j <= $eventStock; $j++) {
+                $ticketName = "Ticket $j for Event $i";
+                $eventId = $i; // Get the last inserted event ID
+                $sqlTicket = "INSERT INTO tickets (ticket_name, event_id) VALUES (?, ?)";
+                $stmtTicket = $db->prepare($sqlTicket);
+                $stmtTicket->execute([$ticketName, $eventId]);
+            }
+        }
 
-        // Dummy user data with hashed passwords
+        // Insert user data
         $userData = [
             ['John Doe', 'john_doe', 'john@example.com', password_hash('password_1', PASSWORD_DEFAULT), 1],
             ['Jane Smith', 'jane_smith', 'jane@example.com', password_hash('password_2', PASSWORD_DEFAULT), 0],
@@ -43,37 +40,23 @@ if (isset($db)) {
         ];
 
         $sqlUser = "INSERT INTO users (user_name, username, user_email, user_hashedPass, isAdmin) VALUES (?, ?, ?, ?, ?)";
-        $stmt = $db->prepare($sqlUser);
+        $stmtUser = $db->prepare($sqlUser);
 
         foreach ($userData as $user) {
-            $stmt->execute($user);
+            $stmtUser->execute($user);
         }
 
-        $stmt->closeCursor();
-
-      //   // Insert pembelian data
-      //   $sqlPembelian = <<<EOF
-      //       INSERT INTO pembelian (ticket_id, user_id, pembelian_created_time) VALUES
-      //       (1, 1, '2023-10-01 12:30:00'),
-      //       (3, 2, '2023-10-06 16:15:00'),
-      //       (2, 3, '2023-11-15 20:00:00'),
-      //       (5, 4, '2023-12-05 10:45:00'),
-      //       (8, 5, '2024-01-20 08:30:00');
-      //    EOF;
-
-      //    $db->exec($sqlPembelian);
-
-         // Commit the transaction
-         $db->commit();
+        // Commit the transaction
+        $db->commit();
 
-         echo "Successfully inserted dummy data.<br/>";
-      } catch (PDOException $e) {
-         $db->rollBack();
-         echo "Error: " . $e->getMessage();
-      }
-   } else {
-      echo "Error: Database connection not established.";
-   }
+        echo "Successfully inserted 10000 dummy events, corresponding tickets, and user data.<br/>";
+    } catch (PDOException $e) {
+        $db->rollBack();
+        echo "Error: " . $e->getMessage();
+    }
+} else {
+    echo "Error: Database connection not established.";
+}
 
-   $db = null;
+$db = null;
 ?>
-- 
GitLab