Files
funcode2.0/database/schema.sql
devbeni 2c5461b0e0 Refactor socket handling and integrate database for event management
- Removed old socket handling code and replaced it with a new implementation in `app/api/socketio/route.js`.
- Added MySQL database integration for managing active sessions and queue entries.
- Implemented event retrieval and ticket purchasing APIs in `app/api/events/route.js` and `app/api/purchase/route.js`.
- Created database schema for events, tickets, active sessions, and orders in `database/schema.sql`.
- Updated front-end to handle event data fetching and ticket purchasing with improved UI components.
- Removed unused SVG files from the public directory.
2025-09-19 19:02:15 +02:00

82 lines
3.1 KiB
SQL

-- Adatbázis létrehozása a queue rendszerhez
CREATE DATABASE IF NOT EXISTS queue_demo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE queue_demo;
-- Events tábla - koncert események
CREATE TABLE IF NOT EXISTS events (
id VARCHAR(100) PRIMARY KEY,
name VARCHAR(255) NOT NULL,
description TEXT,
max_concurrent_users INT DEFAULT 100,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- Queue tábla - várakozási sor
CREATE TABLE IF NOT EXISTS queue_entries (
id INT AUTO_INCREMENT PRIMARY KEY,
event_id VARCHAR(100) NOT NULL,
socket_id VARCHAR(100) NOT NULL,
position INT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_event_position (event_id, position),
INDEX idx_socket_event (socket_id, event_id),
FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE
);
-- Active sessions tábla - aktív felhasználók akik vásárolhatnak
CREATE TABLE IF NOT EXISTS active_sessions (
id INT AUTO_INCREMENT PRIMARY KEY,
event_id VARCHAR(100) NOT NULL,
socket_id VARCHAR(100) NOT NULL,
jwt_token TEXT NOT NULL,
expires_at TIMESTAMP NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_event_socket (event_id, socket_id),
INDEX idx_expires (expires_at),
FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE
);
-- Tickets tábla - jegyek
CREATE TABLE IF NOT EXISTS tickets (
id INT AUTO_INCREMENT PRIMARY KEY,
event_id VARCHAR(100) NOT NULL,
type VARCHAR(100) NOT NULL, -- 'VIP', 'Normal', 'Student'
price DECIMAL(10,2) NOT NULL,
total_quantity INT NOT NULL,
sold_quantity INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_event (event_id),
FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE
);
-- Orders tábla - rendelések
CREATE TABLE IF NOT EXISTS orders (
id INT AUTO_INCREMENT PRIMARY KEY,
event_id VARCHAR(100) NOT NULL,
socket_id VARCHAR(100) NOT NULL,
ticket_type VARCHAR(100) NOT NULL,
quantity INT NOT NULL,
total_price DECIMAL(10,2) NOT NULL,
status ENUM('pending', 'completed', 'cancelled') DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_event (event_id),
INDEX idx_socket (socket_id),
FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE
);
-- Példa adatok beszúrása
INSERT IGNORE INTO events (id, name, description, max_concurrent_users) VALUES
('pamkutya', 'Pam Kutya Koncert', 'Legendás underground koncert a városban', 100),
('rock-fest', 'Rock Fesztivál 2025', 'Három napos rock fesztivál', 150);
INSERT IGNORE INTO tickets (event_id, type, price, total_quantity) VALUES
('pamkutya', 'Normal', 5000.00, 500),
('pamkutya', 'VIP', 8000.00, 50),
('pamkutya', 'Student', 3000.00, 100),
('rock-fest', 'Normal', 12000.00, 1000),
('rock-fest', 'VIP', 25000.00, 200);