SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

-- --------------------------------------------------------

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,
    is_admin BOOLEAN DEFAULT FALSE,
    valid_until DATETIME NOT NULL DEFAULT '3025-01-01 00:00:00',
    password VARCHAR(255)
);


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 event (
    event_id INT AUTO_INCREMENT PRIMARY KEY,
    location_id INT,
    start_date DATE,
    end_date DATE,
    name VARCHAR(100),
    description TEXT,
    max_tickets INT,
    ticket_price DECIMAL(5,2),
    FOREIGN KEY (location_id) REFERENCES location(location_id)
);


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 voucher (
    voucher_id INT AUTO_INCREMENT PRIMARY KEY,
    code VARCHAR(50) UNIQUE,
    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 (
    news_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    description TEXT,
    date DATE
);



-- User-Daten (Passwort: passwort123)
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 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 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
INSERT INTO voucher (code, discount, event_id, valid_until)
VALUES
    ('SOMMER2025', 15, 1, '2025-08-31'),
    ('HERBST25', 25, 2, '2025-10-15');

-- 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, description, date)
VALUES
    ('Branchen-News: bibarts schließt strategische Partnerschaft mit regionalen Veranstaltern', 'Die aufstrebende Ticketplattform bibarts hat heute eine Partnerschaft mit mehreren regionalen Veranstaltungsagenturen in Süddeutschland bekannt gegeben. Ziel der Zusammenarbeit ist die gemeinsame Digitalisierung lokaler Events und die Vereinfachung des Ticketverkaufsprozesses für kleinere Veranstalter.

„Viele unserer Kunden sind Künstlerkollektive, Kulturvereine oder Betreiber kleiner Bühnen – für sie war der Einstieg in den digitalen Ticketverkauf bisher kompliziert oder zu teuer,“ erklärt der Vertriebsleiter von bibarts.

Durch die Partnerschaft erhalten Veranstalter Zugang zu einem vereinfachten Onboarding-System, einer automatisierten Veranstaltungsverwaltung und einem integrierten Zahlungssystem. bibarts stellt zudem eigene Event-Widgets bereit, die direkt in bestehende Websites eingebettet werden können.

Die ersten Live-Tests starten im Juli auf Veranstaltungen in Augsburg, Regensburg und Rosenheim. Bei Erfolg soll das Modell bundesweit ausgerollt werden. Marktanalysten sehen in bibarts einen ernstzunehmenden Konkurrenten für etablierte Anbieter wie Eventim oder Reservix – vor allem im Bereich Nischen- und Indie-Veranstaltungen.', '2025-06-01'),
    ('bibarts bringts: Neue Ticketplattform sorgt für Chaos auf der Poetry-Slam-Bühne – aber im besten Sinne', '„Niemand hat damit gerechnet, dass Poetry & Pizza Vol. 7 restlos ausverkauft sein würde – außer vielleicht bibarts.“ So beschreibt der Veranstalter des beliebten Slam-Formats in Hamburg-Altona die Überraschung des Abends.

Dank der neuen Ticketplattform bibarts, die laut Insidern „selbst mit einem Toaster kompatibel“ sei, wurden innerhalb von 48 Stunden über 300 Tickets verkauft – komplett online, ohne Papierkram, ohne Warteschlangen.

Doch die größte Überraschung: Die Slammer wurden beim Einlass mit QR-Codes auf Bananen begrüßt – ein kreatives Gimmick von bibarts’ Entwicklerteam, das einen Testlauf für „alternative Ticketträger“ durchführt. Laut Veranstalter kamen fast 30 Gäste mit beschrifteten Bananen zum Einlass – der Scanner erkannte alle korrekt. 🍌✅

„Wenn Technik und Kultur auf diese Weise verschmelzen, haben wir etwas richtig gemacht,“ scherzte ein Sprecher von bibarts nach der Show. Auch wenn die Banane wohl kein langfristiges Ticketmedium wird, sei der Abend ein voller Erfolg gewesen – sowohl auf als auch vor der Bühne.', '2025-05-20'),
('bibarts launcht Wartelistenfunktion – und füllt plötzlich leergebliebene Reihen', 'Mit einem neuen Feature sorgt bibarts erneut für Schlagzeilen: Die Plattform hat kürzlich eine intelligente Wartelistenfunktion eingeführt, die automatisch frei gewordene Plätze an Interessierte nachbesetzt – ein Gamechanger für spontane Events und kurzfristige Absagen.

Beim ersten Einsatz bei einem Impro-Theater in Köln meldeten sich über 40 Personen für die Warteliste. Als drei Gruppen krankheitsbedingt absagen mussten, sprang das System ein – und verschickte automatisch neue Tickets an Wartende. Innerhalb von 15 Minuten waren die Plätze wieder gefüllt.

„Wir konnten dadurch die Show vor vollem Haus spielen – ohne Einnahmeverluste“, sagt die Theaterleitung. Das Feature basiert auf einem Prioritätssystem, das Fairness und Schnelligkeit kombiniert und sogar per SMS benachrichtigt.

bibarts plant, die Funktion in Zukunft noch zu erweitern – etwa mit Echtzeit-Übersicht für Veranstalter oder integrierter Last-Minute-Werbung.', '2025-06-20');
