From 8a59ddde8ef4504851b7b06077c16bdcf47cb88c Mon Sep 17 00:00:00 2001 From: Karsten Tlotzek Date: Tue, 1 Jul 2025 09:59:25 +0200 Subject: [PATCH] =?UTF-8?q?Alles=20auf=20Englisch=20umbenannt:=20exhibitio?= =?UTF-8?q?n=20=E2=86=92=20event,=20Variablen=20und=20Tabellen=20angepasst?= =?UTF-8?q?,=20Views=20auf=20neue=20Felder=20umgestellt,=20Controller/Mode?= =?UTF-8?q?l/SQL=20konsistent=20gemacht.=20Alte=20Variablennamen=20raus,?= =?UTF-8?q?=20jetzt=20ist=20alles=20einheitlich.=20Fehler=20aus=20dem=20Fr?= =?UTF-8?q?ontend=20gefixt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controller/AuthController.php | 29 +++-- Controller/EventController.php | 24 ++-- Controller/GutscheinController.php | 57 --------- Controller/LocationController.php | 61 ++++++++++ Controller/StandortController.php | 61 ---------- Controller/TicketController.php | 12 +- Controller/VoucherController.php | 57 +++++++++ Model/AuthModel.php | 49 ++++---- Model/EventModel.php | 63 ++++++---- Model/GutscheinModel.php | 86 -------------- .../{StandortModel.php => LocationModel.php} | 69 +++++------ Model/NewsModel.php | 89 +++++--------- Model/TicketModel.php | 98 ++++++++-------- Model/VoucherModel.php | 62 ++++++++++ ...showAuthForm.phtml => showLoginForm.phtml} | 0 Views/Auth/showRegistrationForm.phtml | 2 +- Views/Event/createEvent.phtml | 2 +- Views/Event/showEvents.phtml | 10 +- Views/Event/updateEvent.phtml | 2 +- Views/Gutschein/showGutscheine.phtml | 37 ------ .../showStandorte.phtml | 0 Views/News/showNews.phtml | 6 +- .../createVoucher.phtml} | 0 Views/Voucher/showVouchers.phtml | 37 ++++++ bibarts.sql | 109 +++++++++--------- 25 files changed, 493 insertions(+), 529 deletions(-) delete mode 100644 Controller/GutscheinController.php create mode 100644 Controller/LocationController.php delete mode 100644 Controller/StandortController.php create mode 100644 Controller/VoucherController.php delete mode 100644 Model/GutscheinModel.php rename Model/{StandortModel.php => LocationModel.php} (52%) create mode 100644 Model/VoucherModel.php rename Views/Auth/{showAuthForm.phtml => showLoginForm.phtml} (100%) delete mode 100644 Views/Gutschein/showGutscheine.phtml rename Views/{Standort => Location}/showStandorte.phtml (100%) rename Views/{Gutschein/createGutschein.phtml => Voucher/createVoucher.phtml} (100%) create mode 100644 Views/Voucher/showVouchers.phtml diff --git a/Controller/AuthController.php b/Controller/AuthController.php index ff9885a..0d6af9a 100644 --- a/Controller/AuthController.php +++ b/Controller/AuthController.php @@ -9,14 +9,12 @@ class AuthController private $model; private $view; - public function __construct($view) - { + public function __construct($view) { $this->model = new AuthModel(); $this->view = $view; } - public function showAuthForm() - { + public function showLoginForm() { $this->view->setVars([ 'labels' => [ "email" => "E-Mail-Adresse", @@ -30,8 +28,7 @@ class AuthController unset($_SESSION['auth_errors'], $_SESSION['auth_validData']); } - public function showRegistrationForm() - { + public function showRegistrationForm() { $this->view->setVars([ 'labels' => [ "email" => "E-Mail-Adresse", @@ -69,25 +66,25 @@ class AuthController public function register() { $data = [ - 'vorname' => $_POST['vorname'] ?? '', - 'nachname' => $_POST['nachname'] ?? '', - 'straße' => $_POST['strasse'] ?? '', - 'hausnr' => $_POST['hausnr'] ?? '', - 'plz' => $_POST['plz'] ?? '', - 'ort' => $_POST['ort'] ?? '', - 'land' => $_POST['land'] ?? '', - 'tel' => $_POST['tel'] ?? '', + 'first_name' => $_POST['vorname'] ?? '', + 'last_name' => $_POST['nachname'] ?? '', + 'street' => $_POST['strasse'] ?? '', + 'house_number' => $_POST['hausnr'] ?? '', + 'postal_code' => $_POST['plz'] ?? '', + 'city' => $_POST['ort'] ?? '', + 'country' => $_POST['land'] ?? '', + 'phone' => $_POST['tel'] ?? '', 'email' => $_POST['email'] ?? '', 'password' => $_POST['password'] ?? '', 'password_repeat' => $_POST['password_repeat'] ?? '', - 'isAdmin' => $_POST['isAdmin'] ?? false, + 'is_admin' => $_POST['isAdmin'] ?? false, ]; $result = $this->model->register($data); if ($result === true) { $this->view->setVars(['success' => 'Registrierung erfolgreich!']); - $this->view->render('Auth/showAuthForm'); + $this->view->render('Auth/showLoginForm'); exit; } else { $errors['register'] = is_string($result) ? $result : "Registrierung fehlgeschlagen."; diff --git a/Controller/EventController.php b/Controller/EventController.php index fbe201d..aeea5f5 100644 --- a/Controller/EventController.php +++ b/Controller/EventController.php @@ -23,13 +23,13 @@ class EventController { public function createEvent() { $data = [ + 'location_id' => $_POST['location_id'] ?? null, + 'start_date' => $_POST['start_date'] ?? null, + 'end_date' => $_POST['end_date'] ?? null, 'name' => $_POST['name'] ?? null, - 'beschreibung' => $_POST['beschreibung'] ?? null, - 'standortid' => $_POST['standortid'] ?? null, - 'datum_von' => $_POST['datum_von'] ?? null, - 'datum_bis' => $_POST['datum_bis'] ?? null, + 'description' => $_POST['description'] ?? null, 'max_tickets' => $_POST['max_tickets'] ?? null, - 'preis' => $_POST['preis'] ?? null + 'ticket_price' => $_POST['ticket_price'] ?? null ]; $this->model->createEvent($data); @@ -38,21 +38,21 @@ class EventController { } public function editEventForm() { - $id = $_GET['ausstellungid']; + $id = $_GET['event_id']; $event = $this->model->getEvent($id); $this->view->setVars(['event' => $event]); } public function updateEvent($id, $data) { - $id = $_POST['ausstellungid']; + $id = $_POST['event_id']; $data = [ - 'standortid' => $_POST['standortid'] ?? null, - 'datum_von' => $_POST['datum_von'] ?? null, - 'datum_bis' => $_POST['datum_bis'] ?? null, + 'location_id' => $_POST['location_id'] ?? null, + 'start_date' => $_POST['start_date'] ?? null, + 'end_date' => $_POST['end_date'] ?? null, 'name' => $_POST['name'] ?? null, - 'beschreibung' => $_POST['beschreibung'] ?? null, + 'description' => $_POST['description'] ?? null, 'max_tickets' => $_POST['max_tickets'] ?? null, - 'preis' => $_POST['preis'] ?? null + 'ticket_price' => $_POST['ticket_price'] ?? null ]; $this->model->updateEvent($id, $data); } diff --git a/Controller/GutscheinController.php b/Controller/GutscheinController.php deleted file mode 100644 index 7e3e526..0000000 --- a/Controller/GutscheinController.php +++ /dev/null @@ -1,57 +0,0 @@ -model = new GutscheinModel(); - $this->view = $view; - } - - public function showGutscheine() { - $gutscheine = $this->model->getGutscheine(); - $this->view->setVars(['gutscheine' => $gutscheine]); - } - - public function createGutschein() { - $data = [ - 'code' => $_POST['code'] ?? null, - 'rabatt' => $_POST['rabatt'] ?? null, - 'ausstellungid' => $_POST['ausstellungid'] ?? null, - 'gueltigkeit' => $_POST['gueltigkeit'] ?? null - ]; - $erg = $this->model->createGutschein($data); - $this->view->setVars(['gutschein' => $erg]); - exit; - } - - public function editGutscheinForm() { - $id = $_GET['gutscheinid']; - if ($id) { - $gutschein = $this->model->getGutschein($id); - $this->view->setVars(['gutschein' => $gutschein]); - } - } - - public function updateGutschein() { - $id = $_POST['gutscheinid']; - $data = [ - 'code' => $_POST['code'] ?? null, - 'rabatt' => $_POST['rabatt'] ?? null, - 'ausstellungid' => $_POST['ausstellungid'] ?? null, - 'gueltigkeit' => $_POST['gueltigkeit'] ?? null - ]; - $this->model->updateGutschein($id, $data); - } - - public function deleteGutschein() { - $id = $_GET['gutscheinid'] ?? null; - $this->model->deleteGutschein($id); - } -} \ No newline at end of file diff --git a/Controller/LocationController.php b/Controller/LocationController.php new file mode 100644 index 0000000..767c247 --- /dev/null +++ b/Controller/LocationController.php @@ -0,0 +1,61 @@ +model = new LocationModel(); + $this->view = $view; + } + + public function showLocations() { + $locations = $this->model->getLocations(); + $this->view->setVars(['locations' => $locations]); + } + + public function createLocation() { + $data = [ + 'street' => $_POST['street'], + 'house_number' => $_POST['house_number'], + 'postal_code' => $_POST['postal_code'], + 'city' => $_POST['city'], + 'country' => $_POST['country'], + 'phone' => $_POST['phone'], + 'email' => $_POST['email'] + ]; + $result = $this->model->createLocation($data); + $this->view->setVars(['location' => $result]); + } + + public function editLocationForm() { + $id = $_GET['location_id']; + $location = $this->model->getLocation($id); + $this->view->setVars(['location' => $location]); + } + + public function updateLocation() { + $data = [ + 'street' => $_POST['street'], + 'house_number' => $_POST['house_number'], + 'postal_code' => $_POST['postal_code'], + 'city' => $_POST['city'], + 'country' => $_POST['country'], + 'phone' => $_POST['phone'], + 'email' => $_POST['email'] + ]; + $location_id = $_POST['location_id']; + $result = $this->model->updateLocation($location_id, $data); + $this->view->setVars(['location' => $result]); + } + + public function deleteLocation() { + $id = $_GET['location_id'] ?? null; + $this->model->deleteLocation($id); + } +} \ No newline at end of file diff --git a/Controller/StandortController.php b/Controller/StandortController.php deleted file mode 100644 index 9456316..0000000 --- a/Controller/StandortController.php +++ /dev/null @@ -1,61 +0,0 @@ -model = new StandortModel(); - $this->view = $view; - } - - public function showStandorte() { - $standorte = $this->model->getStandorte(); - $this->view->setVars(['standorte' => $standorte]); - } - - public function createStandort() { - $data = [ - 'strasse' => $_POST['strasse'], - 'hausnr' => $_POST['hausnr'], - 'plz' => $_POST['plz'], - 'ort' => $_POST['ort'], - 'land' => $_POST['land'], - 'tel' => $_POST['tel'], - 'email' => $_POST['email'] - ]; - $erg = $this->model->createStandort($data); - $this->view->setVars(['standort' => $erg]); - } - - public function editStandortForm() { - $id = $_GET['standortid']; - $standort = $this->model->getStandort($id); - $this->view->setVars(['standort' => $standort]); - } - - public function updateStandort() { - $data = [ - 'strasse' => $_POST['strasse'], - 'hausnr' => $_POST['hausnr'], - 'plz' => $_POST['plz'], - 'ort' => $_POST['ort'], - 'land' => $_POST['land'], - 'tel' => $_POST['tel'], - 'email' => $_POST['email'] - ]; - $standortid = $_POST['standortid']; - $erg = $this->model->updateStandort($standortid, $data); - $this->view->setVars(['standort' => $erg]); - } - - public function deleteStandort() { - $id = $_GET['standortid'] ?? null; - $this->model->deleteStandort($id); - } -} \ No newline at end of file diff --git a/Controller/TicketController.php b/Controller/TicketController.php index fc1ceea..4ffa063 100644 --- a/Controller/TicketController.php +++ b/Controller/TicketController.php @@ -21,13 +21,13 @@ class TicketController { public function buyTicket() { $data = [ - 'userid' => $_POST['userid'], - 'ausstellungid' => $_POST['ausstellungid'], - 'kaufdatum' => date('Y-m-d'), - 'gueltigkeit' => $_POST['gueltigkeit'] + 'user_id' => $_POST['user_id'] ?? null, + 'event_id' => $_POST['event_id'] ?? null, + 'price' => $_POST['price'] ?? null ]; - $erg = $this->ticketModel->buyTicket($data); - $this->view->setVars(['ticket' => $erg]); + + $result = $this->ticketModel->createTicket($data); + $this->view->setVars(['ticket' => $result]); } public function deleteTicket() { diff --git a/Controller/VoucherController.php b/Controller/VoucherController.php new file mode 100644 index 0000000..9b153cb --- /dev/null +++ b/Controller/VoucherController.php @@ -0,0 +1,57 @@ +model = new VoucherModel(); + $this->view = $view; + } + + public function showVouchers() { + $vouchers = $this->model->getVouchers(); + $this->view->setVars(['vouchers' => $vouchers]); + } + + public function createVoucher() { + $data = [ + 'code' => $_POST['code'] ?? null, + 'discount' => $_POST['discount'] ?? null, + 'event_id' => $_POST['event_id'] ?? null, + 'valid_until' => $_POST['valid_until'] ?? null + ]; + $result = $this->model->createVoucher($data); + $this->view->setVars(['voucher' => $result]); + exit; + } + + public function editVoucherForm() { + $id = $_GET['voucher_id']; + if ($id) { + $voucher = $this->model->getVoucher($id); + $this->view->setVars(['voucher' => $voucher]); + } + } + + public function updateVoucher() { + $id = $_POST['voucher_id']; + $data = [ + 'code' => $_POST['code'] ?? null, + 'discount' => $_POST['discount'] ?? null, + 'event_id' => $_POST['event_id'] ?? null, + 'valid_until' => $_POST['valid_until'] ?? null + ]; + $this->model->updateVoucher($id, $data); + } + + public function deleteVoucher() { + $id = $_GET['voucher_id'] ?? null; + $this->model->deleteVoucher($id); + } +} \ No newline at end of file diff --git a/Model/AuthModel.php b/Model/AuthModel.php index 747ca9b..d571826 100644 --- a/Model/AuthModel.php +++ b/Model/AuthModel.php @@ -11,7 +11,7 @@ class AuthModel extends Database public function login(string $email, string $password) { $pdo = $this->linkDB(); - $sql = "SELECT email, password, validUntil FROM user WHERE email = :email"; + $sql = "SELECT email, password, valid_until FROM user WHERE email = :email"; $params = [":email" => $email]; try { @@ -33,7 +33,7 @@ class AuthModel extends Database try { $now = new DateTime(); - $validUntil = new DateTime($user['validUntil']); + $validUntil = new DateTime($user['valid_until']); if ($now > $validUntil) { return "Ihr Passwort ist abgelaufen. Bitte setzen Sie ein neues über \"Passwort vergessen\"."; @@ -52,8 +52,8 @@ class AuthModel extends Database } $requiredFields = [ - 'email', 'password', 'straße', 'hausnr', 'ort', 'postleitzahl', - 'land', 'vorname', 'nachname', 'tel' + 'email', 'password', 'street', 'house_number', 'city', 'postal_code', + 'country', 'first_name', 'last_name', 'phone' ]; foreach ($requiredFields as $field) { @@ -77,21 +77,21 @@ class AuthModel extends Database $hashedPassword = password_hash($data['password'], PASSWORD_DEFAULT); - $sql = "INSERT INTO user (email, password, straße, hausnr, ort, postleitzahl, land,vorname, nachname, tel, isAdmin) - VALUES (:email, :password, :straße, :hausnr, :ort, :postleitzahl, :land,:vorname, :nachname, :tel, :isAdmin)"; + $sql = "INSERT INTO user (email, password, street, house_number, city, postal_code, country, first_name, last_name, phone, is_admin) + VALUES (:email, :password, :street, :house_number, :city, :postal_code, :country, :first_name, :last_name, :phone, :is_admin)"; $params = [ ':email' => $data['email'], ':password' => $hashedPassword, - ':straße' => $data['straße'], - ':hausnr' => $data['hausnr'], - ':ort' => $data['ort'], - ':postleitzahl'=> $data['postleitzahl'], - ':land'=> $data['land'], - ':vorname' => $data['vorname'], - ':nachname'=> $data['nachname'], - ':tel' => $data['tel'], - ':isAdmin' => $data['isAdmin'] ? 1 : 0, + ':street' => $data['street'], + ':house_number' => $data['house_number'], + ':city' => $data['city'], + ':postal_code'=> $data['postal_code'], + ':country'=> $data['country'], + ':first_name' => $data['first_name'], + ':last_name'=> $data['last_name'], + ':phone' => $data['phone'], + ':is_admin' => $data['is_admin'] ? 1 : 0, ]; try { @@ -109,7 +109,7 @@ class AuthModel extends Database try { $pdo = $this->linkDB(); - $sql = "SELECT userid FROM user WHERE email = :email"; + $sql = "SELECT user_id FROM user WHERE email = :email"; $params = [':email' => $email]; $stmt = $pdo->prepare($sql); @@ -163,15 +163,16 @@ class AuthModel extends Database $sql = "UPDATE user - SET password = :password, validUntil = :validUntil + SET password = :password, valid_until = :valid_until WHERE email = :email"; $stmt = $pdo->prepare($sql); - return $stmt->execute([ + $params = [ ':email' => $email, ':password' => $hashedPassword, - ':validUntil' => $validUntil - ]); + ':valid_until' => $validUntil + ]; + return $stmt->execute($params); } catch (PDOException $e) { new \Blog\Library\ErrorMsg("Fehler beim Aktualisieren der Daten.", $e); die; @@ -192,16 +193,16 @@ class AuthModel extends Database } $hashedPassword = password_hash($newpw, PASSWORD_DEFAULT); - $sql = "INSERT INTO user (email, password) - VALUES (:email, :password)"; + $sql = "UPDATE user SET password = :password WHERE email = :email"; try{ $pdo = $this->linkDB(); $stmt = $pdo->prepare($sql); - return $stmt->execute([ + $params = [ ':email' => $email, ':password' => $hashedPassword, - ]); + ]; + return $stmt->execute($params); } catch (PDOException $e) { new \Blog\Library\ErrorMsg("Fehler beim Schreiben der Daten.", $e); die; diff --git a/Model/EventModel.php b/Model/EventModel.php index 4e2ad48..9e66c79 100644 --- a/Model/EventModel.php +++ b/Model/EventModel.php @@ -8,11 +8,11 @@ class EventModel extends Database { public function getEvents() { $pdo = $this->linkDB(); - $sql = "SELECT * FROM ausstellung ORDER BY datum_von DESC;"; + $sql = "SELECT * FROM event ORDER BY start_date ASC;"; try { - $sth = $pdo->prepare($sql); - $sth->execute(); - return $sth->fetchAll(\PDO::FETCH_ASSOC); + $stmt = $pdo->prepare($sql); + $stmt->execute(); + return $stmt->fetchAll(\PDO::FETCH_ASSOC); } catch (PDOException $e) { new \Blog\Library\ErrorMsg("Fehler beim Lesen der Events.", $e); die; @@ -21,11 +21,12 @@ class EventModel extends Database { public function getEvent($id) { $pdo = $this->linkDB(); - $sql = "SELECT * FROM ausstellung WHERE ausstellungid = :id;"; + $sql = "SELECT * FROM event WHERE event_id = :event_id;"; + $params = [":event_id" => $id]; try { - $sth = $pdo->prepare($sql); - $sth->execute([":id" => $id]); - return $sth->fetch(\PDO::FETCH_ASSOC); + $stmt = $pdo->prepare($sql); + $stmt->execute($params); + return $stmt->fetch(\PDO::FETCH_ASSOC); } catch (PDOException $e) { new \Blog\Library\ErrorMsg("Fehler beim Lesen des Events.", $e); die; @@ -34,20 +35,29 @@ class EventModel extends Database { public function updateEvent($id, $data) { $pdo = $this->linkDB(); - $sql = "UPDATE ausstellung SET standortid = :standortid, datum_von = :datum_von, datum_bis = :datum_bis, name = :name, beschreibung = :beschreibung, max_tickets = :max_tickets, preis = :preis WHERE ausstellungid = :id;"; + $sql = "UPDATE event SET + name = :name, + description = :description, + location_id = :location_id, + start_date = :start_date, + end_date = :end_date, + max_tickets = :max_tickets, + ticket_price = :ticket_price + WHERE event_id = :event_id;"; $params = [ - ":standortid" => $data['standortid'], - ":datum_von" => $data['datum_von'], - ":datum_bis" => $data['datum_bis'], ":name" => $data['name'], - ":beschreibung" => $data['beschreibung'], + ":description" => $data['description'], + ":location_id" => $data['location_id'], + ":start_date" => $data['start_date'], + ":end_date" => $data['end_date'], ":max_tickets" => $data['max_tickets'], - ":preis" => $data['preis'], - ":id" => $id + ":ticket_price" => $data['ticket_price'], + ":event_id" => $id ]; try { $sth = $pdo->prepare($sql); $sth->execute($params); + return $sth; } catch (PDOException $e) { new \Blog\Library\ErrorMsg("Fehler beim Aktualisieren des Events.", $e); die; @@ -56,32 +66,35 @@ class EventModel extends Database { public function createEvent($data) { $pdo = $this->linkDB(); - $sql = "INSERT INTO ausstellung (standortid, datum_von, datum_bis, name, beschreibung, max_tickets, preis) VALUES (:standortid, :datum_von, :datum_bis, :name, :beschreibung, :max_tickets, :preis);"; + $sql = "INSERT INTO event (name, description, location_id, start_date, end_date, max_tickets, ticket_price) + VALUES (:name, :description, :location_id, :start_date, :end_date, :max_tickets, :ticket_price);"; $params = [ - ":standortid" => $data['standortid'], - ":datum_von" => $data['datum_von'], - ":datum_bis" => $data['datum_bis'], ":name" => $data['name'], - ":beschreibung" => $data['beschreibung'], + ":description" => $data['description'], + ":location_id" => $data['location_id'], + ":start_date" => $data['start_date'], + ":end_date" => $data['end_date'], ":max_tickets" => $data['max_tickets'], - ":preis" => $data['preis'] + ":ticket_price" => $data['ticket_price'] ]; try { $sth = $pdo->prepare($sql); $sth->execute($params); return $sth; } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Erstellen des Events.", $e); + new \Blog\Library\ErrorMsg("Fehler beim Schreiben des Events.", $e); die; } } public function deleteEvent($id) { $pdo = $this->linkDB(); - $sql = "DELETE FROM ausstellung WHERE ausstellungid = :id;"; + $sql = "DELETE FROM event WHERE event_id = :event_id;"; + $params = [":event_id" => $id]; try { - $sth = $pdo->prepare($sql); - $sth->execute([":id" => $id]); + $stmt = $pdo->prepare($sql); + $stmt->execute($params); + return $stmt->rowCount(); } catch (PDOException $e) { new \Blog\Library\ErrorMsg("Fehler beim Löschen des Events.", $e); die; diff --git a/Model/GutscheinModel.php b/Model/GutscheinModel.php deleted file mode 100644 index 6d1d9fd..0000000 --- a/Model/GutscheinModel.php +++ /dev/null @@ -1,86 +0,0 @@ -linkDB(); - $sql = "SELECT * FROM gutschein ORDER BY gueltigkeit DESC;"; - try { - $sth = $pdo->prepare($sql); - $sth->execute(); - return $sth->fetchAll(\PDO::FETCH_ASSOC); - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Lesen der Gutscheine.", $e); - die; - } - } - - public function getGutschein($id) { - $pdo = $this->linkDB(); - $sql = "SELECT * FROM gutschein WHERE gutscheinid = :id;"; - $params = [":id" => $id]; - try { - $sth = $pdo->prepare($sql); - $sth->execute($params); - return $sth->fetch(\PDO::FETCH_ASSOC); - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Lesen des Gutscheins.", $e); - die; - } - } - - public function createGutschein($data) { - $pdo = $this->linkDB(); - $sql = "INSERT INTO gutschein (code, rabatt, ausstellungid, gueltigkeit) VALUES (:code, :rabatt, :ausstellungid, :gueltigkeit);"; - $params = [ - ":code" => $data['code'], - ":rabatt" => $data['rabatt'], - ":ausstellungid" => $data['ausstellungid'], - ":gueltigkeit" => $data['gueltigkeit'] - ]; - try { - $sth = $pdo->prepare($sql); - $sth->execute($params); - return $sth; - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Erstellen des Gutscheins.", $e); - die; - } - } - - public function updateGutschein($id, $data) { - $pdo = $this->linkDB(); - $sql = "UPDATE gutschein SET code = :code, rabatt = :rabatt, ausstellungid = :ausstellungid, gueltigkeit = :gueltigkeit WHERE gutscheinid = :id;"; - $params = [ - ":code" => $data['code'], - ":rabatt" => $data['rabatt'], - ":ausstellungid" => $data['ausstellungid'], - ":gueltigkeit" => $data['gueltigkeit'], - ":id" => $id - ]; - try { - $sth = $pdo->prepare($sql); - $sth->execute($params); - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Aktualisieren des Gutscheins.", $e); - die; - } - } - - public function deleteGutschein($id) { - $pdo = $this->linkDB(); - $sql = "DELETE FROM gutschein WHERE gutscheinid = :id;"; - $params = [":id" => $id]; - try { - $sth = $pdo->prepare($sql); - $sth->execute($params); - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Löschen des Gutscheins.", $e); - die; - } - } -} \ No newline at end of file diff --git a/Model/StandortModel.php b/Model/LocationModel.php similarity index 52% rename from Model/StandortModel.php rename to Model/LocationModel.php index 69f5f79..af6a72e 100644 --- a/Model/StandortModel.php +++ b/Model/LocationModel.php @@ -2,13 +2,14 @@ namespace Blog\Model; +use PDO; use PDOException; -class StandortModel extends Database { +class LocationModel extends Database { - public function getStandorte() { + public function getLocations() { $pdo = $this->linkDB(); - $sql = "SELECT * FROM Standort ORDER BY standortid ASC;"; + $sql = "SELECT * FROM location ORDER BY location_id ASC;"; try { $sth = $pdo->prepare($sql); $sth->execute(); @@ -19,10 +20,10 @@ class StandortModel extends Database { } } - public function getStandort($standortid) { + public function getLocation($id) { $pdo = $this->linkDB(); - $sql = "SELECT * FROM Standort WHERE standortid = :standortid;"; - $params = [":standortid" => $standortid]; + $sql = "SELECT * FROM location WHERE location_id = :location_id;"; + $params = [":location_id" => $id]; try { $sth = $pdo->prepare($sql); $sth->execute($params); @@ -33,17 +34,17 @@ class StandortModel extends Database { } } - public function createStandort($data) { + public function createLocation($data) { $pdo = $this->linkDB(); - $sql = "INSERT INTO Standort (strasse, hausnr, plz, ort, land, tel, email) - VALUES (:strasse, :hausnr, :plz, :ort, :land, :tel, :email);"; + $sql = "INSERT INTO location (street, house_number, postal_code, city, country, phone, email) + VALUES (:street, :house_number, :postal_code, :city, :country, :phone, :email);"; $params = [ - ":strasse" => $data['strasse'], - ":hausnr" => $data['hausnr'], - ":plz" => $data['plz'], - ":ort" => $data['ort'], - ":land" => $data['land'], - ":tel" => $data['tel'], + ":street" => $data['street'], + ":house_number" => $data['house_number'], + ":postal_code" => $data['postal_code'], + ":city" => $data['city'], + ":country" => $data['country'], + ":phone" => $data['phone'], ":email" => $data['email'] ]; try { @@ -56,26 +57,26 @@ class StandortModel extends Database { } } - public function updateStandort($standortid, $data) { + public function updateLocation($id, $data) { $pdo = $this->linkDB(); - $sql = "UPDATE Standort SET - strasse = :strasse, - hausnr = :hausnr, - plz = :plz, - ort = :ort, - land = :land, - tel = :tel, + $sql = "UPDATE location SET + street = :street, + house_number = :house_number, + postal_code = :postal_code, + city = :city, + country = :country, + phone = :phone, email = :email - WHERE standortid = :standortid;"; + WHERE location_id = :location_id;"; $params = [ - ":strasse" => $data['strasse'], - ":hausnr" => $data['hausnr'], - ":plz" => $data['plz'], - ":ort" => $data['ort'], - ":land" => $data['land'], - ":tel" => $data['tel'], + ":street" => $data['street'], + ":house_number" => $data['house_number'], + ":postal_code" => $data['postal_code'], + ":city" => $data['city'], + ":country" => $data['country'], + ":phone" => $data['phone'], ":email" => $data['email'], - ":standortid" => $standortid + ":location_id" => $id ]; try { $sth = $pdo->prepare($sql); @@ -87,10 +88,10 @@ class StandortModel extends Database { } } - public function deleteStandort($standortid) { + public function deleteLocation($id) { $pdo = $this->linkDB(); - $sql = "DELETE FROM Standort WHERE standortid = :standortid;"; - $params = [":standortid" => $standortid]; + $sql = "DELETE FROM location WHERE location_id = :location_id;"; + $params = [":location_id" => $id]; try { $sth = $pdo->prepare($sql); $sth->execute($params); diff --git a/Model/NewsModel.php b/Model/NewsModel.php index 5d5833d..91b8a86 100644 --- a/Model/NewsModel.php +++ b/Model/NewsModel.php @@ -3,83 +3,58 @@ namespace Blog\Model; use PDOException; +use PDO; class NewsModel extends Database { - public function getNewsById($newsId) { + public function getNewsById($id) { $pdo = $this->linkDB(); - $sql = "SELECT * FROM news WHERE newsid = :newsid;"; - $params = [":newsid" => $newsId]; - try { - $sth = $pdo->prepare($sql); - $sth->execute($params); - return $sth->fetch(\PDO::FETCH_ASSOC); - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Lesen der News.", $e); - die; - } + $sql = "SELECT * FROM news WHERE news_id = :news_id;"; + $stmt = $pdo->prepare($sql); + $params = [':news_id' => $id]; + $stmt->execute($params); + return $stmt->fetch(PDO::FETCH_ASSOC); } - public function updateNews($newsId, $news) { + public function updateNews($id, $data) { $pdo = $this->linkDB(); - $sql = "UPDATE news SET name = :name, beschreibung = :beschreibung, datum = :datum WHERE newsid = :newsid;"; + $sql = "UPDATE news SET name = :name, description = :description, date = :date WHERE news_id = :news_id;"; + $stmt = $pdo->prepare($sql); $params = [ - ":name" => $news['titel'], - ":beschreibung" => $news['inhalt'], - ":datum" => $news['datum'], - ":newsid" => $newsId + ':name' => $data['name'], + ':description' => $data['description'], + ':date' => $data['date'], + ':news_id' => $id ]; - try { - $sth = $pdo->prepare($sql); - $sth->execute($params); - return $sth; - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Aktualisieren der News.", $e); - die; - } + return $stmt->execute($params); } public function getNews() { $pdo = $this->linkDB(); - $sql = "SELECT * FROM news ORDER BY datum DESC;"; - try { - $sth = $pdo->prepare($sql); - $sth->execute(); - return $sth->fetchAll(\PDO::FETCH_ASSOC); - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Lesen der News.", $e); - die; - } + $sql = "SELECT * FROM news ORDER BY date DESC;"; + $stmt = $pdo->prepare($sql); + $stmt->execute(); + return $stmt->fetchAll(PDO::FETCH_ASSOC); } - public function createNews($news) { + public function createNews($data) { $pdo = $this->linkDB(); - $sql = "INSERT INTO news (name, beschreibung, datum) VALUES (:name, :beschreibung, :datum);"; + $sql = "INSERT INTO news (name, description, date) VALUES (:name, :description, :date);"; + $stmt = $pdo->prepare($sql); $params = [ - ":name" => $news['titel'], - ":beschreibung" => $news['inhalt'], - ":datum" => $news['datum'] + ':name' => $data['name'], + ':description' => $data['description'], + ':date' => $data['date'] ]; - try { - $sth = $pdo->prepare($sql); - $sth->execute($params); - return $sth; - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Schreiben der News.", $e); - die; - } + $stmt->execute($params); + return $pdo->lastInsertId(); } - public function deleteNews($newsId) { + public function deleteNews($id) { $pdo = $this->linkDB(); - $sql = "DELETE FROM news WHERE newsid = :newsid;"; - $params = [":newsid" => $newsId]; - try { - $sth = $pdo->prepare($sql); - $sth->execute($params); - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Löschen der News.", $e); - die; - } + $sql = "DELETE FROM news WHERE news_id = :news_id;"; + $stmt = $pdo->prepare($sql); + $params = [':news_id' => $id]; + return $stmt->execute($params); } } \ No newline at end of file diff --git a/Model/TicketModel.php b/Model/TicketModel.php index 4b4c328..1945eb2 100644 --- a/Model/TicketModel.php +++ b/Model/TicketModel.php @@ -3,70 +3,72 @@ namespace Blog\Model; use PDOException; +use PDO; class TicketModel extends Database { public function getTickets() { $pdo = $this->linkDB(); - $sql = "SELECT * FROM Ticket ORDER BY ticketid ASC;"; - try { - $sth = $pdo->prepare($sql); - $sth->execute(); - return $sth->fetchAll(\PDO::FETCH_ASSOC); - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Lesen der Tickets.", $e); - die; - } + $sql = "SELECT * FROM ticket ORDER BY ticket_id ASC;"; + $stmt = $pdo->prepare($sql); + $stmt->execute(); + return $stmt->fetchAll(PDO::FETCH_ASSOC); } public function buyTicket($data) { $pdo = $this->linkDB(); - $sql = "INSERT INTO Ticket (userid, ausstellungid, kaufdatum, gueltigkeit) - VALUES (:userid, :ausstellungid, :kaufdatum, :gueltigkeit);"; + $sql = "INSERT INTO ticket (user_id, event_id, purchase_date, valid_until) + VALUES (:user_id, :event_id, :purchase_date, :valid_until)"; + $stmt = $pdo->prepare($sql); $params = [ - ":userid" => $data['userid'], - ":ausstellungid" => $data['ausstellungid'], - ":kaufdatum" => $data['kaufdatum'], - ":gueltigkeit" => $data['gueltigkeit'] + ':user_id' => $data['user_id'], + ':event_id' => $data['event_id'], + ':purchase_date' => $data['purchase_date'], + ':valid_until' => $data['valid_until'] ]; - try { - $sth = $pdo->prepare($sql); - $sth->execute($params); - return $pdo->lastInsertId(); - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Kauf des Tickets.", $e); - die; - } + $stmt->execute($params); + return $pdo->lastInsertId(); } - public function hasTicket($userid, $ausstellungid) { + public function checkTicketExists($userid, $ausstellungid) { $pdo = $this->linkDB(); - $sql = "SELECT COUNT(*) as count FROM Ticket WHERE userid = :userid AND ausstellungid = :ausstellungid;"; - $params = [ - ":userid" => $userid, - ":ausstellungid" => $ausstellungid - ]; - try { - $sth = $pdo->prepare($sql); - $sth->execute($params); - return $sth->fetch(\PDO::FETCH_ASSOC); - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler bei der Ticketprüfung.", $e); - die; - } + $sql = "SELECT COUNT(*) as count FROM ticket WHERE user_id = :user_id AND event_id = :event_id;"; + $stmt = $pdo->prepare($sql); + $params = [':user_id' => $userid, ':event_id' => $ausstellungid]; + $stmt->execute($params); + $result = $stmt->fetch(PDO::FETCH_ASSOC); + return $result['count'] > 0; } - public function deleteTicket($ticketid) { + public function deleteTicket($id) { $pdo = $this->linkDB(); - $sql = "DELETE FROM Ticket WHERE ticketid = :ticketid;"; - $params = [":ticketid" => $ticketid]; - try { - $sth = $pdo->prepare($sql); - $sth->execute($params); - return $sth->rowCount(); - } catch (PDOException $e) { - new \Blog\Library\ErrorMsg("Fehler beim Löschen des Tickets.", $e); - die; - } + $sql = "DELETE FROM ticket WHERE ticket_id = :ticket_id;"; + $stmt = $pdo->prepare($sql); + $params = [':ticket_id' => $id]; + return $stmt->execute($params); + } + + public function createTicket($data) { + $pdo = $this->linkDB(); + $sql = "INSERT INTO ticket (event_id, user_id, price) VALUES (:event_id, :user_id, :price);"; + $stmt = $pdo->prepare($sql); + $params = [ + ':event_id' => $data['event_id'], + ':user_id' => $data['user_id'], + ':price' => $data['price'] + ]; + return $stmt->execute($params); + } + + public function getTicketsByUser($userId) { + $pdo = $this->linkDB(); + $sql = "SELECT t.*, e.name as event_name, e.start_date, e.end_date + FROM ticket t + JOIN event e ON t.event_id = e.event_id + WHERE t.user_id = :user_id;"; + $stmt = $pdo->prepare($sql); + $params = [':user_id' => $userId]; + $stmt->execute($params); + return $stmt->fetchAll(PDO::FETCH_ASSOC); } } \ No newline at end of file diff --git a/Model/VoucherModel.php b/Model/VoucherModel.php new file mode 100644 index 0000000..946bcd4 --- /dev/null +++ b/Model/VoucherModel.php @@ -0,0 +1,62 @@ +linkDB(); + $sql = "SELECT * FROM voucher ORDER BY valid_until DESC;"; + $stmt = $pdo->prepare($sql); + $stmt->execute(); + return $stmt->fetchAll(PDO::FETCH_ASSOC); + } + + public function getVoucher($id) { + $pdo = $this->linkDB(); + $sql = "SELECT * FROM voucher WHERE voucher_id = :id;"; + $stmt = $pdo->prepare($sql); + $params = [':id' => $id]; + $stmt->execute($params); + return $stmt->fetch(PDO::FETCH_ASSOC); + } + + public function createVoucher($data) { + $pdo = $this->linkDB(); + $sql = "INSERT INTO voucher (code, discount, event_id, valid_until) VALUES (:code, :discount, :event_id, :valid_until);"; + $stmt = $pdo->prepare($sql); + $params = [ + ':code' => $data['code'], + ':discount' => $data['discount'], + ':event_id' => $data['event_id'], + ':valid_until' => $data['valid_until'] + ]; + $stmt->execute($params); + return $pdo->lastInsertId(); + } + + public function updateVoucher($id, $data) { + $pdo = $this->linkDB(); + $sql = "UPDATE voucher SET code = :code, discount = :discount, event_id = :event_id, valid_until = :valid_until WHERE voucher_id = :id;"; + $stmt = $pdo->prepare($sql); + $params = [ + ':code' => $data['code'], + ':discount' => $data['discount'], + ':event_id' => $data['event_id'], + ':valid_until' => $data['valid_until'], + ':id' => $id + ]; + return $stmt->execute($params); + } + + public function deleteVoucher($id) { + $pdo = $this->linkDB(); + $sql = "DELETE FROM voucher WHERE voucher_id = :id;"; + $stmt = $pdo->prepare($sql); + $params = [':id' => $id]; + return $stmt->execute($params); + } +} \ No newline at end of file diff --git a/Views/Auth/showAuthForm.phtml b/Views/Auth/showLoginForm.phtml similarity index 100% rename from Views/Auth/showAuthForm.phtml rename to Views/Auth/showLoginForm.phtml diff --git a/Views/Auth/showRegistrationForm.phtml b/Views/Auth/showRegistrationForm.phtml index 363c413..e3d2f08 100644 --- a/Views/Auth/showRegistrationForm.phtml +++ b/Views/Auth/showRegistrationForm.phtml @@ -44,7 +44,7 @@ include dirname(__DIR__) . '/header.phtml';
- +
diff --git a/Views/Event/createEvent.phtml b/Views/Event/createEvent.phtml index a81a62a..ac6c4e5 100644 --- a/Views/Event/createEvent.phtml +++ b/Views/Event/createEvent.phtml @@ -3,7 +3,7 @@ include dirname(__DIR__).'/header.phtml'; ?>
-

Das Event "" wurde erfolgreich erstellt!

+

Das Event "" wurde erfolgreich erstellt!

Weiter
diff --git a/Views/Event/showEvents.phtml b/Views/Event/showEvents.phtml index 746b2e2..b50859c 100644 --- a/Views/Event/showEvents.phtml +++ b/Views/Event/showEvents.phtml @@ -1,7 +1,7 @@ -

Alle Ausstellungen

+

Alle Events

@@ -17,16 +17,16 @@ include dirname(__DIR__).'/header.phtml'; - - - + + +
-

Derzeit sind keine Ausstellungen verfügbar.

+

Derzeit sind keine Events verfügbar.

-

Das Event mit der ID "" wurde erfolgreich bearbeitet!

+

Das Event mit der ID "" wurde erfolgreich bearbeitet!

Weiter
diff --git a/Views/Gutschein/showGutscheine.phtml b/Views/Gutschein/showGutscheine.phtml deleted file mode 100644 index ee0a5f3..0000000 --- a/Views/Gutschein/showGutscheine.phtml +++ /dev/null @@ -1,37 +0,0 @@ - -

Alle Gutscheine

-Neuen Gutschein anlegen - - - - - - - - - - - - - - - - - - - - - - -
CodeRabatt (%)Event-IDGültig bisAktionen
- Bearbeiten | - Löschen -
- -

Keine Gutscheine vorhanden.

- - \ No newline at end of file diff --git a/Views/Standort/showStandorte.phtml b/Views/Location/showStandorte.phtml similarity index 100% rename from Views/Standort/showStandorte.phtml rename to Views/Location/showStandorte.phtml diff --git a/Views/News/showNews.phtml b/Views/News/showNews.phtml index 186d492..f0901df 100644 --- a/Views/News/showNews.phtml +++ b/Views/News/showNews.phtml @@ -6,7 +6,7 @@ include dirname(__DIR__).'/header.phtml'; - + @@ -15,8 +15,8 @@ include dirname(__DIR__).'/header.phtml'; - - + + diff --git a/Views/Gutschein/createGutschein.phtml b/Views/Voucher/createVoucher.phtml similarity index 100% rename from Views/Gutschein/createGutschein.phtml rename to Views/Voucher/createVoucher.phtml diff --git a/Views/Voucher/showVouchers.phtml b/Views/Voucher/showVouchers.phtml new file mode 100644 index 0000000..074dc77 --- /dev/null +++ b/Views/Voucher/showVouchers.phtml @@ -0,0 +1,37 @@ + +

Alle Gutscheine

+Neuen Gutschein anlegen + +
NameTitel Beschreibung Datum
+ + + + + + + + + + + + + + + + + + + + +
CodeRabatt (%)Event-IDGültig bisAktionen
+ Bearbeiten | + Löschen +
+ +

Keine Gutscheine vorhanden.

+ + \ No newline at end of file diff --git a/bibarts.sql b/bibarts.sql index 8411099..43948a3 100644 --- a/bibarts.sql +++ b/bibarts.sql @@ -3,111 +3,110 @@ SET time_zone = "+00:00"; -- -------------------------------------------------------- -CREATE TABLE User ( - userid INT AUTO_INCREMENT PRIMARY KEY, - vorname VARCHAR(50), - nachname VARCHAR(50), - strasse VARCHAR(100), - hausnr VARCHAR(10), - plz VARCHAR(10), - ort VARCHAR(50), - land VARCHAR(50), - tel VARCHAR(20), +CREATE TABLE user ( + user_id INT AUTO_INCREMENT PRIMARY KEY, + first_name VARCHAR(50), + last_name VARCHAR(50), + street VARCHAR(100), + house_number VARCHAR(10), + postal_code VARCHAR(10), + city VARCHAR(50), + country VARCHAR(50), + phone VARCHAR(20), email VARCHAR(100) UNIQUE, - isAdmin BOOLEAN DEFAULT FALSE, - validUntil DATETIME NOT NULL DEFAULT '3025-01-01 00:00:00', + is_admin BOOLEAN DEFAULT FALSE, + valid_until DATETIME NOT NULL DEFAULT '3025-01-01 00:00:00', password VARCHAR(255) ); -CREATE TABLE Standort ( - standortid INT AUTO_INCREMENT PRIMARY KEY, - strasse VARCHAR(100), - hausnr VARCHAR(10), - plz VARCHAR(10), - ort VARCHAR(50), - land VARCHAR(50), - tel VARCHAR(20), +CREATE TABLE location ( + location_id INT AUTO_INCREMENT PRIMARY KEY, + street VARCHAR(100), + house_number VARCHAR(10), + postal_code VARCHAR(10), + city VARCHAR(50), + country VARCHAR(50), + phone VARCHAR(20), email VARCHAR(100) ); -CREATE TABLE Ausstellung ( - austellungid INT AUTO_INCREMENT PRIMARY KEY, - standortid INT, - datum_von DATE, - datum_bis DATE, +CREATE TABLE event ( + event_id INT AUTO_INCREMENT PRIMARY KEY, + location_id INT, + start_date DATE, + end_date DATE, name VARCHAR(100), - beschreibung TEXT, + description TEXT, max_tickets INT, - eintrittspreis DECIMAL(5,2), - FOREIGN KEY (standortid) REFERENCES Standort(standortid) + ticket_price DECIMAL(5,2), + FOREIGN KEY (location_id) REFERENCES location(location_id) ); -CREATE TABLE Ticket ( - ticketid INT AUTO_INCREMENT PRIMARY KEY, - userid INT, - ausstellungid INT, - kaufdatum DATE, - gueltigkeit DATE, - FOREIGN KEY (userid) REFERENCES User(userid), - FOREIGN KEY (ausstellungid) REFERENCES Ausstellung(austellungid) +CREATE TABLE ticket ( + ticket_id INT AUTO_INCREMENT PRIMARY KEY, + user_id INT, + event_id INT, + purchase_date DATE, + valid_until DATE, + FOREIGN KEY (user_id) REFERENCES user(user_id), + FOREIGN KEY (event_id) REFERENCES event(event_id) ); -CREATE TABLE Gutschein ( - gutscheinid INT AUTO_INCREMENT PRIMARY KEY, +CREATE TABLE voucher ( + voucher_id INT AUTO_INCREMENT PRIMARY KEY, code VARCHAR(50) UNIQUE, - rabatt INT CHECK (rabatt BETWEEN 0 AND 100), - ausstellungid INT, - gueltigkeit DATE, - FOREIGN KEY (ausstellungid) REFERENCES Ausstellung(austellungid) + discount INT CHECK (discount BETWEEN 0 AND 100), + event_id INT, + valid_until DATE, + FOREIGN KEY (event_id) REFERENCES event(event_id) ); -CREATE TABLE News ( - newsid INT AUTO_INCREMENT PRIMARY KEY, +CREATE TABLE news ( + news_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), - beschreibung TEXT, - datum DATE + description TEXT, + date DATE ); -- User-Daten (Passwort: passwort123) -INSERT INTO User (vorname, nachname, strasse, hausnr, plz, ort, land, tel, email, isAdmin, password) +INSERT INTO user (first_name, last_name, street, house_number, postal_code, city, country, phone, email, is_admin, password) VALUES - ('Max', 'Muster', 'Musterstraße', '1', '12345', 'Musterstadt', 'Deutschland', '0123456789', 'max@muster.de', FALSE, '$2y$10$VAj.C0XHPUxV4oXS6b79aumlg5fBMPPx5FPqgkQSIQeBLh0WtYmKy'), ('Anna', 'Beispiel', 'Beispielweg', '5a', '54321', 'Beispielstadt', 'Deutschland', '0987654321', 'anna@beispiel.de', TRUE, '$2y$10$cnPBpkvLbdpDxzYvxlQg9uVp5y8ggr2SWL8NAMg9zk.3QnnEl.MGq'); -- Standort-Daten -INSERT INTO Standort (strasse, hausnr, plz, ort, land, tel, email) +INSERT INTO location (street, house_number, postal_code, city, country, phone, email) VALUES ('Galeriestraße', '10', '10115', 'Berlin', 'Deutschland', '030123456', 'kontakt@galerie-berlin.de'), ('Kunstallee', '22b', '50667', 'Köln', 'Deutschland', '0221123456', 'info@kunst-koeln.de'); -- Ausstellung-Daten -INSERT INTO Ausstellung (standortid, datum_von, datum_bis, name, beschreibung, max_tickets, eintrittspreis) +INSERT INTO event (location_id, start_date, end_date, name, description, max_tickets, ticket_price) VALUES (1, '2025-07-01', '2025-08-31', 'Moderne Meisterwerke', 'Eine Sammlung moderner Kunstwerke aus Europa.', 200, 19.99), (2, '2025-09-10', '2025-10-20', 'Kunst der Antike', 'Ausstellung antiker Skulpturen und Gemälde.', 150, 39.99); --- Gutschein-Daten (Spaltennamen korrigiert) -INSERT INTO Gutschein (code, rabatt, ausstellungid, gueltigkeit) +-- Gutschein-Daten +INSERT INTO voucher (code, discount, event_id, valid_until) VALUES ('SOMMER2025', 15, 1, '2025-08-31'), ('HERBST25', 25, 2, '2025-10-15'); --- Ticket-Daten (Spaltennamen korrigiert) -INSERT INTO Ticket (userid, ausstellungid, kaufdatum, gueltigkeit) +-- Ticket-Daten +INSERT INTO ticket (user_id, event_id, purchase_date, valid_until) VALUES (1, 1, '2025-06-01', '2025-07-15'), (2, 2, '2025-06-05', '2025-09-15'); -- News-Daten -INSERT INTO News (name, beschreibung, datum) +INSERT INTO news (name, description, date) VALUES ('Neuer Standort eröffnet', 'Unsere Galerie in Köln ist jetzt geöffnet!', '2025-06-01'), ('Frühbucher-Rabatt', 'Sichern Sie sich jetzt 15% Rabatt auf unsere Sommerausstellung.', '2025-05-20');