Sindbad~EG File Manager
-- Church Conference Management Platform Database Schema
-- The Church of Pentecost - Madina Area
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
-- Database: copmadinaconf
CREATE DATABASE IF NOT EXISTS `copmadinaconf` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE `copmadinaconf`;
-- Areas table
CREATE TABLE `areas` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`description` text,
`status` enum('active','inactive') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Districts table
CREATE TABLE `districts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`area_id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`description` text,
`location` varchar(255),
`contact_person` varchar(255),
`contact_email` varchar(255),
`contact_phone` varchar(20),
`status` enum('active','inactive','deleted') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_districts_area` (`area_id`),
CONSTRAINT `fk_districts_area` FOREIGN KEY (`area_id`) REFERENCES `areas` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Assemblies table
CREATE TABLE `assemblies` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`district_id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`description` text,
`location` varchar(255),
`address` text,
`contact_phone` varchar(20),
`contact_email` varchar(255),
`contact_person` varchar(255),
`status` enum('active','inactive','deleted') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_assemblies_district` (`district_id`),
CONSTRAINT `fk_assemblies_district` FOREIGN KEY (`district_id`) REFERENCES `districts` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Users table (for all system users including superuser, admins, members)
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(100) UNIQUE,
`email` varchar(255) NOT NULL UNIQUE,
`password` varchar(255) NOT NULL,
`first_name` varchar(100) NOT NULL,
`last_name` varchar(100) NOT NULL,
`phone` varchar(20),
`date_of_birth` date,
`gender` enum('male','female','other'),
`address` text,
`role` enum('superuser','area_admin','district_admin','assembly_admin','member') NOT NULL,
`area_id` int(11) NULL,
`district_id` int(11) NULL,
`assembly_id` int(11) NULL,
`profile_image` varchar(255),
`status` enum('active','inactive','suspended') DEFAULT 'active',
`email_verified` tinyint(1) DEFAULT 0,
`last_login` timestamp NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_users_area` (`area_id`),
KEY `fk_users_district` (`district_id`),
KEY `fk_users_assembly` (`assembly_id`),
CONSTRAINT `fk_users_area` FOREIGN KEY (`area_id`) REFERENCES `areas` (`id`) ON DELETE SET NULL,
CONSTRAINT `fk_users_district` FOREIGN KEY (`district_id`) REFERENCES `districts` (`id`) ON DELETE SET NULL,
CONSTRAINT `fk_users_assembly` FOREIGN KEY (`assembly_id`) REFERENCES `assemblies` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Event templates table
CREATE TABLE `event_templates` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`description` text,
`template_data` json,
`created_by` int(11) NOT NULL,
`status` enum('active','inactive') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_event_templates_user` (`created_by`),
CONSTRAINT `fk_event_templates_user` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Events table
CREATE TABLE `events` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`description` text,
`event_type` enum('area','district','assembly') NOT NULL,
`area_id` int(11) NULL,
`district_id` int(11) NULL,
`assembly_id` int(11) NULL,
`start_date` datetime NOT NULL,
`end_date` datetime NOT NULL,
`venue` varchar(255),
`address` text,
`capacity` int(11) DEFAULT 0,
`registration_fee` decimal(10,2) DEFAULT 0.00,
`early_bird_fee` decimal(10,2) DEFAULT 0.00,
`early_bird_deadline` datetime NULL,
`registration_deadline` datetime NULL,
`banner_image` varchar(255),
`status` enum('draft','published','cancelled','completed') DEFAULT 'draft',
`featured` tinyint(1) DEFAULT 0,
`seo_title` varchar(255),
`seo_description` text,
`seo_keywords` text,
`created_by` int(11) NOT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_events_area` (`area_id`),
KEY `fk_events_district` (`district_id`),
KEY `fk_events_assembly` (`assembly_id`),
KEY `fk_events_user` (`created_by`),
CONSTRAINT `fk_events_area` FOREIGN KEY (`area_id`) REFERENCES `areas` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_events_district` FOREIGN KEY (`district_id`) REFERENCES `districts` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_events_assembly` FOREIGN KEY (`assembly_id`) REFERENCES `assemblies` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_events_user` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Event form templates table
CREATE TABLE `event_form_templates` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`description` text,
`form_fields` json NOT NULL,
`created_by` int(11) NOT NULL,
`status` enum('active','inactive') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_form_templates_user` (`created_by`),
CONSTRAINT `fk_form_templates_user` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Event forms table (specific forms for each event)
CREATE TABLE `event_forms` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`event_id` int(11) NOT NULL,
`template_id` int(11) NULL,
`form_fields` json NOT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_event_forms_event` (`event_id`),
KEY `fk_event_forms_template` (`template_id`),
CONSTRAINT `fk_event_forms_event` FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_event_forms_template` FOREIGN KEY (`template_id`) REFERENCES `event_form_templates` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Ticket types table
CREATE TABLE `ticket_types` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`event_id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`description` text,
`type` enum('free','paid','donation','tiered') NOT NULL,
`price` decimal(10,2) DEFAULT 0.00,
`capacity` int(11) DEFAULT 0,
`sales_start` datetime NULL,
`sales_end` datetime NULL,
`status` enum('active','inactive','sold_out') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_ticket_types_event` (`event_id`),
CONSTRAINT `fk_ticket_types_event` FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Products table (for event-related merchandise)
CREATE TABLE `products` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`event_id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`description` text,
`price` decimal(10,2) NOT NULL,
`category` varchar(100),
`stock_quantity` int(11) DEFAULT 0,
`image` varchar(255),
`status` enum('active','inactive','out_of_stock') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_products_event` (`event_id`),
CONSTRAINT `fk_products_event` FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Promo codes table
CREATE TABLE `promo_codes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`event_id` int(11) NOT NULL,
`code` varchar(50) NOT NULL UNIQUE,
`type` enum('percentage','fixed_amount') NOT NULL,
`discount_value` decimal(10,2) NOT NULL,
`usage_limit` int(11) DEFAULT 0,
`used_count` int(11) DEFAULT 0,
`valid_from` datetime NOT NULL,
`valid_until` datetime NOT NULL,
`status` enum('active','inactive','expired') DEFAULT 'active',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_promo_codes_event` (`event_id`),
CONSTRAINT `fk_promo_codes_event` FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Event registrations table (for registered members)
CREATE TABLE `event_registrations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`event_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`ticket_type_id` int(11) NULL,
`registration_code` varchar(20) UNIQUE NOT NULL,
`form_data` json,
`payment_status` enum('pending','paid','refunded','cancelled') DEFAULT 'pending',
`payment_method` varchar(50),
`payment_reference` varchar(255),
`amount_paid` decimal(10,2) DEFAULT 0.00,
`registration_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`status` enum('confirmed','cancelled','attended') DEFAULT 'confirmed',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_registrations_event` (`event_id`),
KEY `fk_registrations_user` (`user_id`),
KEY `fk_registrations_ticket` (`ticket_type_id`),
CONSTRAINT `fk_registrations_event` FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_registrations_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_registrations_ticket` FOREIGN KEY (`ticket_type_id`) REFERENCES `ticket_types` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Non-member registrations table (for non-registered users)
CREATE TABLE `nonmember_registrations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`event_id` int(11) NOT NULL,
`ticket_type_id` int(11) NULL,
`registration_code` varchar(20) UNIQUE NOT NULL,
`first_name` varchar(100) NOT NULL,
`last_name` varchar(100) NOT NULL,
`email` varchar(255) NOT NULL,
`phone` varchar(20),
`area_id` int(11),
`district_id` int(11),
`assembly_id` int(11),
`form_data` json,
`payment_status` enum('pending','paid','refunded','cancelled') DEFAULT 'pending',
`payment_method` varchar(50),
`payment_reference` varchar(255),
`amount_paid` decimal(10,2) DEFAULT 0.00,
`registration_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`status` enum('confirmed','cancelled','attended') DEFAULT 'confirmed',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_nonmember_registrations_event` (`event_id`),
KEY `fk_nonmember_registrations_ticket` (`ticket_type_id`),
CONSTRAINT `fk_nonmember_registrations_event` FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_nonmember_registrations_ticket` FOREIGN KEY (`ticket_type_id`) REFERENCES `ticket_types` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Orders table (for product purchases)
CREATE TABLE `orders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`order_number` varchar(50) UNIQUE NOT NULL,
`event_id` int(11) NOT NULL,
`user_id` int(11) NULL,
`customer_name` varchar(255) NOT NULL,
`customer_email` varchar(255) NOT NULL,
`customer_phone` varchar(20),
`subtotal` decimal(10,2) NOT NULL,
`tax_amount` decimal(10,2) DEFAULT 0.00,
`discount_amount` decimal(10,2) DEFAULT 0.00,
`total_amount` decimal(10,2) NOT NULL,
`payment_status` enum('pending','paid','refunded','cancelled') DEFAULT 'pending',
`payment_method` varchar(50),
`payment_reference` varchar(255),
`status` enum('processing','shipped','delivered','cancelled') DEFAULT 'processing',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_orders_event` (`event_id`),
KEY `fk_orders_user` (`user_id`),
CONSTRAINT `fk_orders_event` FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_orders_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Order items table
CREATE TABLE `order_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`order_id` int(11) NOT NULL,
`product_id` int(11) NOT NULL,
`quantity` int(11) NOT NULL,
`unit_price` decimal(10,2) NOT NULL,
`total_price` decimal(10,2) NOT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_order_items_order` (`order_id`),
KEY `fk_order_items_product` (`product_id`),
CONSTRAINT `fk_order_items_order` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_order_items_product` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Notifications table
CREATE TABLE `notifications` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NULL,
`title` varchar(255) NOT NULL,
`message` text NOT NULL,
`type` enum('info','success','warning','error') DEFAULT 'info',
`status` enum('read','unread') DEFAULT 'unread',
`is_read` tinyint(1) DEFAULT 0,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_notifications_user` (`user_id`),
CONSTRAINT `fk_notifications_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Audit logs table
CREATE TABLE `audit_logs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NULL,
`action` varchar(100) NOT NULL,
`table_name` varchar(100) NOT NULL,
`record_id` int(11) NULL,
`old_values` json,
`new_values` json,
`ip_address` varchar(45),
`user_agent` text,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_audit_logs_user` (`user_id`),
CONSTRAINT `fk_audit_logs_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Settings table
CREATE TABLE `settings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`setting_key` varchar(100) NOT NULL UNIQUE,
`setting_value` text,
`description` text,
`updated_by` int(11) NULL,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_settings_user` (`updated_by`),
CONSTRAINT `fk_settings_user` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Members table
CREATE TABLE `members` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`member_id` varchar(20) UNIQUE NOT NULL,
`first_name` varchar(100) NOT NULL,
`last_name` varchar(100) NOT NULL,
`email` varchar(255) NOT NULL,
`phone` varchar(20),
`date_of_birth` date,
`gender` enum('male','female','other'),
`address` text,
`city` varchar(100),
`state` varchar(100),
`postal_code` varchar(20),
`country` varchar(100) DEFAULT 'Ghana',
`area_id` int(11) NOT NULL,
`district_id` int(11) NOT NULL,
`assembly_id` int(11) NOT NULL,
`emergency_contact_name` varchar(255),
`emergency_contact_phone` varchar(20),
`emergency_contact_relationship` varchar(100),
`occupation` varchar(255),
`marital_status` enum('single','married','divorced','widowed'),
`baptized` tinyint(1) DEFAULT 0,
`baptism_date` date,
`membership_date` date,
`status` enum('active','inactive','suspended') DEFAULT 'active',
`notes` text,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_members_area` (`area_id`),
KEY `fk_members_district` (`district_id`),
KEY `fk_members_assembly` (`assembly_id`),
CONSTRAINT `fk_members_area` FOREIGN KEY (`area_id`) REFERENCES `areas` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_members_district` FOREIGN KEY (`district_id`) REFERENCES `districts` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_members_assembly` FOREIGN KEY (`assembly_id`) REFERENCES `assemblies` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Email settings table
CREATE TABLE `email_settings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`smtp_host` varchar(255) NOT NULL DEFAULT 'smtp.gmail.com',
`smtp_port` int(11) NOT NULL DEFAULT 587,
`smtp_username` varchar(255) NOT NULL,
`smtp_password` varchar(255) NOT NULL,
`smtp_encryption` enum('tls','ssl','none') DEFAULT 'tls',
`from_email` varchar(255) NOT NULL,
`from_name` varchar(255) NOT NULL DEFAULT 'COP Madina Conference',
`reply_to_email` varchar(255),
`daily_limit` int(11) DEFAULT 100,
`is_active` tinyint(1) DEFAULT 1,
`welcome_email_subject` varchar(255) DEFAULT 'Welcome to COP Madina Community',
`welcome_email_template` text,
`event_notification_subject` varchar(255) DEFAULT 'New Event: {event_title}',
`event_notification_template` text,
`updated_by` int(11) NULL,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_email_settings_user` (`updated_by`),
CONSTRAINT `fk_email_settings_user` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Email logs table
CREATE TABLE `email_logs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`recipient_email` varchar(255) NOT NULL,
`recipient_name` varchar(255),
`subject` varchar(255) NOT NULL,
`body` text NOT NULL,
`email_type` enum('welcome','event_notification','general') DEFAULT 'general',
`status` enum('sent','failed','pending') DEFAULT 'pending',
`error_message` text,
`sent_at` timestamp NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_email_logs_status` (`status`),
KEY `idx_email_logs_type` (`email_type`),
KEY `idx_email_logs_sent_at` (`sent_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Insert default data
INSERT INTO `areas` (`name`, `description`) VALUES
('Madina Area', 'The Church of Pentecost - Madina Area');
INSERT INTO `users` (`username`, `email`, `password`, `first_name`, `last_name`, `role`) VALUES
('nabibo', 'nabibo2@yahoo.co.uk', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'Super', 'User', 'superuser');
INSERT INTO `settings` (`setting_key`, `setting_value`, `description`) VALUES
('site_title', 'COP Madina Conference Management', 'Website title'),
('site_logo', 'assets/images/logo.png', 'Website logo path'),
('theme_color', 'blue', 'Primary theme color');
-- Insert default email settings
INSERT INTO `email_settings` (`smtp_host`, `smtp_port`, `smtp_username`, `smtp_password`, `from_email`, `from_name`, `welcome_email_template`, `event_notification_template`) VALUES
('smtp.gmail.com', 587, '', '', 'noreply@copmadinaconf.org', 'COP Madina Conference',
'Dear {first_name} {last_name},\n\nWelcome to The Church of Pentecost - Madina Area community!\n\nYour member ID is: {member_id}\n\nWe are excited to have you join our community. You will receive updates about upcoming events and activities.\n\nBlessings,\nCOP Madina Conference Team',
'Dear {first_name},\n\nWe are excited to announce a new event: {event_title}\n\nEvent Details:\nDate: {event_date}\nVenue: {event_venue}\n\nFor more information and registration, please visit our website.\n\nBlessings,\nCOP Madina Conference Team');
COMMIT;
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists