-- =============================================
-- Patel E-Mitra & Aadhaar Seva Kendra CMS
-- Database Schema
-- Version: 1.0
-- =============================================

START TRANSACTION;

-- =============================================
-- Table: services
-- Services offered by the center
-- =============================================
CREATE TABLE `services` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
  `slug` varchar(200) NOT NULL,
  `description` text,
  `price` decimal(10,2) DEFAULT NULL,
  `category` varchar(100) DEFAULT NULL,
  `icon` varchar(100) DEFAULT 'fa-solid fa-circle',
  `color` varchar(50) DEFAULT 'blue',
  `is_featured` tinyint(1) DEFAULT 0,
  `status` enum('active','inactive') DEFAULT 'active',
  `sort_order` int(11) DEFAULT 0,
  `meta_title` varchar(200) DEFAULT NULL,
  `meta_description` text,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `slug` (`slug`),
  KEY `category` (`category`),
  KEY `status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- =============================================
-- Table: gallery
-- Image gallery
-- =============================================
CREATE TABLE `gallery` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
  `description` text,
  `image_path` varchar(500) NOT NULL,
  `thumbnail_path` varchar(500) DEFAULT NULL,
  `category` varchar(100) DEFAULT NULL,
  `alt_text` varchar(200) DEFAULT NULL,
  `status` enum('active','inactive') DEFAULT 'active',
  `sort_order` int(11) DEFAULT 0,
  `uploaded_by` int(11) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `category` (`category`),
  KEY `status` (`status`),
  KEY `uploaded_by` (`uploaded_by`),
  CONSTRAINT `gallery_ibfk_1` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- =============================================
-- Table: appointments
-- Appointment bookings
-- =============================================
CREATE TABLE `appointments` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `booking_id` varchar(50) NOT NULL,
  `customer_name` varchar(100) NOT NULL,
  `customer_email` varchar(100) DEFAULT NULL,
  `customer_phone` varchar(20) NOT NULL,
  `service_id` int(11) DEFAULT NULL,
  `service_name` varchar(200) NOT NULL,
  `appointment_date` date NOT NULL,
  `appointment_time` time NOT NULL,
  `message` text,
  `status` enum('pending','confirmed','completed','cancelled') DEFAULT 'pending',
  `admin_notes` text,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `booking_id` (`booking_id`),
  KEY `service_id` (`service_id`),
  KEY `appointment_date` (`appointment_date`),
  KEY `status` (`status`),
  CONSTRAINT `appointments_ibfk_1` FOREIGN KEY (`service_id`) REFERENCES `services` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- =============================================
-- Table: enquiries
-- Contact form submissions
-- =============================================
CREATE TABLE `enquiries` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) DEFAULT NULL,
  `phone` varchar(20) NOT NULL,
  `service` varchar(200) DEFAULT NULL,
  `message` text NOT NULL,
  `status` enum('new','read','replied','closed') DEFAULT 'new',
  `admin_notes` text,
  `ip_address` varchar(45) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `status` (`status`),
  KEY `created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- =============================================
-- Table: notices
-- Notice board
-- =============================================
CREATE TABLE `notices` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
  `content` text NOT NULL,
  `notice_type` enum('info','warning','success','urgent') DEFAULT 'info',
  `priority` enum('low','medium','high') DEFAULT 'medium',
  `start_date` date DEFAULT NULL,
  `end_date` date DEFAULT NULL,
  `status` enum('active','inactive') DEFAULT 'active',
  `created_by` int(11) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `status` (`status`),
  KEY `priority` (`priority`),
  KEY `created_by` (`created_by`),
  CONSTRAINT `notices_ibfk_1` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- =============================================
-- Table: downloads
-- Downloadable files
-- =============================================
CREATE TABLE `downloads` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
  `description` text,
  `file_path` varchar(500) NOT NULL,
  `file_name` varchar(255) NOT NULL,
  `file_size` int(11) DEFAULT NULL,
  `file_type` varchar(100) DEFAULT NULL,
  `category` varchar(100) DEFAULT NULL,
  `download_count` int(11) DEFAULT 0,
  `status` enum('active','inactive') DEFAULT 'active',
  `sort_order` int(11) DEFAULT 0,
  `uploaded_by` int(11) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `category` (`category`),
  KEY `status` (`status`),
  KEY `uploaded_by` (`uploaded_by`),
  CONSTRAINT `downloads_ibfk_1` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- =============================================
