-- ============================================================
-- Unified Minds — Database Schema
-- Run once to set up all tables
-- ============================================================
CREATE DATABASE IF NOT EXISTS admin_ufm
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE admin_ufm;
-- ─── Schedule / Events ───────────────────────────────────────
CREATE TABLE IF NOT EXISTS events (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT,
event_type ENUM('stream','show','collab','other') NOT NULL DEFAULT 'stream',
start_at DATETIME NOT NULL,
end_at DATETIME,
timezone VARCHAR(64) NOT NULL DEFAULT 'UTC',
platform VARCHAR(128), -- e.g. "Twitch", "YouTube", "IRL"
stream_url VARCHAR(512),
is_recurring TINYINT(1) NOT NULL DEFAULT 0,
recur_rule VARCHAR(255), -- optional iCal RRULE string
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- ─── Announcements ───────────────────────────────────────────
CREATE TABLE IF NOT EXISTS announcements (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
body TEXT NOT NULL,
is_pinned TINYINT(1) NOT NULL DEFAULT 0,
published_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
expires_at DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- ─── Newsletter / Mailing list ───────────────────────────────
CREATE TABLE IF NOT EXISTS subscribers (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE,
name VARCHAR(128),
subscribed_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
confirmed TINYINT(1) NOT NULL DEFAULT 0,
token VARCHAR(128) -- for email confirmation
) ENGINE=InnoDB;
-- ─── Page Meta (for SEO / dynamic pages) ────────────────────
CREATE TABLE IF NOT EXISTS page_meta (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
page_slug VARCHAR(128) NOT NULL UNIQUE,
meta_title VARCHAR(255),
meta_desc VARCHAR(512),
og_image VARCHAR(512),
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- ─── Seed: default page meta ────────────────────────────────
INSERT IGNORE INTO page_meta (page_slug, meta_title, meta_desc) VALUES
('home', 'Unified Minds — Where VR Meets Music', 'Experience the fusion of virtual reality and music at Unified Minds.'),
('schedule', 'Schedule — Unified Minds', 'Upcoming streams, shows, and events from Unified Minds.'),
('community','Community — Unified Minds', 'Join the Unified Minds community on Discord, Patreon, and more.'),
('about', 'About — Unified Minds', 'Learn about the vision behind Unified Minds.');
-- ─── Seed: sample events ─────────────────────────────────────
INSERT IGNORE INTO events (title, description, event_type, start_at, end_at, timezone, platform, stream_url) VALUES
('VR Rave Night', 'Full immersive VR DJ set — bring your headset!', 'stream', DATE_ADD(NOW(), INTERVAL 3 DAY), DATE_ADD(DATE_ADD(NOW(), INTERVAL 3 DAY), INTERVAL 3 HOUR), 'UTC', 'Twitch', 'https://twitch.tv/unifiedminds'),
('Synthwave Sunday', 'Chilling synthwave mix while exploring VR worlds', 'stream', DATE_ADD(NOW(), INTERVAL 7 DAY), DATE_ADD(DATE_ADD(NOW(), INTERVAL 7 DAY), INTERVAL 2 HOUR), 'UTC', 'YouTube', 'https://youtube.com/@unifiedminds'),
('Collab: Guest DJ Set', 'Special guest brings their virtual stage', 'collab', DATE_ADD(NOW(), INTERVAL 14 DAY), DATE_ADD(DATE_ADD(NOW(), INTERVAL 14 DAY), INTERVAL 2 HOUR), 'UTC', 'Twitch', 'https://twitch.tv/unifiedminds');
Warning: Constant UFM_ROOT already defined in /var/www/vhosts/korvarix.com/ufm.korvarix.com/includes/helpers.php on line 4
Fatal error: Uncaught Error: Call to undefined function getDB() in /var/www/vhosts/korvarix.com/ufm.korvarix.com/includes/helpers.php:61
Stack trace:
#0 /var/www/vhosts/korvarix.com/ufm.korvarix.com/public/index.php(13): getUpcomingEvents()
#1 {main}
thrown in /var/www/vhosts/korvarix.com/ufm.korvarix.com/includes/helpers.php on line 61