const pool = require('./db'); const migrations = [ `CREATE EXTENSION IF NOT EXISTS "uuid-ossp"`, `CREATE TABLE IF NOT EXISTS users ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), email VARCHAR(255) UNIQUE NOT NULL, name VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT NOW() )`, `CREATE TABLE IF NOT EXISTS events ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), user_id UUID REFERENCES users(id) ON DELETE CASCADE, name VARCHAR(255) NOT NULL, date TIMESTAMP NOT NULL, location VARCHAR(500), event_type VARCHAR(100) DEFAULT 'general', budget DECIMAL(12,2) DEFAULT 0, status VARCHAR(50) DEFAULT 'planned', notes TEXT, created_at TIMESTAMP DEFAULT NOW() )`, `CREATE TABLE IF NOT EXISTS guests ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), event_id UUID REFERENCES events(id) ON DELETE CASCADE, name VARCHAR(255) NOT NULL, phone VARCHAR(50), email VARCHAR(255), rsvp_status VARCHAR(50) DEFAULT 'pending', table_number INTEGER, seat_number INTEGER, dietary_restriction VARCHAR(255), notes TEXT, created_at TIMESTAMP DEFAULT NOW() )`, `CREATE TABLE IF NOT EXISTS budget_items ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), event_id UUID REFERENCES events(id) ON DELETE CASCADE, category VARCHAR(100) NOT NULL, description VARCHAR(500), estimated_cost DECIMAL(12,2) DEFAULT 0, actual_cost DECIMAL(12,2), status VARCHAR(50) DEFAULT 'planned', created_at TIMESTAMP DEFAULT NOW() )`, `CREATE TABLE IF NOT EXISTS bookings ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), event_id UUID REFERENCES events(id) ON DELETE CASCADE, supplier_name VARCHAR(255) NOT NULL, supplier_type VARCHAR(100), contact_info VARCHAR(255), cost DECIMAL(12,2) DEFAULT 0, status VARCHAR(50) DEFAULT 'pending', notes TEXT, created_at TIMESTAMP DEFAULT NOW() )`, `CREATE INDEX IF NOT EXISTS idx_events_user_id ON events(user_id)`, `CREATE INDEX IF NOT EXISTS idx_guests_event_id ON guests(event_id)`, `CREATE INDEX IF NOT EXISTS idx_budget_items_event_id ON budget_items(event_id)`, `CREATE INDEX IF NOT EXISTS idx_bookings_event_id ON bookings(event_id)`, ]; async function runMigrations() { const client = await pool.connect(); try { for (const sql of migrations) { await client.query(sql); console.log('Migration OK:', sql.substring(0, 60) + '...'); } console.log('All migrations completed successfully'); } catch (err) { console.error('Migration failed:', err); process.exit(1); } finally { client.release(); await pool.end(); } } runMigrations();