-- Table: settings
-- Site settings
-- =============================================
CREATE TABLE `settings` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `setting_key` varchar(100) NOT NULL,
  `setting_value` text,
  `setting_type` enum('text','textarea','number','boolean','image','file') DEFAULT 'text',
  `category` varchar(100) DEFAULT 'general',
  `description` text,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `setting_key` (`setting_key`),
  KEY `category` (`category`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- =============================================
-- Table: pages
-- Dynamic pages
-- =============================================
CREATE TABLE `pages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
  `slug` varchar(200) NOT NULL,
  `content` longtext,
  `meta_title` varchar(200) DEFAULT NULL,
  `meta_description` text,
  `status` enum('published','draft') DEFAULT 'published',
  `created_by` int(11) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `slug` (`slug`),
  KEY `status` (`status`),
  KEY `created_by` (`created_by`),
  CONSTRAINT `pages_ibfk_1` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- =============================================
-- Table: activity_log
-- Admin activity tracking
-- =============================================
CREATE TABLE `activity_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL,
  `action` varchar(100) NOT NULL,
  `description` text,
  `ip_address` varchar(45) DEFAULT NULL,
  `user_agent` text,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`),
  KEY `action` (`action`),
  KEY `created_at` (`created_at`),
  CONSTRAINT `activity_log_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- =============================================
-- Table: backups
-- Database backup records
-- =============================================
CREATE TABLE `backups` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `file_name` varchar(255) NOT NULL,
  `file_path` varchar(500) NOT NULL,
  `file_size` int(11) DEFAULT NULL,
  `created_by` int(11) DEFAULT NULL,
  `notes` text,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `created_by` (`created_by`),
  CONSTRAINT `backups_ibfk_1` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Insert default services
INSERT INTO `services` (`title`, `slug`, `description`, `price`, `category`, `icon`, `color`, `is_featured`, `status`, `sort_order`) VALUES
('आधार कार्ड सेवाएं', 'aadhaar-card', 'नया आधार नामांकन, अपडेट, बायोमेट्रिक अपडेट, आधार प्रिंट', NULL, 'Identification', 'fa-solid fa-fingerprint', 'blue', 1, 'active', 1),
('पैन कार्ड सेवाएं', 'pan-card', 'नया पैन कार्ड आवेदन, पैन कार्ड में सुधार, पैन कार्ड रीप्रिंट, आधार से पैन लिंक', NULL, 'Identification', 'fa-solid fa-id-card', 'orange', 1, 'active', 2),
('पासपोर्ट सेवा', 'passport', 'नया पासपोर्ट आवेदन, पासपोर्ट नवीनीकरण, पुलिस वेरिफिकेशन स्टेटस', 3000.00, 'Travel', 'fa-solid fa-passport', 'blue', 1, 'active', 3),
('बैंकिंग और पेमेंट', 'banking-payment', 'AEPS (नकद निकासी), धनराशि स्थानांतरण, बिजली/पानी/गैस बिल भुगतान, मोबाइल/डेटा रिचार्ज', NULL, 'Banking', 'fa-solid fa-building-columns', 'green', 0, 'active', 4),
('प्रमाण पत्र एवं कल्याण', 'certificates', 'आय, निवास, जाति प्रमाण पत्र, जन्म एवं मृत्यु प्रमाण पत्र, ई-श्रम कार्ड, PM किसान', NULL, 'Certificates', 'fa-solid fa-file-contract', 'purple', 0, 'active', 5),
('PVC कार्ड प्रिंटिंग', 'pvc-card', 'उच्च गुणवत्ता वाले लैमिनेटेड PVC कार्ड - आधार, जन आधार, राशन/पैन कार्ड', 99.00, 'Printing', 'fa-solid fa-id-card-clip', 'orange', 1, 'active', 6),
('सामान्य गजट - नागरिक', 'gazette', 'नाम परिवर्तन/सुधार, जाति नाम सुधार, जन्म तिथि सुधार, गजट नोटिफिकेशन', NULL, 'Legal', 'fa-solid fa-book-open', 'indigo', 0, 'active', 7),
('उद्यम आधार', 'udyam-aadhar', 'व्यापार/बिज़नेस रजिस्ट्रेशन, उद्यम प्रमाण पत्र प्रिंट, उद्यम अपडेट/संशोधन, MSME लाभ', 500.00, 'Business', 'fa-solid fa-building', 'yellow', 1, 'active', 8),
('SRN स्टेटस चेक', 'srn-status', 'आधार SRN स्टेटस, पैन कार्ड SRN ट्रैकिंग, पासपोर्ट SRN चेक, सभी सरकारी सेवाओं का स्टेटस', NULL, 'Status', 'fa-solid fa-magnifying-glass-chart', 'blue', 0, 'active', 9),
('संस्था आधार', 'sanstha-aadhar', 'NGO/Trust/Society/Company पंजीकरण, संस्था आधार प्रमाण पत्र, सरकारी योजनाओं के लिए संस्था पहचान', NULL, 'Business', 'fa-solid fa-people-group', 'green', 1, 'active', 10),
('पासपोर्ट फोटो सेवा', 'passport-photo', 'पासपोर्ट साइज फोटो, तुरंत प्रिंट, सभी सरकारी फॉर्म के लिए, डिजिटल फोटो', 50.00, 'Photography', 'fa-solid fa-camera', 'pink', 1, 'active', 11),
('वोटर आईडी सेवा', 'voter-id', 'नया वोटर आईडी पंजीकरण, वोटर आईडी में सुधार, पता/नाम/फोटो अपडेट, स्टेटस चेक', 200.00, 'Identification', 'fa-solid fa-id-card', 'cyan', 1, 'active', 12),
('ITR फाइलिंग', 'itr-filing', 'Income Tax Return फाइलिंग, Salary ITR, Business ITR, Tax Refund Claim', 500.00, 'Tax', 'fa-solid fa-file-invoice-dollar', 'amber', 0, 'active', 13),
('ड्राइविंग लाइसेंस', 'driving-license', 'Learner License, Permanent DL Application, DL Renewal, International DL', 300.00, 'Transport', 'fa-solid fa-car', 'lime', 0, 'active', 14),
('राशन कार्ड सेवा', 'ration-card', 'नया राशन कार्ड, नाम जोड़ना/हटाना, राशन कार्ड प्रिंट, Address Update', 100.00, 'Government', 'fa-solid fa-wheat-awn', 'rose', 0, 'active', 15),
('जन्म/मृत्यु प्रमाण पत्र', 'birth-death-certificate', 'जन्म प्रमाण पत्र, मृत्यु प्रमाण पत्र, नाम/पता सुधार, Duplicate Certificate', 50.00, 'Certificates', 'fa-solid fa-baby', 'violet', 0, 'active', 16),
('विवाह प्रमाण पत्र', 'marriage-certificate', 'नया विवाह पंजीकरण, विवाह प्रमाण पत्र प्रिंट, Court Marriage Registration', 200.00, 'Legal', 'fa-solid fa-ring', 'fuchsia', 0, 'active', 17),
('बिल पेमेंट और रिचार्ज', 'bill-payment', 'बिजली बिल, पानी बिल, गैस बिल, मोबाइल/DTH रिचार्ज, इंटरनेट बिल', 10.00, 'Utilities', 'fa-solid fa-bolt', 'teal', 0, 'active', 18),
('मनी ट्रांसफर और बैंकिंग', 'money-transfer', 'AEPS, DMT, Cash Withdrawal, Bank Account Opening, Credit Card Cash', NULL, 'Banking', 'fa-solid fa-money-bill-transfer', 'emerald', 0, 'active', 19),
('बिज़नेस सर्विसेज', 'business-services', 'GST Registration, FSSAI License, Trade License, MSME Registration, Shop Act License', 1000.00, 'Business', 'fa-solid fa-store', 'orange', 0, 'active', 20);

-- Insert default settings
INSERT INTO `settings` (`setting_key`, `setting_value`, `setting_type`, `category`, `description`) VALUES
('site_name', 'Patel E-Mitra & Aadhaar Seva Kendra', 'text', 'general', 'Website ka naam'),
('site_tagline', 'आपका विश्वसनीय डिजिटल सेवा केंद्र', 'text', 'general', 'Website ki tagline'),
('site_email', 'patelshop03@gmail.com', 'text', 'contact', 'Contact email'),
('site_phone', '+917014155018', 'text', 'contact', 'Primary phone number'),
('site_phone_alt', '8290255008', 'text', 'contact', 'Alternate phone number'),
('site_address', 'Bharat Nirman Rajiv Gandhi Seva Kendra, Gram Panchayat Bhuwana, Udaipur, Rajasthan - 313001', 'textarea', 'contact', 'Complete address'),
('site_facebook', 'https://www.facebook.com/Emitraworld', 'text', 'social', 'Facebook page URL'),
('site_instagram', 'https://www.instagram.com/pateleworld', 'text', 'social', 'Instagram page URL'),
('site_youtube', 'https://www.youtube.com/@aadharsevakendraudr', 'text', 'social', 'YouTube channel URL'),
('site_whatsapp', '917014155018', 'text', 'social', 'WhatsApp number (without +)'),
('working_hours', 'सोमवार - शनिवार: सुबह 9:00 बजे - शाम 6:00 बजे', 'textarea', 'general', 'Working hours'),
('closed_days', 'रविवार: बंद', 'text', 'general', 'Closed days'),
('items_per_page', '10', 'number', 'general', 'Number of items per page in admin'),
('maintenance_mode', '0', 'boolean', 'general', 'Enable maintenance mode'),
('google_analytics', '', 'textarea', 'seo', 'Google Analytics tracking code'),
('meta_keywords', 'e-mitra, aadhaar card, pan card, PVC card, CSC center, Bhuwana, Udaipur', 'textarea', 'seo', 'Meta keywords for SEO');

-- Insert default pages
INSERT INTO `pages` (`title`, `slug`, `content`, `status`) VALUES
('हमारे बारे में', 'about', '<h2>Patel E-Mitra & Aadhaar Seva Kendra</h2><p>हम भुवाना, उदयपुर का सबसे भरोसेमंद डिजिटल सेवा केंद्र हैं। हम पिछले 5+ वर्षों से आम नागरिकों को सरकारी और डिजिटल सेवाएं प्रदान कर रहे हैं।</p><h3>हमारी विशेषताएं</h3><ul><li>5+ वर्षों का अनुभव</li><li>100% सुरक्षित सेवा</li><li>तेज़ और विश्वसनीय</li><li>उचित मूल्य</li><li>विशेषज्ञ स्टाफ</li><li>150+ संतुष्ट ग्राहक</li></ul>', 'published'),
('अक्सर पूछे जाने वाले प्रश्न', 'faq', '<h3>क्या आधार कार्ड PVC प्रिंट सच में 99 रुपये में होता है?</h3><p>जी हाँ, हमारे केंद्र पर उच्च गुणवत्ता वाला लैमिनेटेड PVC आधार / जन आधार कार्ड मात्र ₹99/- में उपलब्ध है।</p><h3>क्या रविवार को केंद्र खुला रहता है?</h3><p>नहीं, हमारा केंद्र सोमवार से शनिवार (सुबह 9:00 बजे से शाम 6:00 बजे) तक खुला रहता है। रविवार को साप्ताहिक अवकाश रहता है।</p><h3>क्या मैं घर बैठे फॉर्म डाउनलोड कर सकता हूँ?</h3><p>जी हाँ, आप हमारी वेबसाइट के डाउनलोड सेक्शन से सभी जरूरी फॉर्म Word/PDF फॉर्मेट में मुफ्त में डाउनलोड कर सकते हैं।</p>', 'published');

-- Insert sample notices
INSERT INTO `notices` (`title`, `content`, `notice_type`, `priority`, `status`) VALUES
('PVC Card Special Offer', 'अब PVC Aadhaar Card मात्र ₹99/- में! High quality laminated card, 5+ साल तक चलने वाला।', 'success', 'high', 'active'),
('Working Hours Update', 'हमारा timing: सोमवार से शनिवार, सुबह 9:00 बजे से शाम 6:00 बजे तक। रविवार को बंद।', 'info', 'medium', 'active');

COMMIT;
