
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.
32 lines
1.4 KiB
SQL
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'); |