apiVersion: v1 kind: ConfigMap metadata: name: {{ include "invy.fullname" . }}-db-schema labels: {{- include "invy.labels" . | nindent 4 }} app.kubernetes.io/component: database data: init.sql: | -- Wedding Guest List Database Schema CREATE TABLE IF NOT EXISTS guests ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, phone VARCHAR(50), email VARCHAR(255), rsvp_status VARCHAR(50) DEFAULT 'pending', meal_preference VARCHAR(100), plus_one BOOLEAN DEFAULT FALSE, plus_one_name VARCHAR(255), notes TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Create index for faster searches CREATE INDEX IF NOT EXISTS idx_guests_name ON guests(name); CREATE INDEX IF NOT EXISTS idx_guests_email ON guests(email); CREATE INDEX IF NOT EXISTS idx_guests_rsvp_status ON guests(rsvp_status); -- Create trigger to update updated_at timestamp CREATE OR REPLACE FUNCTION update_updated_at_column() RETURNS TRIGGER AS $$ BEGIN NEW.updated_at = CURRENT_TIMESTAMP; RETURN NEW; END; $$ language 'plpgsql'; CREATE TRIGGER update_guests_updated_at BEFORE UPDATE ON guests FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();