42 lines
1.3 KiB
YAML
42 lines
1.3 KiB
YAML
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();
|