church-api/migrations/20250802000001_create_members_table.sql
Benjamin Slingo 0c06e159bb Initial commit: Church API Rust implementation
Complete church management system with bulletin management, media processing, live streaming integration, and web interface. Includes authentication, email notifications, database migrations, and comprehensive test suite.
2025-08-19 20:56:41 -04:00

32 lines
1.4 KiB
SQL

-- Create members table
CREATE TABLE members (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE,
phone VARCHAR(20),
address TEXT,
date_of_birth DATE,
membership_status VARCHAR(20) DEFAULT 'active' CHECK (membership_status IN ('active', 'inactive', 'transferred', 'deceased')),
join_date DATE,
baptism_date DATE,
notes TEXT,
emergency_contact_name VARCHAR(200),
emergency_contact_phone VARCHAR(20),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Create indexes
CREATE INDEX idx_members_name ON members(last_name, first_name);
CREATE INDEX idx_members_email ON members(email);
CREATE INDEX idx_members_status ON members(membership_status);
CREATE INDEX idx_members_join_date ON members(join_date);
-- Insert sample members for testing
INSERT INTO members (first_name, last_name, email, phone, membership_status, join_date) VALUES
('John', 'Doe', 'john.doe@example.com', '555-0123', 'active', '2020-01-15'),
('Jane', 'Smith', 'jane.smith@example.com', '555-0124', 'active', '2019-05-20'),
('Robert', 'Johnson', 'robert.johnson@example.com', '555-0125', 'active', '2021-03-10'),
('Mary', 'Williams', 'mary.williams@example.com', '555-0126', 'inactive', '2018-11-05'),
('David', 'Brown', 'david.brown@example.com', '555-0127', 'active', '2022-08-14');