CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL, password_hash TEXT NOT NULL, role TEXT NOT NULL CHECK(role IN ('admin', 'manager')) ); CREATE TABLE IF NOT EXISTS events ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, created_by INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, is_active BOOLEAN DEFAULT 1, is_passed BOOLEAN DEFAULT 0, FOREIGN KEY (created_by) REFERENCES users(id) ); CREATE TABLE IF NOT EXISTS event_columns ( id INTEGER PRIMARY KEY AUTOINCREMENT, event_id INTEGER NOT NULL, column_name TEXT NOT NULL, column_order INTEGER NOT NULL, FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS guests ( id INTEGER PRIMARY KEY AUTOINCREMENT, event_id INTEGER NOT NULL, name TEXT NOT NULL, surname TEXT NOT NULL, second_name TEXT, additional_data TEXT, checked_in BOOLEAN DEFAULT 0, checked_in_at TIMESTAMP, FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE );